Ask HN: What is the best development stack for custom CMS applications?
Most of the applications are custom content management systems that are easy to use without requiring any technical knowledge, specifically built based on customers needs and requests. Existing systems like WordPress, Joomla etc are too complex for them with a lot of options/configurations. There are alternative simpler ones, but still the requirements per customer generally do not align with what is provided. So I develop custom simple apps with which they can simply login to dashboard and add something, remove something, edit something etc. If the content of the website tends to stay the same for a long time, I go with pure HTML and CSS with small improvements with JS. These applications/websites has varying traffic loads from 10s of users to 1000s of users.
I simply use LAMP stack, specifically CodeIgniter for custom application development, because I had a dedicated server back in time and CodeIgniter seemed simple, and easy to use and develop (I took a look at others, and tried some of them such as yii, but as I said I needed something simple). The cost for all is around 100$/year, which is cheap.
However, these days with new platforms/solutions like heroku, AWS, Azure, docker, I feel like there may be a better approach. I use ruby (Sinatra) and python (flask) for small side projects, but when it comes a content management I think they fall short. I know there are options like Rails, Django, but I am NOT developing full-fledged systems.
And the free option for heroku draws my attention recently, but the database could grow more than what they provide you for free. DigitalOcean could be another interesting alternative to my current development stack.
What are you guys using? Do you have any suggestions?
8 comments
[ 2.7 ms ] story [ 28.2 ms ] threadAny of those you mentioned could be used. Personally, I prefer a more hands off framework such as Express (Node.js) or Bottle (Python) compared to something like Rails.
Where do you see Sinatra or Flask fall short? That may help us in answering your question.
- A customized Django admin interface (https://docs.djangoproject.com/en/1.7/ref/contrib/admin/). Yes it's not ideal but it's often good enough.
- A fully custom admin UI built from scratch (Python/Django).
I don't know why you don't think Rails/Django is an option when developing "full-fledged systems".
For hosting, deploying with Ansible to a Digital Ocean VM has worked very well. A $5/mo droplet is more than enough for light - moderate traffic.
It sounds like you enjoy working in PHP, so maybe try Laravel (Rails in PHP) or Symfony (Django in PHP). Symfony even comes in a CMS-skeleton flavor called Symfony CMF.
A vps provider like digital ocean or linode can certainly be a good choice, if you also take care of hosting. With them you could set up a proxy server (I prefer nginx) in front of the apps for your clients and serve them all from a single vps. The traffic of 10-1000 of users is not too big but if you feel that performance of an app is degrading you can always migrate it to a managed hosting service like heroku. That way you can also charge different fees from your clients based on how you are managing their applications.