HACKER Q&A
📣 sarvasvkulpati

What's the fastest stack for making web side projects?


A lot of posts/advice on what stack to use revolves around making real websites that will need to scale.

But making a hacky prototype that probably won't have more than 10ish users (if it's even used) is completely different.

What setup allows you guys to go from idea to prototype the fastest? Bonus points for the least amount of packages, installation steps, deployment config etc.

(essentially looking for something at the intersection of these ideas: https://mcfunley.com/choose-boring-technology and speed for personal side projects)


  👤 davismwfl Accepted Answer ✓
The honest answer is whatever you are most familiar with. For me, it'd be nodejs with either vue (if it is needed/better) or basic server side rendering for a quick prototype. DB would either be mongodb (because it is quick and easy software wise) or Postgres depending on the dataset. I like server side rendering for small prototypes because it takes very little extra work, packaging and deployment steps and can easily migrate to client side later if need be, especially in vue. I know this isn't a popular opinion but it works for me.

For other people it'd be more likely LAMP stack, others still .NET.

The fastest thing is what you are familiar with not what is trendy or new.

I'd also probably use managed services for DB etc versus running my own for a small prototype just because most of the time you can fit in the free tier and not worry about managing db's etc at first.

Firebase would also be worth a good look for quick prototypes but I wouldn't stay there long term most likely.


👤 madduci
Honestly, I've never seen a faster stack than the LAMP one.

Yes, you're reading it right: even in 2021, PHP gets the job done in a fast way, prototyping is easy and the deployment is even easier. Just buy a hosting plan and you're done.

You can use zero package management or you can adopt Composer to get things modern.

The Frontend? Just drop some HTML/PHP files with Bootstrap or TailwindCSS and you're good to go


👤 khaledh
I've tried many stacks*. My current favorite is Django + PostgreSQL. Every time I use Django I get surprised at how productive it makes me. The built-in admin is fantastic (easily customizable), and almost any question I have is answered in the docs (which is also fantastic) or by the community.

I don't do front-end; just server-side Django templates. Every time I try to build something on the front-end with JavaScript (either with a framework or vanilla), I get tangled in a huge mess.

* Server side: Node.js, ASP.NET, Django, Rails, Phoenix.

* Client side: React, Vue, Angular, Redux, Mobx, etc.


👤 codegeek
Real hacky ? Get a server with LAMP/LEMP installed and then Plain old PHP file that may be writes to a sql database and boom, you are up and running on a web host by uploading index.php to the server root.

I would advise using something like Symfony to add a bit more structure like routing etc.

Need more magic ? Go with a tested framework like Laravel etc. If PHP is not your thing, you can use Python/Node whatever you are comfortable with but some of those languages have different server setup that is sometimes not as easy as LEMP/LAMP. And no, we don't want to introduce things like docker etc.


👤 stunt
I would say look at low code and no code solutions first. And if they don't suit your needs, then first check your team's skills set.

I actually had a little investigation within a team to choose a web stack for a similar situation recently. The team's skills set included Java, Golang, PHP, NodeJS, and TypeScript. And we were convinced that the quickest and cheapest would be building on top of Laravel framework with a few packages (Nova: Admin panels, Spark: SaaS app scaffolding, Jetstream: Auth scaffolding with 2FA and OAuth, Horizon: Queue monitoring, Forge & Envoyer: Server Management and Deployment). Building on Laravel is easy alone but for us the main reason to choose that stack was really those packages. They will save you lots of development time at almost no cost.


👤 DLA
Go (golang.org), html/template package in stdlib, TailwindCSS (or TailwindUI; $ but so worth it), and a sprinkle of AlpingJS.

👤 7402
This is not applicable to most projects, but my choice for simple lightning-fast prototypes on my local network is HTML + CSS + a shell-script CGI app calling unix tools. The server runs on the same machine I do development on.

No stack, no packages, no installation, no deployment! Instant gratification! But also, no security, no scalability, no complexity, no fancy U/I. We're taking about a conceptual prototype, not something that could easily transition into a real product.


👤 whitepoplar
I'm partial to the PETAL stack (Phoenix, Elixir, Tailwind, Alpine.js, LiveView) but the real answer is "anything you're most familiar with".

👤 arkitaip
Probably PHP and client-side JS. PHP is the only server-side language I know that works with even the dinkiest and most locked-down shared hosting. There are no installation steps to follow or packages to maintain.

👤 sharmi
Vouching for "whatever you are most familiar with".

Beyond that, there is also the practice. the more time you spend with a stack, the faster you get. The more fluent you are. The better you understand the inner workings, nuances and customizations.

My personal stack is Django but it could be anything. I am working on my 5th or 6th web app and my understanding and confidence is lightyears ahead of where I was during the first app.


👤 ALittleLight
I think the fastest stack is the one you're most comfortable with and already know.

For me, react for the front end, communicate with a python FastAPI back end, use SqlAlchemy for an ORM to connect to a PostgreSQL db (which I already have setup for my side projects).


👤 neolog
Isn't it just whatever tool you already know?

👤 XCSme
Check out BlitzJS, it's pretty new and its entire goal is to be the fastest stack for making web projects: https://blitzjs.com/

👤 es7
I've been wrestling with this question for the past two months. I'm using React/Node/Mongo and it's okay.

I knew those platforms really well, but I still wasn't all that productive for my first prototype. Now that I've started my fifth, things are getting much better.

The key: don't start from scratch! I can move very quickly now because I've been building up an ecosystem of components, tools and patterns.

Is there some way to find a full-stack app template or high-quality open source examples for your most familiar stack? That's probably the optimal approach


👤 garrickvanburen
It’s whatever you’re fastest in at the moment.

For me, these days, it’s Rails.

For me, awhile back it was Sinatra + CouchDB (that’s a fun stack, questionable from a maintenance standpoint but real fun)


👤 schwartzworld
I use node as a backend more often than not. nvm makes environment setup a piece of cake. If I need a db I use sqlite3, typically just writing the sql by hand. This is plenty for most simple projects. If you prefer Ruby or Python, the same strategies can be adopted with Sinatra/Flask, but I refuse to write python unless I'm being paid.

For frontend, I think I am fastest with React, but I prefer to use handwritten js most of the time.


👤 second--shift
golang + sqlite. I can go from idea to mock-up in a day.

👤 dyeje
Rails / Django / Laravel / Insert dominant MVC framework of your preferred language here

👤 bionhoward
Nextjs examples deployed to vercel, it's disturbingly easy, and works great unless you need fancy security / compliance. Use Redis Labs cloud for the database, you write the whole stack in typescript, API routes live right next to your pages, boom, done.

👤 iSloth
The most powerful programming language is the one you know, and I believe the same is true for speed.

I know C# and PHP, for me if speed matters then I go for C# just because I use it more on a daily basis.

Even though I know PHP would likely be quicker if I used both equally on a daily basis.


👤 a-saleh
Use what you know. You know python? Django is fine. Flask and jinja will be fine. Are you a front-end pro? Use react/vue/whatever, put it on netlify/e.t.c, and use firebase/other dbaas as a backend.

👤 ecesena
React + firebase.

Right now I'm working on a microservice for SaaS, to isolate the core of the SaaS from the public website. The microservice renders the website and takes care of auth & payments.


👤 allthingstim
For me it is: ReactJS with Ant Design for UI components, Firebase with cloud functions as a backend and Stripe for payments.

👤 kody
Flask + Svelte + Sqlite + Nginx are my go-to.

👤 pwujek
Start from jHipster, nHipster or Yeoman to create a purpose built scaffold for your project.

👤 dave_sid
Java

👤 jonas_kgomo
i am working on a project specifically focusing on this type of problems for side projects https://affordance.app

👤 pcdoodle
Xojo, draw a button, put code "in" the button, press play.

👤 MattyMc
Me: Rails + Bootstrap + Heroku with as little JS as possible.

👤 thehappypm
NodeJS + Heroku is unbelievably easy to get off the ground.

👤 larrykubin
For me:

Flask

Vanilla JavaScript

jinja2 templates

SQLite

A cheap VPS or PaaS - Linode, DigitalOcean, Heroku


👤 liuxiaopai
TALL Stack Tailwind+Alpine+Laravel+Livewire

👤 martinopp
Laravel + Vue.js + TailwindCSS

👤 edimaudo
Use any of the boring tech - php + mysql

- flask/django

- rails

- ASP.net


👤 logicslave
If you know AWS well I cant imagine beating it.

Add a gateway in front of a lambda which hits a database.