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

31 points by sarvasvkulpati ↗ HN
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)

49 comments

[ 83.7 ms ] story [ 1168 ms ] thread
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.

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

For me:

Flask

Vanilla JavaScript

jinja2 templates

SQLite

A cheap VPS or PaaS - Linode, DigitalOcean, Heroku

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.

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.
(comment deleted)
Rails / Django / Laravel / Insert dominant MVC framework of your preferred language here
Flask + Svelte + Sqlite + Nginx are my go-to.
TALL Stack Tailwind+Alpine+Laravel+Livewire
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.

As an alternative to Laravel you can also use Lumen, it works the same but more lightweight.
Go (golang.org), html/template package in stdlib, TailwindCSS (or TailwindUI; $ but so worth it), and a sprinkle of AlpingJS.
I agree, swap bootstrap for tailwind, but i think that's a personal preference at that point. Golang/html templating is extremely powerful. Echo has become by go-to router, and Gorm is magic when it comes to dealing with mysql, especially when using automigrations and defining indexes within go structs.
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.

Isn't it just whatever tool you already know?
If you know AWS well I cant imagine beating it.

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

Yes, I built an MVP in this manner.

V1 was a static site, landing pages to see if there was any traffic / interest. Jekyll. Deployed to S3, with route53.

V2 used two lambda functions (aws, python backed by an RDS instance. SES to send an email.) to add the most basic function to the static site, to test if people who wanted that content also wanted to take said action.

V3 I intend to build it into a full app. Probably in rails.

v2 has been running now for 2 years without maintenance, building a user base for v3.

NodeJS + Heroku is unbelievably easy to get off the ground.
I'm partial to the PETAL stack (Phoenix, Elixir, Tailwind, Alpine.js, LiveView) but the real answer is "anything you're most familiar with".
This sounds so incredibly niche
I recently discovered alpine.js it's really nice for quick front stuff without getting too dirty with touching js...
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.

For me it is: ReactJS with Ant Design for UI components, Firebase with cloud functions as a backend and Stripe for payments.
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.

Ruby on Rails(with actioncable)
Xojo, draw a button, put code "in" the button, press play.
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).

Start from jHipster, nHipster or Yeoman to create a purpose built scaffold for your project.
Java
upvoted even if it is not relevant to this but I am Java guy. I just upvote when I see it :)