
Ask HN: What would you use to build a super simple web app? - livatlantis
I need to create a very simple web app. What are some good micro frameworks out there that I could use?<p>My needs are very basic: users need to be able to create an account, post new discussions, reply to things and see what&#x27;s new. (Basic CRUD stuff).<p>I considered Rails when I first worked on this project many moons ago, but I find it&#x27;s is overkill for what I want. Too much magick. I want as much of the code to be stuff I&#x27;ve written and understand. For the db, I&#x27;m curious about noSQL solutions but again, I want to keep it light.<p>I don&#x27;t care if it&#x27;s in Ruby, PHP, Golang, Perl 6, JS, Python... it&#x27;s for a personal project so I&#x27;ll have fun playing with it.<p>What are you guys using for your small side projects? (Thanks!)
======
bliti
Django 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.

------
siquick
You could get this project setup in Meteor (JS framework) in ~2 minutes using
Telescope

[http://www.telescopeapp.org/](http://www.telescopeapp.org/)

~~~
dalerus
I second this. I've been playing around with Meteor for testing side project
ideas. Super simple to get up and running.

------
iamd3vil
I 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.

------
iSloth
Generally 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
Nah, 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?

~~~
iSloth
I'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...

------
kfullert
My 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
I'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/)

------
tedmiston
If 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.)

------
joeclark77
Python 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.

------
Raed667
For 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/)

------
imauld
If 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.

------
miguelrochefort
What you're describing isn't "very simple".

Use a proper framework. Something like Elm, Om Next or React.

~~~
livatlantis
Will check those out, thanks.

------
networked
You 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.

------
dreamdu5t
Pux (like Elm) in PureScript (purely functional JavaScript).

[http://alexmingoia.github.io/purescript-
pux/](http://alexmingoia.github.io/purescript-pux/)

------
vram22
Python and CherryPy and any light DB like SQLite. Or Bottle instead of
CherryPy.

------
mileswen
I 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.

------
gonyea
Stop thinking about "overkill". It's such a foolish pre-optimization. If
sometching helps you solve a problem quickly, just run with it.

------
sauere
Python+Flask is awesome

so lightweight, yet extendable... some extensions that might be worht looking
at: Flask-Login, Flask-SQLAlchemy, Flask-WTForms, Flask-Admin

~~~
mgberlin
Plus 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.

------
nanospeck
I'm going to build my side project in gwt ( with bootstrap for responsiveness)
and host it in google app engine.

------
mbrock
CGI, basic auth, and bash can go a long way. Add git and baby, you've got a
stew going.

------
PaulHoule
I 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
Nah, 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/)

------
crispytx
PHP

------
tugberkk
PHP and MySQL. Also Bottle and Python.

