If you were to build a startup or a solo side project, what web stack would you use and why? Web stack meaning backend and frontend. To make a more specific use case if that's easier, say you need:<p><pre><code> 1) Auth (local accounts + OAuth)
2) Simple user dashboard with some live updates (Websockets, SignalR, etc)
3) Blog (simple db read/write)
</code></pre>
The goal is to bring the user a good experience, but use the least time developing since it's a side project. What do you reach for? Django + React? Laravel + Livewire? ASP.NET + Blazor? Next.js + Prisma?
Rails (front and back)<p>Turbo handles live updates<p>For authentication, I'd use the devise gem, and plan for OAuth later.<p>I'd use Pundit for authorisation.<p>I'd use sendgrid for email and stripe for payment.<p>I'd host on FlyIO; though I'd consider Heroku as 50$ a month would likely cover most needs, and it's super simple.<p>All up blog would take about an hour.<p>Then it's about style, and for that I'd go with w3schools css. There are a pile of templates and it's dirt simple to add. IMHO tailwinds is a sledge hammer when most need a ball-peen hammer.
Full .NET stack.<p>- Self-hosted identity management, "ASP.NET Core Identity", using new scaffolding from .NET 8<p>- Blazor, using the "Auto" mode from .NET 8: Default to SSR, autopromote to Server mode for live updating components<p>- EF Core for DB handling<p>The idea is to focus on keeping things simple and easy for the developer. The most annoying part about the stack is the way Microsoft names things.<p>Keeping the rendering logic fully server-side lets you use your EF DbContext/entities directly in your components, taking on some (I'd say minor) technical debt to greatly simplify development.<p>You won't need a fully separate SPA with a dedicated API. Not yet, maybe ever. You can migrate your components to Blazor Wasm piecemeal if/when you reach a stage where using Server mode starts giving you troubles.
I've started using what I've dubbed the HAG (HTMX, AlpineJS, Go) stack for my "startup". It's really simple and easy to get into. I do try to minimize the use of third party packages/modules to reduce my attack surface.<p>For the rest of your questions,<p>- Auth: Auth0. Simple to get started, and depending on your plan you can enable SSO for business clients.<p>- Frontend: Plain ol' HTML, CSS, and minimal JS. This is where HTMX and AlpineJS comes into play. Elements can be updated without a whole page reload creating a better user experience.<p>- Backend: Go. A language I love to use. Fast, simple, and deployed very quickly.<p>- Database: Turso. Dead simple, easy to use, and with easy replication to different regions.<p>My app code is all contained in a monolith, which is deployed onto a dedicated web server. I can either update the server resources or using a load balancer I can deploy more servers running the application to increase scale (if necessary).
Supabase + Next.js is what I'm using.<p>To cover your list:<p>- Auth: Supabase has auth, with oauth support for many services. Also prebuild UI for login forms etc. It's really easy to set up<p>- Live updates: Supabase has a realtime api to send messages, or subscribe to db changes<p>- Database: Supabase is basically a Postgres database with a bunch of stuff on top, it generates a REST/GraphQL api from your schema, meaning you don't have to make endpoints.<p>It's incredibly productive as it covers all the basics. It's open source so you are not locked in, and they have a free plan that will get you quite far.<p>For the frontend Next.js is my preference, but you could opt for other frameworks if you are more familiar with them. Next.js on Vercel is really easy to set up with preview builds, automatic deployments etc.
Use what you know, what you are efficient with, what you like to use.<p>I would use Laravel<p>1) Auth<p>You can create your Laravel app choosing (Vue + Inertia) or (Livewire) and have auth, 2FA and a profile dashboard in a few minutes, with Laravel Socialite package you can quickly add single sign on with Google Auth, GitHub, Octa, dozens of options. Oauth with Laravel Passport.<p>2) Simple user dashboard with live updates. I prefer Livewire or you can use View + Inertia these would have been installed in the previous step. You can also use Laravel Nova, or Filament to speed things along building a dashboard.<p>3) Blog I would run this standalone from the app and use Statamic, Next js or just html + tailwind css depending on the complexity<p>Laravel Ecosystem<p>Herd - macOS app that makes setting up your local dev environment instant.<p>Jetstream - Start a new project with auth and team management.<p>Telescope - debugging and insight UI<p>Scout - Lightening fast full text search<p>Echo - WebSockets<p>Cashier - Stripe and Paddle Subscriptions<p>Envoyer - Zero Down Time Deployments<p>Forge - Server creation and management (EC2)<p>Vapor - Serverless Creation and management<p>Horizon - Redis Queue Monitoring<p>Pennant - feature flags<p>Sail - Local Docker<p>Socialite - Social Auth Google, Facebook, GitHub (tons of drivers)<p>Sanctum - API and mobile auth<p>Pint - Code style fixer<p>Dusk - Automated browser testing<p>Inertia - SPA with server side routing<p>Livewire - Dynamic server side apps. (Similar to Rails/Hotwire)<p>And those are just some of the first party packages and tools.<p>There are well maintained Laravel packages for almost everything else you need.<p>And working with Laravel is the best developer experience.
if you want to get up and running quickly, choose what you're familiar with.<p>personally, I'd go with Rails + SQLite. skip OAuth unless you absolutely need it.<p>> Simple user dashboard with some live updates (Websockets, SignalR, etc)<p>you probably don't need live updates in v0.1. skip it.<p>> Blog (simple db read/write)<p>any static site generator + markdown. I use nanoc, but any SSG would do.
Depends on which programming language you’re most familiar with.
For python I would go with Django and htmx,
Ruby, rails plus Hotwire,
Php, Laravel with livewire or inertia,
Elixir, Phoenix with liveview,
C sharp, asp.net razor pages and htmx,
Java, spring boot and htmx,
JavaScript, express or sailsjs and htmx
I would use Elixir (Phoenix + liveView), to me its the most productive stack for web apps at the moment.<p>You can have SPA like user experience without building a separate frontend & backend. That simplifies things ALOT!<p>For data persistence, I would consider SQLite otherwise go with Postgres.
Whatever you're comfortable writing and think you can build a fast MVP in. You can always, and will likely, need to come back and rebuild portions of the software if your startup takes off, so don't worry too much about making all the "right" choices out the gate. That's my philosophy, anyway.<p>Personally I'd choose the LAMP stack because it's what I'm most familiar with for web development and I know I can rapidly build a performant functional product with it, but for you that might be something else.
Flour, sugar, salt, baking powder, eggs, milk, and butter<p>The pancake stack<p>Never neglect the importance of a healthy breakfast for the startup grindset
I will use Java for backend and vue.js plus tailwind css for develop web pages.<p>and Use Swift for macOS app and iOS apps<p>use flutter to make iOS and android apps<p>My latest is the macOS app that is a window manager<p><a href="https://wins.cool" rel="nofollow noreferrer">https://wins.cool</a>
This is all buzzword soup.<p>Take a step back and think hard about what you need the stack to do.<p>If you are very proficient in a stack and it will do the task with dependency he’ll or too many junk layers, that is the best one to use.<p>If you care about what is sexy or popular or cool, you’re doing it wrong
Do you need React or could you get away with server side rendering plus a bit of interaction on your pages (htmx)?<p>Unless you’re building g Facebook or Gmail-like interactivity, server side rendering might be enough. That alone could save you 3-5x the time.
I haven't used it yet, but for my next full stack project I want to try Laravel with Livewire.<p>I love Svelte for client side stuff but in truth 80-90% of UIs can be solved with HTML over the wire.