Scale is almost always something you should ignore completely while building an MVP
I disagree. There is no reason you can't build in best practices from day one. You don't have to go overboard thinking about it (since you probably won't need to scale much), but you can plan ahead for it. For example, on most projects I use a PHP framework similar to Symfony that is based on Doctrine ORM and uses Smarty templates. If a project grows, Doctrine lets you easily add memcached for all queries. If it grows more on the data side, I can easily tweak the setup to use master and slave DBs or even a circular replication cluster. If it grows more on the traffic side, I can change a CNAME setting to move static files to a CDN. I can also set up Varnish in front of the app server. I can put a load balancer in front of the app server and rsync the code base across dozens more app servers. All of this can be done simply by tweaking a few config files. Of course 99% of the time I'll just need 1 or 2 servers, but I can scale at will when the time comes.
I wrote it myself, drawing inspiration from the best parts of Symfony. I use Doctrine for ORM and database abstraction, and Smarty for templates instead of the raw PHP that Symfony uses. I also ditched Symfony's static file caching in favor of Smarty's. I kept basically the same YAML config structure from Symfony...no need to fix what wasn't broken.
I disagree. There is no reason you can't build in best practices from day one. You don't have to go overboard thinking about it (since you probably won't need to scale much), but you can plan ahead for it. For example, on most projects I use a PHP framework similar to Symfony that is based on Doctrine ORM and uses Smarty templates. If a project grows, Doctrine lets you easily add memcached for all queries. If it grows more on the data side, I can easily tweak the setup to use master and slave DBs or even a circular replication cluster. If it grows more on the traffic side, I can change a CNAME setting to move static files to a CDN. I can also set up Varnish in front of the app server. I can put a load balancer in front of the app server and rsync the code base across dozens more app servers. All of this can be done simply by tweaking a few config files. Of course 99% of the time I'll just need 1 or 2 servers, but I can scale at will when the time comes.