Report
Hey folks, wondering what tech stacks solo founders are using these days.I know that the best stack to use is the one you know. I have worked with multiple technologies . I would love to hear about initial tech choices made and the outcome.
I make backend apps for now so using Ruby+Rails. Like @DirectTable's answer, Stimulus seems like a good alternative to all of the front-end mess.
This comment has been voted down. Click to show.
Ruby on Rails
StimulusJS
StimulusReflex
React (where needed)
PostgreSQL
DigitalOcean
Is StimulusReflex and Cableready still good for Rails 7?
I’ve had a bad experience with node (feathers framework), mongodb, and react. It got too complicated to maintain, too many dependencies, and lack of DB schemas and relationships.
I’m working on Sipp, a typescript mvc framework to help address the complexity I see in the JS ecosystem. Think Rails or Laravel but for TypeScript. The goal is to be a good choice for teams of 1-3 devs, and highly productive for small teams
Have you tried Adonisjs? Is a framework like laravel but for node with TypeScript
@gperales, I have! I built a bit with v4 while the v5 re-write was happening in TypeScript. A couple things that I wasn't a fan of in v4:
use
rather than imports to do some under-the-hood IoC binding).v5 purports to be a major rewrite in TypeScript and do lots of things differently. I'd take another look at v5 because I think v4 was pretty promising.
Do you use Adonis? Thoughts?
I'm a JS full-stack developer, but in the last few years, I've been doing mostly frontend. When I started working with Adonisjs v4, I found it pretty productive, and I like its way to do the things (I think is good to have a way to follow when you are not used to doing that kind of projects, as I said I was more frontend than backend).
I have tried other frameworks like feathers, and meanwhile, feathers was pretty good for building rest APIs, I felt like Adonis was more structured and scalable. I was missing TypeScript support so I'm willing to use the new v5 version :)
Another thing I'm missing is the ability to use JSX as template engine and something like the Phoenix LiveView to dynamically update the view through WebSockets without having to make a SPA.
@gperales, I'd really love if you took a look at Sipp and tell me what you think ... for a couple of reasons—
it's written in TypeScript so you get that out of the box.
It's more structured than feathers, and not just meant for a rest API. It's a full-stack framework, but you can do the Rest API thing if you want.
JSX templating! I love it. Sipp relies on the TS compiler to compiler the JSX into JS functions... which means you get type-safety, it's just JS with small sugar so no new templating language, components are a breeze, etc. I love it :) Here's an example of a registration/login page in sipp.
I don't have much written by way of docs yet, but the starter-kit gives you a pretty good idea. My email and twitter are in my IH profile—feel free to send a message!
Also, for sake of comparison, you could check out this Nest boilerplate I put together a few months back. Nest is a lot more established, but not used much for MVC use cases. So, this boilerplate lets you write templates in JSX and solves some of the common stuff you need in a server-rendered web app.
For Phoenix LiveView style stuff, you basically have a couple choices today:
Serious question: why not just use Rails? StimulusReflex would seem to make this an easy choice in 2020.
@leastbad, the key reasoning for me right now is that I don't have any experience with rails, it's ecosystem, or ruby. Sure, I could learn—but I also believe there's space for something like this in the JS/TS space.
If someone was just starting out in IndieHacking, I'd recommend either Rails or Laravel (roll the dice, and pick one that appeals to you).
Fair enough! I assumed from your comment that you knew Rails, which was a reaching assumption on my part.
For what it's worth - and this won't come as any surprise to you - I suspect that if you did learn Rails, you would quickly realize that the answer most "Rails but" scenarios is "Rails". Bluntly, I'm not even remotely confident that it's possible to approach the productivity of Rails with a JS stack.
For all of the "Is Rails dead?" posts, people sure are quick to ignore the fact that well over 50% of the value created by YC companies is running on Ruby-first stacks.
.NET / C#
SQL Server
React
Typescript
Netlify
Azure
React, Express, PostgreSQL. I made the mistake of starting a new project AND learning some new tech stacks (like GraphQL). It slowed me down too much and I’ve started over. I think building side projects to learn is important but if you have a dedicated app you want to ship, stick to what you know and can move fastest with.
I went from full serverless with Next.JS, FaunaDB and Algolia to full server-side with Go and Postgres hosted on Linode for https://midnight.pub. I'm happy with my current build, it's blazing fast, costs very little, and can scale greatly.
Interesting transition. I would love to know why you decided to migrate from NextJS to Golang. Are you using any Go frameworks?
Thanks for asking! I wanted to build something that should work as-is in 10 years even with no maintenance. Time will tell if I succeeded. :D I like that Go’s standard library powers all I need (no framework) and only 4 external dependencies. It makes a very little executable that’s portable.
Frontend: Next.js + Material UI + React (I use TypeScript)
Services: Kotlin (Exposed, Ktor) + Hasura for GraphQL
Deployment: Istio on GKE, with Postgres CloudSQL + PubSub communication
I wouldn't recommend the deployment/backend part of the stack unless you really need it. In my case, I need to elastically spin up custom longer-running operations that are compute-intensive.
Ruby on Rails
StimulusJS
Tailwind UI/CSS
Postgres
Heroku
Front: React/Gatsby/Bootstrap
Back: Firebase (Firestore, Hosting, Auth, Storage)
My stack is similar.
FE: React + Material UI
BE: Firebase (Auth + Realtime DB + Functions + Hosting)
Getting started is super easy and pricing is free under generous thresholds.
👍
Hi 👋🏽
good question! For me my go-to tech stack is:
Vercel: Deployments, API, Functions, and Hosting is super easy on Vercel. It is for free for one person. The only thing to keep in mind is that you maybe need to upgrade if your project gets successful or that you need to upgrade in case somebody else joins.
AWS: I use AWS a lot for all other Backend related things. DynamoDB for database, AppSync for more dedicated APIs, and Websockets.
Next.js: With Vercel I use Next.js, React, and Tailwind.
Auth0: For authentication
Stripe or paddle for payments
TypeScript everywhere :)
I think that covers all 🙂
I've been using this stack for my latest project:
My goal was to develop an MVP and be nimble to add new features or pivot, if needed. So fast development and low maintenance were my primary motivations of choosing this stack.
It basically boiled down to the technologies I know best, the development experience I liked more, and my goals and time-constraints for the project.
ASP.NET Core - I worked with it a lot.
PostgreSQL - Free and open source alternative for MS SQL. I prefer to use open source technologies for my projects.
Vue.js + Typescript - Vue.js is simple than Angular (I didn't work with React) and Typescript let me check types during compilation.
Not just the tech stack, but I'm trying to build the entire startup stack at StartupToolchain.
I use Laravel + AWS "serverless" + Stripe + WordPress + Matomo + MailerLite.
Write-ups here:
https://tech.chrishardie.com/2020/build-launch-saas-app-one-month/
https://tech.chrishardie.com/2020/aws-hosting-costs-using-laravel-vapor/
Also, if you launch a startup with AWS, I highly recommend looking at Activate: https://aws.amazon.com/activate/
For the simplest and fastest way to get something up and running, I like:
Wordpress or Strapi backend with custom API endpoints/responses. For something more complicated, Firebase as backend.
Frontend made with Express, EJS, Web Components, and Turbolinks.
For mobile, React Native.
Rails or Laravel (or still using Sinatra for simple things)
JQuery (never hopped on the SPA bandwagon)
Bootstrap but would like to switch to Tailwind
Postgres + Heroku
Netlify for static sites (+Middleman)
Have you looked at StimulusJS? I find that it is an excellent bridge from the jQuery world. You can use jQuery in a Stimulus controller until the day you realize you don't need to, anymore.
Lost me at import/export.
I understand the need for modules on very large codebases, but I think the "modern" javascript ecosystem is a dumpster fire. Oh, you want to add some functionality to your page? Import this module. Well, now you also need a build system. And your deployment solution needs to be a CI system instead of flat-file because you don't want to check in compiled files. And your deployment solution needs to...
It's just an endless rabbit hole of making things complicated. Run your code locally. Put that code on your servers. Easy!
Stimulus can be used without a build system, friend. You can use script tags to bring in everything you need in the same way you do for jQuery plugins.
At any rate, Rails has fully moved to Webpacker and Stimulus (which is by the same folks as Rails) is the best future a jQuery developer could ask for in 2020. I completely agree with you about the larger JS ecosystem, but writing off Stimulus is a bad take - it's the solution, not the problem.
You might find this compelling: https://leastbad.com/mutation-first-development
I can't tell if you're being hostile or just really enthusiastic, but it's off-putting either way. You do you! I'm not writing anything off.
Stimulus looks neat, but I don't sit up at night thinking about what javascript framework I'm going to use on my next project. If you enjoy it, that's wonderful.
I have yet to work in a module-based codebase (build system or not) that I've enjoyed. I try to use the simplest tool that gets the job done, and I've had great success with jQuery. CSS has gotten really good in the last 10 years, and 90% of what I use javascript for is toggling CSS classes on or off. If I ever get to the point where I can't do that last 10% in jquery or vanilla js, I'll look around for the flavor of the month.
It used to be Backbone. Then Angular. Then React. Then Vue. And now, apparently, Stimulus. Next year it'll be a new thing.
I'm definitely not trying to be hostile. I'm someone who used Prototype until jQuery was released and then jQuery until Stimulus was released. The whole point of what I'm trying to get across to you is that Stimulus is not the next React. It is the evolution of jQuery. It lets you do things that you cannot currently do in jQuery, which sounds like hot air until you try it.
Basically: I was you, just two years ago. I'm trying to let you know that the water is warm. I'm only telling you all of this because I care.
.NET / C#
SQL Server
Vue.JS
Netlify
Azure
ElasticSearch
Cloudflare
Cloud Provider: Firebase
Language: Typescript
Frontend Framework: Angular
Backend Framework (If I need it ): Nestjs
Database: Firestore/RealtimeDB (coming from Firebase)
In general I like this stack because I can develop fast and is free at the beginning that's why is a good place to launch your MVP
Django
PostgreSQL
Sass
Vanilla JS/jQuery
Docker
DigitalOcean
Rails + Postgres is my go to backend stack, at the moment i did go with nextjs or angular for frontend depending on the requirements.
There are significant productivity gains in using the same language for the frontend and backend.
Does productivity gain also apply if that language is JavaScript? Or is Blazor still faster to develop?
Sure - if that's what your frontend and backend are written in and what you're most comfortable/familiar with.
For me personally though, switching to JS would slow me down significantly.
For me it's Vuejs, Laravel and Tailwind.
Plain old Java on the backend
AngularJS or JQuery in the front
DynamoDB, Elasticsearch
AWS
Backend:
Frontend:
Deployment:
For me:
The best part of this stack is Prisma. Querying a Graph structured dB is just so nice.
I would like to try Rails some time though. Can't ignore all the good things that have been said.
I've been using Gatsby, Tailwind and Netlify for my static sites. It's so quick and easy using this stack. Everything just works.
However, I've just started exploring React and Faunadb for more complex applications.
*Hosting: AWS
For my video game project, a classical Unity / C# / Blender / Gimp.
For my enterprise projects, I use Open Lowcode, the open-source platform I developed for internal enterprise applications. It is using java and javafx.
Next.js
Tailwind CSS
Mysql / MongoDB / Firebase database
AWS
Well for a solo dev, there is only one choice available : Ruby-on-Rails, because of the depth of the ecosystem. Ruby is really good enough, both functional- and object- oriented. Rails is unbeaten when it comes to Get Things Done quickly. There are things I don't like with Rails. But not using Rails means spend more times on things already solved by the community. The nearest competitor in the "Get Things Done" area is probably Django, but Django is still very far from what you could achieve with Rails. For the other parts, stick with classic Bootstrap 4.5 and Heroku.
Meh Laravel wouldn't agree with that.
Agree here. Laravel is probably closer than Django.
Forgiveness for forgetting.
did you ever do asp.net core?
I'm using
Serverless for the backend
Angular with Bootstrap for the frontend,
all written in TypeScript
and deployed on AWS
for https://stackprint.io
React in the frontend, .NET core / C# in the backend, AWS for infrastructure, Stripe for payments
did you ever do Blazor? How is it compared to React?
If you decide to go with a stack that leans towards self hosted components you might find this article I wrote worth a read:
Robust NodeJS Deployment Architecture
The stack described:
NodeJS
Ubuntu
Express
Pm2
MongoDB
Nginx
Redis
Digital Ocean
AWS
For frontend, use whichever framework you like. You could even host it on something like Netlify.
It’s more effort initially because you are responsible for setting everything up, but you benefit from portability and much lower costs.
It depends on your situation, you might find that you need infinite scale, in which case a serverless stack would be better. Of course you can combine the two as well.
Another article I wrote that you might find interesting:
Reasons to use NodeJS for developing your backend systems
If you are new to web development this article might be of interest:
Deciding when to build a custom solution in web development
I built https://create-full-stack.com to solve this. It generates a full stack template for you. It's all in a single language, TypeScript. Includes iOS, Android, Web, Backend, Cloud Deployment on AWS. Let me know what you think!
It's important to choose the one you are most comfortable with. I habe worked with Express, Codeigniter, Django, Flask but I find Flask easy to get going so I choose that. Similarly for database MySQL and Tailwind, VanillaJS on the front.
These are the ones I am most comfortable working with and can build apps quickly.
Tailwind
Alpine,js
Netlify....
for wickedtemplates.com
React / Express / Node / PostgreSQL, hosted on DigitalOcean. I did a big writeup here: https://jake.nyc/words/tools-and-services-i-use-to-run-my-saas/
Interesting read. Thanks for sharing! I'm curious about authentication when it comes to node backends. Are you using custom authentication or using an external service? It seems like there aren't many robust open source solutions for authentication in NodeJS land.
Thank you! I'm using custom authentication — basically just sessions backed by Postgres with express-session and stored in cookies. There are a couple small Express middlewares to ensure people are authenticated and to protect resources. The most annoying part was password resets (sending a JWT in an email) but that was mostly because building the UI was boring.
Really great writeup, thanks for sharing. It seems like a lot of moving pieces, from experience I know these stacks can get complicated pretty quickly.
I’m curious, do you run all these components yourself?
Thanks! I think it sounds more complicated than it is. The actual architecture is fairly simple: it’s a single page app with a Node API and a Postgres database, with some Node workers backed by Redis.
Not quite sure what you mean by “run”. The Node servers are the only critical path components I manage myself — basically everything else is either managed (Postgres, Netlify), a supporting service (Grafana) or both (Sentry, Fathom).
Thanks for the added context. I was just wondering with so many pieces to a stack, if there was increased risk to the core product, and so I was curious if you had a team.
Is identifying critical path components something you spend extra care doing?
FWIW, I don't think my stack has "so many pieces" — for the most part, it's about the minimum complexity you'll find in any web app. You'll use frameworks for the frontend and backend. You'll interact with a database. You'll process payments.
When I say "critical path", I mean things that are actually required for parts of the app to function. As far as services, that means Netlify (which hosts the frontend), DigitalOcean (which hosts the API), Postmark (which sends email), Stripe or PayPal (which handle payments) and I suppose Cloudflare (which manages the DNS). That's it. Everything else is useful but ultimately superfluous.
For example, Sentry reports all the uncaught errors that happen in production. But I could live without that — I'd just have to test much more carefully, and hope users reported any bugs they found. If I got rid of it, the app would function exactly the same. Same for Papertrail, Telegraf/InfluxDB/Grafana, Statuscake, Crisp — they're all useful for making sure things don't go wrong, but not strictly necessary.
Beyond that, you have the services that exist to help with marketing. Knowing how many people visit my website is cool, but I don't really need it — so I could ditch Fathom. Same with Indicative and Google search console.
Ultimately, I think any kind of business has operational overhead, and if you do an exhaustive writeup of what it takes to run it you're going to get a long list like this. If you run a print shop, for example, you'll have inks, printers, paper cutters, paper suppliers, design software, printing software, software for sending proofs to clients, invoicing software, etc.
Laravel with Tailwind and React or Vue, depending on what I'm building.
I'll also throw Next.js in there. It's quite good to slap some landing page together and provide a fairly rich experience with some light APIs if you want to.
Python
JS/React
Bootstrap/AntDesign (depending on UI)
Postgres/Mongo (depending on a project)
AWS EB (may have a free hosting for 1 year)
.NET / C#
SQL Server
Azure
Flutter/Dart for Mobile
Blazor as needed
Reactjs
Nodejs
AWS
Mongodb
+Wordpress
Heroku
Postgres
AWS S3
Rails API
Flutter Mobile
Svelte JS
This comment was deleted 2 years ago.
This comment was deleted 7 months ago.
Do you ever do only Laravel with server side templates? How's the development speed compared to separate React front end?