9 ms·
Ask HN: What would you use to build a super simple web app?
I need to create a very simple web app. What are some good micro frameworks out there that I could use?
My needs are very basic: users need to be able to create an account, post new discussions, reply to things and see what's new. (Basic CRUD stuff).
I considered Rails when I first worked on this project many moons ago, but I find it's is overkill for what I want. Too much magick. I want as much of the code to be stuff I've written and understand. For the db, I'm curious about noSQL solutions but again, I want to keep it light.
I don't care if it's in Ruby, PHP, Golang, Perl 6, JS, Python... it's for a personal project so I'll have fun playing with it.
What are you guys using for your small side projects? (Thanks!)
- PaulHoule 11y agoI think if you find rails to be too hard you ought to be looking for some hosted solution to do what you want or just pay somebody else to do it.
- livatlantis 11y agoNah, it's not too hard -- it just has a bit too much magick for my liking. I'm comfortable with Ruby and the MVC pattern. It comes with too many things that are free but I don't need. For example, for my blog, I didn't use WordPress because it's too bloated -- it comes with jQuery, widgets support, themes etc etc. All I needed was a way to generate articles. So I used node.js-based Metalsmith[1] and it does just enough without getting in the way. I've never built an public-facing app but that's kinda the point of it why I want to do it. Hiring someone else and miss out on all the fun? ;) [1] http://www.metalsmith.io/ http://www.metalsmith.io/
- iSloth 11y agoGenerally I'm doing side projects to fix an actual need of mine, rather than where some people are trying to learn a new language or framework, so I pick PHP because it's the language that I'm most proficient at, it's probably not the best language for my needs, however the most powerful language is the one that you know! Are you looking to build something, in which case playing around with new frameworks may just be a distraction...? Or do you actually want to play around with something new?
- livatlantis 11y agoNah, the goal isn't to learn a new language per se. It's in response to an actual need. I've sketched it out quite in detail (I previously sketched out db table schemas) a while back, and now I want to build it. I'm just out of touch with what's out there. What PHP framework are you using?
- saluki 11y agoFor PHP check out Laravel laracasts.com is great for learning Laravel. It would be a good fit for your project.
- iSloth 11y agoI've played around with Larvel and others seems to like it, to be honest I can build stuff in it but I struggle to grasp everything going on behind the scenes, so kinda suck at debugging it... However this is 100% because I'm not a coder, and not a pit fall of the framework. I actually kinda use my own framework, I learnt php from a Lynda video tutorial, think it was one where you build a blog. Main part of the tutorial is building a framework, and I naturally just started reusing it for my own side projects...
- kkoppenhaver 11y agoJust built something that sounds pretty similar in Laravel and can vouch for it for sure. I was impressed how little time it took to do some of the things I was trying to do. As it scales up, I'll need to look at some of those things again, but for a quick prototype it was great!
- AjJi 11y agoI've had a great experience with CakePHP, with their cake bake tool, you'd be able to generate most of the boilerplate code for your CRUD
- miguelrochefort 11y agoWhat you're describing isn't "very simple". Use a proper framework. Something like Elm, Om Next or React.
- livatlantis 11y agoWill check those out, thanks.
- iamd3vil 11y agoI use Flask if it's an API or Django if it's a web app. These days I use Elixir and Phoenix for most serious web apps though but if it's a small side project, I would reach for Python since that's the language I am most comfortable with. I really like SQLite and I think it's very underrated for small apps, but if it's serious I would use Postgresql since it's fast, reliable and awesome.
- bliti 11y agoDjango with SQLite. It has built in Admin panel, authentication, and a very simple DB api. The learning curve is not hard. SQLite requires no additional dependencies and you can backup your db by copying the database file. It also performs very well.
- nanospeck 11y agoI'm going to build my side project in gwt ( with bootstrap for responsiveness) and host it in google app engine.
- joeclark77 11y agoPython and Flask on Heroku. What you're describing is almost the "tutorial" web app (look up Grinberg's book on Flask). Heroku is a nice platform to work on that takes a lot of the complexity out of cloud hosting. Flask lets you do almost all the coding yourself, but it has add-ons available to take care of whatever you don't want to do. Heroku gives you a PostgreSQL database with one click, but you could easily integrate a MongoDB database if you wanted to try NoSQL. In Mongo, you'd actually store and retrieve your data in JSON, so it's even easier than writing SQL.
- networked 11y agoYou may find this thread useful: https://news.ycombinator.com/item?id=10302879 https://news.ycombinator.com/item?id=10302879, though it's about CRUD on the JVM specifically.
- Raed667 11y agoFor basic CRUD and REST API I use Sails.js [0]. You can literally roll-up an app in 20 minutes. [0] : http://sailsjs.org/ http://sailsjs.org/
- deleted 11y ago[deleted]
- tugberkk 11y agoPHP and MySQL. Also Bottle and Python.
- siquick 11y agoYou could get this project setup in Meteor (JS framework) in ~2 minutes using Telescope http://www.telescopeapp.org/ http://www.telescopeapp.org/
- dalerus 11y agoI second this. I've been playing around with Meteor for testing side project ideas. Super simple to get up and running.
- sauere 11y agoPython+Flask is awesome so lightweight, yet extendable... some extensions that might be worht looking at: Flask-Login, Flask-SQLAlchemy, Flask-WTForms, Flask-Admin
- mgberlin 11y agoPlus one for flask. You can have a web app up and running locally in about 15 minutes, then deploy to Elastic Beanstalk in another 10.
- mbrock 11y agoCGI, basic auth, and bash can go a long way. Add git and baby, you've got a stew going.
- gonyea 11y agoStop thinking about "overkill". It's such a foolish pre-optimization. If sometching helps you solve a problem quickly, just run with it.
- mileswen 11y agoI think either Django or Ruby on Rails would do. You can roll out these basic functionalities in less than 2 hours if you are reasonably familiar with these frameworks.
- imauld 11y agoIf your interested in making a RESTful back end I would suggest the Falcon microframework for Python. http://falconframework.org/ http://falconframework.org/ Or just using Go out of the box. It has a lot of what you'll need built in and is pretty fun language. I'm learning it right now myself and it has a lot of interesting features.
- vram22 11y agoPython and CherryPy and any light DB like SQLite. Or Bottle instead of CherryPy.
- kfullert 11y agoMy personal choice at the moment is Ruby with Roda[0] and whatever ORM meets my needs best, or even skip the ORM and use the DB adapter directly if it's something quick and simple [0]: http://roda.jeremyevans.net/documentation.html http://roda.jeremyevans.net/documentation.html
- squiguy7 11y agoI'm going to go out on a limb and suggest a Rust framework called pencil [1]. It's inspired by Python's flask and is just as easy to get going. [1]: https://fengsp.github.io/pencil/pencil/ https://fengsp.github.io/pencil/pencil/
- dreamdu5t 11y agoPux (like Elm) in PureScript (purely functional JavaScript). http://alexmingoia.github.io/purescript-pux/ http://alexmingoia.github.io/purescript-pux/
- tedmiston 11y agoIf you truly want no magic and barebones "on the metal" code, go with Flask. You'll have every choice down to the way you serialize your objects into views, models, and every aspect of the database. You can write everything yourself with no or minimal dependencies, or pull in the most popular packages as you see fit (SQLAlchemy, Marshmallow, Jinja, etc.). Django will provide some (useful) magic, but nowhere near as much as Rails. If the site evolves, I really recommend transitioning to Django for it's ecosystem. In either case, I recommend sticking with plug-and-play auth. (Disclaimer: I'm an engineer at a startup whose backend is 90% Python, mostly Django.)
- crispytx 11y agoPHP