HACKER Q&A
📣 ecmascript

Companies of one, what is your tech stack?


Hello dear HNers.

Each year for the last two years I have asked companies of one, meaning companies that consists of only one person of what tech stacks you use. Feel free to link to your site or project for show case if you want.

Here is the last two threads:

(2020) https://news.ycombinator.com/item?id=25465582

(2019) https://news.ycombinator.com/item?id=21024041

What is your tech stack?

Why did you choose it?

Do you think your choices had any impact on your success?

Thanks in advance!


  👤 Fornax96 Accepted Answer ✓
I run a file sharing / content delivery platform called pixeldrain: https://pixeldrain.com

The system serves 4 PB of data to 60 million visitors per month. I have served 30 PB and 700 million file views since I started tracking usage somewhere in 2018.

I'll go from front to back:

- Most of the frontend is plain HTML, CSS and JS. I have started transitioning some pages to Svelte. I like this framework for its speed and simplicity

- Cloudflare Analytics to get basic info like which pages are popular and where my users are from

- The structure of the website (page wrap, menu, footer, etc) is managed with Go's template system

- Constellix for Geo-DNS. This automatically sends users to the server closest to them by doing Geo-IP lookups on the nameservers

- The user-facing servers are dedicated 10 Gbps Leaseweb servers, stuffed to the brim with SSDs in RAID6 for caching. Each of these servers cost €1200 per month. The storage servers are from Hetzner's SX line.

- The OS is Ubuntu 20.04 server edition. I use Ubuntu over Debian because it ships with TCP BBR

- The API is written in plain Go. The only HTTP libraries I use are httprouter for routing and Gorilla Websockets

- The storage system is custom built to spread files over multiple servers. I call it pixelstore, it's not open source (yet)

- The database is ScyllaDB. I landed on this one after going through multiple other systems with severe bottlenecks. I started with MySQL which was limited to a single location, so other locations had high latency. Then I tried CockroachDB, but it kept hanging under the load no matter how much hardware I threw at it. ScyllaDB is very fast and relatively reliable.

- UptimeRobot for monitoring

- Mailgun for account e-mail verifications

Feel free to ask me more questions :-)


👤 nickjj
If anyone wants more of a deep dive on solo developer tech stacks, I have a podcast at https://runninginproduction.com/podcast/ with almost 100 episodes and 100 different guests. Every episode is a 60-90 minute unscripted podcast where we talk about how they built and deployed their app, what libraries they used, tech stack, lessons learned, etc.. There's also a skimmable list of tech stack tags, reference links and show notes.

Episodes are a mix of solo developers and organizations but based on having personally recorded and edited every episode my gut says about 30% of the episodes are solo devs and it's usually pointed out in the first few minutes of the show.

With that said, if you want to be on the show to chat about your tech stack let me know. There's a "become a guest" button in the nav bar to get the ball rolling.


👤 buro9
Getting very close in my large side projects for everything to just be Go + PostgreSQL. Go is the API, business logic, and very soon the entire web layer. This is all on Linode, there are no containers I just put a binary on an LTS Ubuntu and then iptables to just those ports (with SSH configured in their Cloud Firewall to only be possible from my home IP).

I have a long term itch that I want to scratch soon, whether it's possible to dispose of PostgreSQL and just store my data in an S3 compatible object store and yet still have a SQL interface to it. https://blevesearch.com/ is on my list of things to look into for this. I'd already structured the PostgreSQL schema with the possibility of putting individual tables into an object store, but as my databases grow I'm keen to avoid becoming a DBA and I don't use most PostgreSQL features so if I have the chance to reduce my tech stack to just Go I may take it.

What I've learned from having a mix of Python + Django + some NPM... bitrot and maintaining dependencies is a debt that you have to start paying way too soon. Originally only the API was in Go, but that is the one part that over years has required virtually no debt paydown due to the language, environment, dependencies. You can leave a Go application for 8 years and all you need do is compile it to the latest Go and everything works perfectly... I can't even run or upgrade Python apps from half that time ago without major work to bring it up to date. As the side projects proliferated or grew, it is less overall effort for me to rewrite in Go than maintain everything else.


👤 _n7kw
I taught myself to program to build [redacted], a comparison website for phone contracts in the UK.

Front end: plain JavaScript

Back end: Node.js

Host: $10 DigitalOcean droplet

Web server: Nginx

SSL: Let's Encrypt with certbot

Proxy: Cloudflare

Database: Postgres

Caching: Redis

Indexing: MeiliSearch

I wanted to learn JavaScript and understand the fundamentals, so I used vanilla JavaScript for the front end without any framework (React, Vue, etc).

Initially, the comparison engine was slow, so I learnt about indexing and added MeiliSearch to the stack.

I try to keep it as simple as possible and only add what I need.

I plan on migrating to Next.js eventually - not because I need to, but because I think it will be a good learning experience. However, that's not my priority right now, and is probably an excuse for marketing/content procrastination!


👤 Reulan
I run a handful of dedicated PC game servers for a small community of gamers. https://noobshack.com and https://reulan.com

What is your tech stack?

- Frontend (JavaScript, NextJS)

- API (Golang)

- Observability (Honeycomb.io - for events, k8s metrics, visual data analysis)

- Infrastructure Hosting (Kubernetes - container platform to run it all, in my case Google Kubernetes Engine)

- Deployment (Terraform - all deploy components are written in HCL)

- TLS (Let's Encrypt)

Why did you choose it?

I wanted to have a minimal set of tools to manage my infrastructure, with the varied workloads of (API, game server, website, etc.) building containers and running them on the Kubernetes platform made it a one stop shop for storage, network and compute uses.

Additionally on the deployment side Terraform providers and in some cases modules were already available for me to use for bootstrapping specific infra components I am interested in.

Do you think your choices had any impact on your success?

It's allowed me to create a large amount of boilerplate, so I'm at a good point if I wanted to add more servers of different types it a relatively easy change compared to how I managed it all manually years ago.

This side project has allowed me to develop a technological skillset that definitely have helped me critically think in a software development career route.


👤 polote
Knowledge management for organization (Confluence/Notion competitor) https://dokkument.com

Backend: Django + Django Rest Framework + Celery + Postgres

Frontend: Vanilla Js + prosemirror

Deployment: Manually on rented servers

Picked that because this is probably the fastest way to code for me, no bullshit. I know that if I add any new tech that will slow me down, because I'll have to learn and master it and that takes a lot of time.

I don't think that has any impact on my success at all. Customers don't care about the stack, the only thing that it impacts is development speed. And this is not a significant factor. The most important thing in Saas B2B is sales skills


👤 kureikain
https://hanami.run email forwarding services with webhook, smtp, disposable emails

Tech Stack:

- Ruby/ for webapp and user facing service: very quick to get the feature out, easiser to work with HTML, database access. Being a one man shop, I have to develop fast

- Go: mail server and anything that isn't user facing or doesn't involve rending HTML. Statically type to reduce bug, performance to cut cost, this is the core of business.

- React Native: for our (upcoming) mobile app so I can share code for both of android/ios

I think the ability to ship out feature fast is important to keep user engage. And with the performance of Go I can keep cost low. https://hanami.run currently handles about 50K domains and processes 10 email per second and the entire infrastructure is ~ $100 per month including redundancy.


👤 jarek-foksa
https://boxy-svg.com - vector graphics editor similar to Inkscape and Adobe Illustrator.

Both client- and server-side code is written with vanilla JavaScript. Since I'm targeting only Electron and modern Chromium-based browsers I can use latest web technologies without any transpilers or preprocessors. I'm using mostly raw DOM APIs without any abstraction layers.

Third-party services:

- Firebase (database, storage, hosting, cloud functions)

- Paddle (payments, taxes)

- Algolia (instant search)

- ProtonMail (regular emails)

- SendGrid (transactional emails)

I have been using Firebase, Paddle and Algolia for several years now. So far I had zero problems with them and the overall experience was great (intuitive dashboards, good documentation, clean APIs).

I only wish there was a service that would allow me to easily build Electron packages for multiple operating systems and architectures - currently it is a mess that requires multiple virtual machines with a ton of dependencies.


👤 Glench
Take payments in browser extensions: https://extensionpay.com

- $5/month Digital Ocean server

- HTTP server: pm2 / Node / Express

- Database: SQLite (because it's fast and needs fewer resources and less configuration than others)

- Front/backend - custom full-stack Svelte framework.

- Analytics: GA

- Email: Mailgun

- Uptime monitoring: Nine9s (https://nine9s.cloud/ from another solo dev I believe)

The Svelte framework I made is really cool. It makes it really easy to have server-rendered pages (for search engines and fast initial page load), pre-compiled static CSS, code-splitting per page, and automatically generated JSON APIs per page that re-render the Svelte component, as well as lets me use Svelte on the front-end which makes development much easier for me. Example code here: https://github.com/Glench/full-stack-svelte-prototype/

The tech stack has basically no effect on success as far as I can tell except that it's fast for me to develop.


👤 23matt
https://recordwise.ch - helping founders incorporate in Switzerland:

- Django/Python

- SQLite

- Celery and Redis for task queues

- Bootstrap4

- jQuery

- Sentry for error tracking

- Stripe for payments

- EmailOctopus for newsletter

- SendGrid for transactional emails

- NameCheap for the domain

- Linode for hosting

Running costs are USD 7/month for Linode + USD 15/year for the domain. SendGrid is currently free through the Twilio Startup Program.

Why did I choose it?

I am a lawyer and startet to learn how to code from scratch.

Python was being recommended because it is easy to learn. So I chose that.

Further, there are many Python/Django tutorials available online and I was always able to find my answers online. That definitely helped me to keep going and not give up.


👤 darkstarsys
My app is https://bioviz-studio.com, a web-based tool to create beautiful video visualizations of molecular structures. App itself is at https://app.bioviz-studio.com.

Front end: Vue, vuetify, vuex, NGL, three.js/webgl, d3.js, 100% typescript, yarn, webpack Back end: node.js, express, Firebase, GCE, Blender, ffmpeg, docker, CUDA

Why? Vue for pretty UI & ease of coding, NGL for beautiful molecular graphics, Firebase because it makes getting from 0 to 1 easy, Blender because of Cycles renderer & scriptability.

Have choices impacted success? Definitely! Faster iteration leads to better UX, good architecture leads to stronger foundation, and standard tech means I can on-board a contractor when needed.


👤 Aulig
I turn existing websites into apps at https://webtoapp.design

I went with Flask (python) + Bootstrap for my website.

The apps are created in Flutter, which was a great choice looking back on it. This allows me to have 1 codebase for both Android & iOS apps (most customers want both). If developing an app for just Android would be 100% effort, developing an app for Android and iOS with Flutter is around 130% effort I'd say. Those additional 30% mostly come from inconsistencies in Flutter between Android & iOS and from desired differences between the platforms, e.g. Material vs Cupertino design.

I developed native Android apps before and now I'd even use Flutter if I wanted to just create an ordinary Android app. It's just so much nicer to use in my opinion.

Summary: Flutter was a great choice, Flask is fine too, nothing to complain about there.


👤 cyanic
I built a platform for sharing git repositories: https://gitfront.io

What is your tech stack?

  Backend: Golang
  Frontend: HTML, Plain JavaScript and CSS
  Database: PostgreSQL and object storage
I run everything on a single dedicated server on a VM. Services are deployed as containers and managed using HashiCorp Nomad.

On the backend there is a custom task queue which delegates work to worker instances. Repositories are rendered as static HTML and stored on object storage. As each repository is stored as a single object there is also a custom proxy that allows serving individual files from objects. All of this is written in Go.

The frontend currently consists of a landing page without any JavaScript and a web app which builds most elements using JavaScript. Everything is styled by hand using CSS.

Why did you choose it?

I chose to use technologies that would allow me to maintain everything years from now without having to rewrite a lot of code. I wanted to have something that would run fast, work reliably, have a small number of dependencies and that would allow me to develop at a reasonable pace.

As for the infrastructure, I wanted increased availability, more security and control and lower costs.

Do you think your choices had any impact on your success?

Yes, but for me success is being able to learn, delight customers and to satisfy my own standards on how things should be done.


👤 shantnutiwari
I dont run a company, but I am very pleased to see:

* Many founders are using Digital Ocean or Linode or something similar/simple, and not complicated k8s/aws setups

* Many founders are using boring but stable tech like python/django or rails or similar for the backend, and vanilla js for the frontend

Looks like where it matters, ie, shipping something, most are using boring but stable tech instead of Fad-of-the-week


👤 bradleyjkemp
My principle for https://phish.report (a tool for semi-automating the reporting of phishing sites) is: do as much statically or server side rendered as possible.

Deployment: Docker Compose. It's great to just set a DOCKER_HOST environment variable and I can deploy to any server with Docker installed.

Backend: a Go service. Could be any language really but that's what I know. Just takes requests, does some business logic and returns HTML templates.

Frontend: I'm not a frontend dev so I try to avoid it as much as possible. For UI, I use Bulma (a pretty comprehensive bunch of CSS components), with a tiny sprinkling of vanilla JS for small client-side animations (e.g. burger menu toggles). For any user action that hits the backend, I use https://htmx.org/ and just return a small HTML snippet as the API response. No point using client-side JS for that (no latency gains and makes the tech stack less homogenous).


👤 kubami
I make a lot of prototypes along with maintaining production systems. A lot of the projects have to do with ML/NLP, which basically means I have to chose python as a core backend language. Which is great, I love python. My core production system and every new prototype is: - Django + PostgreSQL - Celery + redis - for long-running tasks - React - GraphQL - Terraform + Cloud-init to provision the infrastructure

All quite boring and stable, the way it should be :)

I have a longer writeup, along with my reasoning for the technologies I chose: https://kubami.com/articles/my-modern-saas-software-stack/


👤 midrus
Nowadays I'm using Django + Unpoly + tailwind. I just discovered a few days ago slippers which is just what I was missing. Also using Huey for background jobs, whitenoise for assets, esbuild for building js. And finally dokku to deploy (and just doing daily VM images for backup)

https://mitchel.me/slippers/

https://unpoly.com


👤 louissm_it
Ruby on Rails, with a couple React bits in there for “islands of interactivity”. Coupled with old-skool Heroku it lets me punch above my weight class, iterate like you would not believe, and focus on the business.

I only recently moved to Rails though. Before that I was full stack TypeScript, which was cool and I still miss the static types, but it’s worth going without them.


👤 eabraham
I run a Reddit Post Automation tool called Delay for Reddit: https://www.delayforreddit.com

The tech stack is:

- Ruby on Rails

- Postgres

- Redis

- Hosted on Heroku

I choose this stack because it was the technologies I was most familiar. Also, I knew it could solve the problems the business faced.

I do not think Tech Stack is the most important component to my success. Its important to choose a Stack which can solve the business's problems first and second having familiarity with the technology can make you more agile.

Spending time on SEO, marketing and advertising is where I can attribute most of my success.


👤 codeapprove
CodeApprove is a better code review tool for teams on GitHub: https://codeapprove.com

The frontend is Vue 2.0 and TailwindCSS. No other major libraries besides the Vue standards (router, store, etc).

The site is delivered by Firebase Hosting and the backend is all Firebase (Firestore, Auth, Storage and Cloud Functions)

I absolutely love this stack. It’s so simple to run and requires no maintenance. Plus the fixed cost is $0. To deploy I use manually-triggered GitHub Actions workflows.

The best part of the whole thing is the local dev experience. With the Vue CLI and the Firebase Emulators I can run my entire stack locally with hot reload across frontend and backend. When I push to production I am confident.


👤 sirodoht
Minimal blogging platform https://mataroa.blog/

* Django for backend

* Django management commands + cron for recurring tasks

* Django templates for frontend

* Very few lines of vanilla JS

* uWSGI

* Caddy for reverse proxy + SSL generation

* Let’s encrypt for wildcard SSL

* Hetzner instance as server

* Deployment through SSH + git with a simple script: https://git.sr.ht/~sirodoht/mataroa/tree/master/item/deploy....


👤 Mikeb85
Still haven't finished shipping the product, but the newest thing I've been working on is a site/app for analysing asset prices (stocks, commodities, land/homes).

> What is your tech stack?

Ruby, Rails, Postgres, Sidekiq, Redis, Hotwire, Stimulus, TailwindCSS and Echarts for visualizations. Heroku hosting because I don't want to deal with devops and hosting costs are the least of my worries (data's expensive these days!).

> Why did you choose it?

My background is in economics, trading and business (among other things). I picked a tech stack that makes the parts I have the least experience with (web development) easy and the Rails ecosystem really can't be beat. The 'default' Rails tech stack is also nicely curated and seems to just work.

For the parts I do know very well (economics, financial analysis) Ruby is a great language. Python/R have a few more packages (and I've used R quite a bit) but I'm rolling my own business logic anyway and I prefer Ruby as a language to both.

> Do you think your choices had any impact on your success?

Progress has been surprisingly quick so hopefully!


👤 BiteCode_dev
Django, doit, tailwind, vuejs with vite, postgres, redis, poetry, git and ubuntu.

I've tried many alternatives but every time things are just slower to dev.

This stack has a great balance between integration and flexibility. The only things that matches the django ecosystem is the rail/symfony ones, but ruby and php outside the web are limited. Js has diversity but integration is seriously lacking. Anything else is too low level which is not a good cost/benefit ratio for me.

Vite, vue and tailwind makes front dev fun again, postgres and redis can deal with everything without tuning up to millions of users and ubuntu and git are just easier to find tutorials for.

The impact is huge as I can actually focus on my value proposition for my client. They can ask me to add a cms, a weird service auth or some messed up ftp pdf generation workflow and I can leverage existing libs 80% of the way, with just enough custom to charge premium.

I end up twice faster, 3 times cheapers than my competition and yet my hour billing is very good and my stress at sea level.


👤 davidbanham
I run https://takehome.io and https://clubman.app on the same stack.

Backend in Go with a simple MVC pattern, no framework. All data in Postgres. Front end is server rendered HTML using MaterializeCSS for components, migrating to TailwindUI.

Hosted on GCP using Cloud Run, deployed using the gcloud cli orchestrated in a makefile. Database is a Cloud SQL instance.

Google Cloud Tasks for the message queue. Amazon SES for transactional emails and S3 for blob storage.

I have written a LOT of single page front ends over the years. I think the decision to go back to plain HTML templating has made it dramatically faster to add features. Same for the switch from microservices back to a well constructed monolith. I can just get right down to the feature I want to build or the bug I need to fix without wrestling the plumbing.

Go has also been wonderful for keeping things simple. I was always tempted to make things “clever” in nodejs.


👤 nudgeee
For my side company I design and build audio electronics for DJs.

https://cardinia.net/

Here is my tools & workflow:

https://nudge.id.au/v5/img/Cardinia-Electronics-Workflow-202...

Professional CAD tools are not cheap, so I'm basically breaking even. I'm mainly doing it for the love it -- I love to create things to inspire others to also create.

Luckily I have a full time job to keep me going :)


👤 cfontes
I am buiding a Purchasing system for construction comapanies ( I own one and it's test subject atm).

The sofware focus on automating tasks other systems don't, document decisions and an extremelly tight link between the budget and the real and projected expenses.

Construction is a very local dependent business so good systems from other countries didn't adapt really well here. Hence the effort to make our own. I am the solo dev.

Stack is

* Backend: Quarkus.io , Lombok and Java

* Frontend: React, Ant Design and Typescript

* Persistentency: Postgres

* Automatic Backup: S3 and custom Postgres container

* Platform: Civo and K3s for PROO

* Security: Keycloak

* CI/CD: Github actions and Cloudflare pages

* Local Env: Docker for local.

* Ide:IntelliJ

Why did I Chose it: * Java and Quarkus: because I have 20 years of experience with Java, it's rock solid, performance is great and I am fast with it.

* Civo and K3s: Because I love k8s but it's too expensive to run for my operation.

* Postgres: It's just great.

* React and Ant Design: I like React approach, I have used Angular and Backbone before and react is awy better. Ant Design is just awesome, great looking components and they work 99% of the time, documentation is also very good.

* Keycloack: because makes me faster, implementing security by your self is always a bad idea unless you are a pro, which I am not. Keycloak let's me focus on the business.

* Github actions: Simple, powerful, free!

* Cloudflare pages: Simple, powerful, free!

Do you think your choices had any impact on your success?

Not there yet, let's talk in 3 years. But we are using the system at my company already and locally it's been a great sucess, improved our work by a mile, people are happy using it even with some bugs, we are already saving money and identifying places where we didn't have a good budget to improve next time. We also are not afraid of people leaving anymore, since with the system their replacements can pickup where they left and continue to work on Day 1 and buy stuff maintaining the time requirements, that was the best part.


👤 pawelwentpawel
https://flat.social - a webapp for building playful virtual spaces for meetings and socials. (demo here: https://www.youtube.com/watch?v=JO9o1DobMzs)

Front-end: Typescript, Next.js, Styled Components

Back-end: Typescript, Node.js, Express, Socket.io, Express Audio/video: Mediasoup

Deployment: Github workflows, Docker

Analytics: GA, Mixpanel, Sentry

Hosting: A couple CPU-optimised droplets from Digital Ocean, Firebase

Next.js + Styled Components was a really good choice. When time is limited, reducing any silly roadblocks is really important.

Mediasoup is pretty raw when it comes to setting up basics of video conferencing but allows for a much higher level of customisability and optimising final operational cost. It was a world of pain initially (not many solid examples of how to use it) but worth it at the end.

> Do you think your choices had any impact on your success?

Maybe not on success (reality will verify that in the coming months) but on avoiding any unnecessary failure on the way. I worked and interacted with startups in the past that would get excited and jump on using newest tech (the very first version of Swift or early version of React Native for example...) just to end up battling the unknowns after a couple weeks / months. I try to keep the product fun but keeping the tech stack boring and predictable.


👤 montenegrohugo
I'm currently building namy.ai (AI domain name generator) solo, and here's my tech stack:

BACKEND:

- Python for the backend. Just a great, batteries included language that lets me do what I want fast and doesn't get in my way.

- Flask: a web framework for Python. There's Django too, but Django is no fun. Flask is small and exactly what I want.

- Pytorch: My DL framework of choice. Again, understandable, makes sense, and fastly iterable. No archaic nonsense (looking at you Tensorflow). Also of course pandas, numpy, scikit etc...

- Scrapy: pretty powerful scraping library

- PostgreSQL: classic

FRONTEND: I'm not a frontend guy, but it's a necessity, so I go with the simplest.

- Bootstrap: Lots of templates, easy to understand. I'm not entirely happy with it though; I wanted to try Tailwind.css for my next project

- Simple, custom Javascript. No complex frameworks. I barely understand JS; I don't want to use a framework until I feel comfortable with bare JS.

DEPLOYMENT & OTHERS:

- Heroku: a bit expensive but so simple. Removes all the hassle. I don't think deployment is fun, so Heroku is my friend.

- Google Analytics: I don't want a lot of analytics, and GA just works. I do want to move to a more privacy friendly choice.

- Uptimerobot for detecting problems. Simple, works, free.

With this tech stack I feel really comfortable, I can iterate on all layers, and I really do have fun developing on it. I can shoot out an MVP for most projects in a week.

Here's some stuff I've built with this:

https://www.namy.ai (still building it, especially improving the AI model right now)

https://www.hugomontenegro.com

https://www.remindy.me

My biggest gripe in this tech stack is bootstrap, but I think despite of that and me not being a frontend engineer I still managed to give the sites a bit of a non-generic flair.

Happy to answer any comments!


👤 axelroze
Not a single-person company but I worked on projects and in roles where I was the single person making decisions. Here is my small overview of the ML (machine learning) and DS (data science) world. Hope you find it useful

> What is your tech stack?

The choices are python, scala, julia, matlab and R. Of these python takes at least 90% of the market. I am using python and will do so for the forseable future. Don't like it but it's super practical thing to do. Fingers crossed Julia hits mainstream in the next few years.

Since I am mostly in the computer vision world my stack is torch, torchvision, pytorch-lighting, opencv, scikit-image, scipy and numpy. From time to time i call upon numba when it is impossible to avoid a loop (python loops are sloooooow, numba JIT compiles). Very rarely i coded stuff in C++ and used cython to link it to rest of python. Most of the stuff is already there. For model inference serving i use fast api.

> Why did you choose it?

I chose python because there is no real choice here. It's a monopoly. Winner with most ready to use packages takes all. I am rooting for Julia to eventually win over python as using python as the (big) data language is contradictory given how slow the interpreter is. Also it is not a GPU native language.

Torch was more of a personal choice as I really hated tensorflow 1.X versions and the compute graph. It was hard to debug and follow what is going on. Tensorflow 2.X moved to same mode of computation like torch but it was already too late for me.

> Do you think your choices had any impact on your success?

I think going with tensorflow would have worked as well. Lot more annoying but good base. Using language other than python would have been a bad idea. Practical ML is a lot like JavaScript WebDev. Get a bunch of stuff from 3rd party packages and write some glue code.


👤 benjaminwootton
I have always used Rails for my projects. In the most recent I took a detour to Django, which was successful, but never felt quite as productive.

If I start something new this year I think I would opt for Rails again. Even though it’s long in the tooth nowadays, I would choose it for productivity, time to market and availability of people if the project scales.


👤 efortis
For UI Drafter https://uidrafter.com I keep deps at a minimum for the sake of having fewer moving pieces. I chose a stack that I was already familiar with.

The impact on success is marginal, but I'd say that it's cost effective due to being more stable (in the easy to upgrade sense).

Cloudflare DNS => 2 Baremetal FreeBSD => 3 jails [Nginx, Node, PG]

https://blog.uidrafter.com/freebsd-jails-network-setup

SSL Let's Encrypt

https://blog.uidrafter.com/isolated-tls-certificate-creation

Fastmail, Stripe

The PWA only uses React

https://blog.uidrafter.com/architecture-of-a-desktop-alike-s...


👤 davidwparker
I've got a few sites (trying to make money), all using the more or less same stack:

* Frontend: Svelte using SvelteKit (and one Sapper), TailwindCSS / TailwindUI, hosted on Vercel

* Backend: Rails API, hosted on Heroku

* Database: PostgreSQL

* Queues: Sidekiq

* Caching: Redis

* Mobile: Flutter

* AWS S3 for things like images.

Sites:

* https://www.listenaddict.com/

* https://www.programmingtil.com/

* https://www.camerapricetracker.com/

* https://www.useproducer.com/

And business site / blog:

* https://www.codenameparker.com/

* https://www.davidwparker.com/

Edit: formatting


👤 nicbou
My main asset is the content I write and maintain. My tech stack is Craft CMS on Docker on Digital Ocean. Super simple stuff.

I think that Craft's data model allowed me to create a better website than if I used WordPress. It's trivial to create content types that aren't blog posts. You can have a real data model, with custom, interlinked post types and taxonomies.

Templating is also a breeze with Twig as its backbone.

I had issues, but they're caused by my own docker setup, and my aggressive caching practices. The lack of a plugin ecosystem is also frustrating if you're not ready to make your own.

The main issue is Redactor, the default wysiwyg editor. It's quirky to a point where I wouldn't feel safe letting someone else edit the website.

Edit: allaboutberlin.com


👤 welanes
I'm building https://simplescraper.io - data extraction in the spirit of the late Kimono Labs.

Front: Vue.js, Tailwind

Back: Node.js, Firebase (Database, Hosting, Functions, Scheduler)

Management: Airtable, Github, a 30,000 word README file


👤 Rd6n6
For my game, I started with unity + a bunch of plugins, but switched to unreal a few months later for a variety of reasons. C++ and a lot of custom systems - third party game plugins seem to have a lot more issues than in full stack dev. It’s not really about tech stack so much as good system design choices that lets you work really fast. I put a little site up for my prototype at https://barbariangrunge.com

I also have a app for tabletop rpg prep but it isn’t live yet: node, mongo (for a certain type of user editable schema), nginx, react, redux, the usual. I replaced chef with some bash scripts in my projects a while ago and it’s been great


👤 aparks517
Niche music streaming service http://lofi.limo/

Front end: plain JavaScript

Back end: Phoenix and Elixir, Postgres, OpenBSD

Deployment: tmux on a bare-metal server at a local colocation facility


👤 sideproject
I run Newsy - https://www.newsy.co It turns your un-used domain names into a Reddit-like content aggregator.

I use

- Laravel - Vue - Postgres - Tailwind - Hosted on Vultr

This has been my go-to stack for quite some time. Very happy with it. Perfect combination for a mostly CRUD app.


👤 rakshazi
I started https://etke.cc service not long ago.

Tech stack: ansible (automatization), docker (simplify deployments and maintenance), matrix (protocol) and golang (internal tools)

The idea of the service is to provide painless setup of matrix homeservers with huge customization options (not listed on website, otherwise it will be 3 desktop-screens-form in size), because if you went your matrix hs you must suffer :D and I'm trying to make it as simple as possible for newcomers to matrix world.


👤 joshmn
I had a consumer subscription platform with ~12k paying users from 2016 until July 2021.

I chose the stack I knew best that allowed me to iterate the fastest, and that was Rails.

I wouldn't have chosen anything else because using what I knew best allowed me to have less time playing guessing games with my stack and more time talking to customers.

It wasn't the fastest for my use case, and there were times where I hit some bottlenecks in terms of IO, but that was solved with scaling hardware — cheap, in comparison to learning an entire new stack.


👤 ChrisMarshallNY
I have a couple of corporations:

https://littlegreenviper.com

https://riftvalleysoftware.com

It seems most folks have "tech stacks," which, to me, means "Internet-based software applications, or SaaS." I write native apps for Apple devices (iOS/iPadOS, WatchOS, TVOS, and MacOS). Some, use Internet-derived services, but some are also standalone on the device, or use things like Bluetooth.

My "Stack" is basically Xcode.

I've found that CI/D tools aren't actually very useful, for me. I work in a very dynamic fashion that has lots of twists and turns, and these tools tend to be "Concrete Galoshes"[0]. I'll script portions of the build, like docgen.

Basically, the four apps that I use, are Xcode, BBEdit, SourceTree, and Adobe Illustrator (for creating assets. I like to use vector, if at all possible). I have dozens of others that are used on an "as-needed" basis, like Charles Proxy, or Postman. I also have a bunch of devices that are used as test subjects.

I make heavy use of Apple's TestFlight beta-test service.

And I use GitHub as my offsite repo (pro account/free account ).

[0] https://littlegreenviper.com/various/concrete-galoshes/


👤 delgaudm
Something different. I'm a Voice Actor, my "tech stack" is Reaper-iZotope

My "business stack" is Zoho One, which has been fantastic for managing everything else that isn't my tech stack (crm, website, billing, books, docs, mail, file storage, etc...)


👤 nip
I run https://simplePDF.eu.

It’s a web-based PDF editor: add text fields, checkboxes, pictures (watermark) and signatures to otherwise non-interactive PDF documents.

Tech stack:

Server: DigitalOcean droplet (10€/month but only because I run all my projects on it, the 5€ one would otherwise suffice)

Database: Postgres

Frontend: NextJS

Backend: NodeJS (koa) serving a GraphQL API

Email: Mailgun

Payment processor: Stripe

I chose this tech stack because I’m proficient in it, which allows me to focus on shipping rather than figuring out how to ship.


👤 ai_ia
I built https://primerlabs.io. A conversational learning medium designed for people who wish to learn Computer Science on their own.

The tech stack is Meteor.js for backend and React + Apollo Graphql for front end. I use AWS lambda for Anki Card Generation generation and Latex-based PDF Generation for personalised Books. The main website uses self-hosted Ghost blog. Using Ghost for the main website + blog, saves a lot of time with SEO and Image compression. While compiling Latex on AWS Lambda Container is pretty slick.

Deployment: Docker, AWS Beanstalk

> Why did you choose it?

It's been an absolute joy working with Meteor. You can prototype quickly. For instance, last week, I was trying to add anonymous accounts i.e. no need to sign up to view the application and can merge directly once the user is ready to sign up. It took me a half a day of work to do that in Meteor.

There is a feature of real-collaborative learning I want to add in the application i.e. you can learn with friends and see their responses, notes in real time. Meteor has real-time capabilities using pub-sub which makes it quite easy to do so.

> Do you think your choices had any impact on your success?

The product is not mainstream yet. A small number of people who use it, love it. It requires a bunch of more courses to make the value proposition clearer to the users. But Meteor.js enabled me to prototype quickly since this is the third iteration of the product which I finally thought was closer to what I had in mind.

I am not in anyway associated with Meteor. I really love Meteor, that's all.


👤 CerebralCerb
An environment-health-security app for the B2B market

* Flutter frontend iOS/Android

* Parse Platform backend backed by MongoDb, hosted on Hetzner dedicated server with backups in Azure

- Migrated from Firebase

* ASP.NET 5.0 backend for various other integrations and periodic back office jobs

- Migrated from Firebase Functions

* Back office tools (CRM, billing etc) in React/Redux

- Currently experimenting with Appsmith to allow for quicker iterations

* Landing page in React

- Originally just plain HTML. Re-wrote to React to be hip.


👤 ggregoire
Lot of PostgreSQL but not a single commenter uses PostgREST.

Curious if it's just because the tool isn't well known enough or if it's because it has some serious drawbacks? Or people don't like writing SQL?


👤 gizdan
On a similar note, has anyone used a pre-built "saas starter kit" or the like? If so, how is it going? Do you regret using it?

Reason I'm asking is because I'm trying to write a new app from scratch but I'm getting demotivated having to implement things like users, organisations, and other things that is essentially just re-inventing the wheel.


👤 WA
App with Web account management:

Ionic, Stencil, Capacitor, TypeScript.

A CouchDB per user for auto sync across multiple devices.

Backend with Node, CouchDB, TypeScript, pm2 on a VPS.

Sendinblue for transactional emails (EU).

Why? Because Ionic lets me target iOS, Android and web with a single code base and almost no custom view code per platform. For non-technical users it is "good enough". Nobody ever complained about the non-nativeness.

CouchDB enables auto-sync with 0 lines of syncing code. It’s good, although there aren’t super many tutorials on the web.

CouchDB makes my app offline-first. I’d say this aspect alone is extremely great. A competitor has a similar app, but native. However, saving data requires an internet connection. This makes their native app feel slower than my non-native offline-first app.

For account management, I wouldn’t use it again, because I like SQL and that it makes it more easy to calculate some business statistics you might need only once.


👤 marshallbananas
I'm a fullstack JavaScript dev. I used to write everything in pure React and serve it with Express on Node but two years ago I started experimenting with all the fancy new frameworks and now my every project is:

- Gatsby or Next depending on how dynamic the content is

- Firebase for db, auth, and bucket storage, and sometimes hosting

- Vercel for NextJS hosting

- Recoil for state management; after years of using Redux it feels amazing, like it's a part of React

- ImmerJS for immutability

- SASS for CSS

I love my current stack. It definitely took a while to make everything work together smoothly. I don't understand the complaints about modern web dev. I've been building websites for almost 20 years and this is the most productive and fast I've ever been.

The only thing I still haven't figured out is CMS. Tried all of the fancy new headless CMSs but nothing works for me. Working on my own.


👤 marianattestad
Visualization software for genomics scientists at https://omgenomics.com/circa

I made it during a 2017 sabbatical between my PhD and getting a "real job" and it's been passive ever since.

Tech stack: * D3.js for visualization and actually the whole UI. * Electron to make it a desktop application, which also means users' data is stored on their own computers. * Selling on Gumroad. * Website with landing page and usage info is in Jekyll on GitHub pages. Aside from that, no servers :)

I chose this because I had used D3.js a lot before, and making it a desktop application is just what works best for users and prevents outages. I would probably make all the same choices again.


👤 tosh
I built https://applesilicongames.com with Python and Flask on https://www.deta.sh

Currently looking into adding Tailwind (CSS)


👤 justsomeuser
Not making a lot of moolah but here is the current iteration:

- HTTP API: Rust, type checks are really useful as web apps are often just messaging. Not being able to cleanly assert JSON structure in dynamic languages started to become an issue.

- DB: SQLite. Not having to manage servers, and just “click to open in GUI” on Mac OS makes development easier.

- Hosting: Google Container OS, Docker, regional disk replication. Every SQLite tx commit is replicated to two zones, the db is incrementally snapshotted hourly.

- UI: TS, React, MobX. Got tired of Reacts state APIs changing every year so just froze on MobX.

- Editor: IntelliJ. I am happy to pay monthly to not deal with plugins. Search is very fast and type aware. Works with all languages with the same shortcuts.


👤 dowakin
https://optduty.com/ - smart on-call scheduling for PagerDuty. Small startup with about 20 clients right now and $30k ARR.

Front-end: ClojureScript, Rum and Javelin spreadsheet cell for state handling

CSS: Tailwindcss

Backend: Django + Django REST framework

Deployment: Ansible

Analytics: GoAccess

Statics: GoHugo

Misc: Nginx, Postgres, Redis Docker only for running client specific optimizers.

A lot of tools in the list, but everything is pretty lean, and allow me iterate really fast.

About success criteria, having more analytics would help me get a few extra clients, but because it's side project without any investors I'm happy with trade off.

And after companies are starting to use the produce, I hear a lot of positive vibe about strong privacy.


👤 second--shift
Golang backend, some light vanilla Javascript frontend. postgres db. running on podman (docker-compose), fedora server.

I have some background in C programming, so Go was easy to pick up. the standard libs are great for building server-side webapps with a sql backend. templates lib and some glue javascript make front-end pages a breeze.

I'm a linux guy thru-and-thru, so running fedora server on the latest kernel. latest podman from RedHat and docker-compose to orchestrate.

I'm one guy so I don't do any HA or cloud or any other funny business. My one server is racked nearby and I've had good history with the colo.


👤 adamhp
I'm building a web-app called Tripmix, that lets you build travel guides for your friends (like FB Recommendations meets Canva).

I use Postgres, FastAPI, and TypeScript React. I wouldn't recommend TypeScript for solo developers who need to iterate and prototype quickly. That's been my biggest regret thus far. I think the end result will be much cleaner but I've sacrificed a lot of time getting it there, when I could have been shipping. It's all been a good learning experience though, and that's how I'm treating it.

Picked all of them out of familiarity.


👤 jcroll
Audiobook meta search: https://www.audiobookmate.com

- Backend: Flask + SQLAlchemy + Celery

- Frontend: Angular + Bootstrap

- Database: MySQL + Elasticsearch + Redis

- Deployment: Kubernetes on GKE


👤 Crazyontap
> What is your tech stack?

Backend: LAMP (Linux Apache Mysql Php)

Backend Framework: Php no framework only composer

Frontend Framework: Vuejs 2.6

Deployment: rsync

Hosting: contabo (8gb/€5)

Email: SES

Error reporting: Honeybadger (it's free)

> Why did you choose it?

It's something I've known my entire life and it works great for me.


👤 Shish2k
I’m not a registered company, but a solo dev who creates things for joy and ends up getting paid for it.

Legacy projects: Plain HTML frontend with minimal vanilla JS for small progressive enhancements, PHP (custom framework) backend, Postgres, deployed directly on rented bare metal hosts, Salt for configuration

New projects: HyperApp JS frontend, Python (aiohttp) or Rust (warp) backends, Postgres, deployed in docker containers on rented bare metal hosts, Ansible for configuration

Notes:

switched from salt-server to salt-ssh after there was a salt-server exploit which owned my whole fleet. Switched from salt-ssh to ansible-ssh after salt-ssh was broken on osx for 14 months (and counting…)

Backups done with each project having a cronjob dumping a snapshot into a folder, then SyncThing copies those onto a remote backup host, with the backup host configured to keep old versions of files

Debian stable for the hosts, language-specific images for containers. I wonder if my bare-metal OS runs basically only sshd and docker, is there a better choice than Debian? It works fine, just seems overkill...

Monitoring done with telegraf + influxdb. Previously I had grafana in front. Recently moved to influxdb 2.0 with built-in dashboards, which is ok, but grafana was better (more graph settings (influx doesn’t even do log-scale y axis??); more flexible alarming; graphing and alarming were integrated where influx has them separate) - considering putting grafana back even if it means re-creating all the dashboards and alarm rules for a second time...


👤 mejutoco
I am running several projects [0]. One of my latest is https://fromzerotofullstack.com , with video for developers to learn from real projects.

For it I use htmx [1], sass [2], Django, Postgres, and Auth0 [3]. I deploy on linode using Ansible [4]. For the videos I use OBS [5] and some custom python scripts. If I need any extra 3d or animation, I use Blender[6] and Shotcut [7].

I have tried other technologies for other projects, like React or Elm (which I find great). But so far this setup (maybe changing custom css by tailwindui mostly) is my most productive.

[0] https://mejuto.co

[1] https://htmx.org/

[2] https://sass-lang.com/

[3] https://auth0.com/

[4] https://www.ansible.com/

[5] https://obsproject.com/

[6] https://www.blender.org/

[7] https://shotcut.org/

Edit: link format


👤 pvsukale3
Profilehunt( https://profilehunt.net ) is a Kanban board built for organizing your job search. It comes with a browser extension so you can add jobs from any website to your board. Profilehunt sends weekly reminders and updates on applications.

It has been built using following technologies: - Ruby on Rails - Web framework

- StimulusJS - Javascript

- TailwindCSS - CSS

- Redis - Memory store

- Postgres - Database

- Nginx - Reverse proxy

- AWS Cloudfront - CDN

- AWS lightsail - VPS

- Github - Code hosting

- Capistrano - Automated deployments

- Sidekiq - Background Jobs

- AWS SES - Email SMTP server

Edits : Formatting


👤 frenkel
Never forget an autorenewing subscription again: https://everlint.com

Hosted on a simple Debian Linux VPS with https://tilaa.com. Running nginx with Let's Encrypt certs.

Built in Ruby on Rails with PostgreSQL for the database and Stimulus as JavaScript framework. Charts are generated with ChartJS and CSS is using Bulma framework.


👤 BackBlast
I run personal food storage inventory system as a webapp/pwa: https://www.foodstorageplanner.com

Front end runs Vue 2 with Quasar, JsBarcode, custom service worker, and PouchDB for local data persistence. The stack is optimized for ease of adding features with the pre-build GUI components, and front end PouchDB facilitates offline capability as well as keeping a user's various clients in sync.

The backend uses an nginx proxy to CouchDB for data persistence and replication, a small node.js API, and product data from various free repositories. CouchDB serves as the master store as well as the hub of replicating data between clients on the same account.

The architecture and tech choices are very closely tied to client desires. Clients planning for disasters demand the software continue to function offline or in degraded network environments, so this feature drives the overall offline-first data architecture. Data needs to remain in sync across a family's devices so the replication and keeping all the clients up to date is a big value add.


👤 the__alchemist
- Firmware in Rust, using the Rust-workinggroup cortex-m and peripheral-access-crates. A custom Hardware Abstraction Layer for STM32 and nRF-52.

- KiCad for PCD design, SolidWorks for CAD.

- Website backend Python/Django. Frontend is HTML with Django's templating, and CSS. Modern JS to manage the cart, handle orders, and validate the address and order forms.

- Heroku to host the website.


👤 DrNuke
Content project at https://www.tenproblems.com/ , Literature Reviews for Inquisitive Minds. Democratizing academic debates for the 2020s against fake news, sensationalism and outright biased agendas.

Wordpress (anchor website & free content) + Amazon Kindle (paid content & casual customers management) while using Google and Google Scholar as the main source for up to date references and a word processor to write the booklets.

Still tinkering about blog posts (more free content on the website to attract more traffic through SEO buzzwords) vs simple dedicated software demos on github (to create a portfolio while testing which ones to pursue commercially down the line).

Success? Break even in terms of sales for now, plus thousand visitors from all over the world enjoying the free content, and someone kindly commenting to help or just to say thank you.


👤 ardit33
IOS, native Firebase + Java and Google Cloud, for the backend Database, Firebase Realtime DB, as a NOSQL solution (works better than Firestore for me) and actually build a simple RCP service on top of it.

My next backend might be on Go and just use a simple Rest service, and minimize Firebase usage (it is still good for real time chat type of apps).


👤 sjpj
Just got everything running about 2 week ago for my jobs site, https://waitwhatdoyoudo.com.

> What is your tech stack? Frontend - React Backend - Django (Python) Database - Postgres All hosted through Heroku.

Also, Data Pipelines - Airflow (Python hosted on GCE) Analytics - Google Analytics Email - Mailchimp

> Why did you choose it? I am a Data Engineer by day so regularly use Python and GCP. Where I could, I chose tools I'm already working with to limit the learning curve of using them. Where I couldn't, I chose whichever option was most hands off.

> Do you think your choices had any impact on your success? We will see. After I get the current feature I am working on, I plan to transition to marketing the site rather than working on the site. Success will be whether or not I have to jump back into maintenance mode.


👤 commondream
My stack for https://www.withcardinal.com is based on my experience with working on startups and the things that come up down the road. We're technically a 2 person company because I have a more business oriented co-founder, but I'm the only programmer and ops person.

> What is your tech stack?

We use a managed K8S provider so we don't have to deal with server and cluster upgrades ourselves. That's a huge time sink, especially as server counts scale up. Our cluster has Nginx for ingress, Loki for logs, Prometheus for metrics, and Grafana to keep an eye on things.

We're building the app in Node.js, primarily because in our app there are a handful of spots where we can share code between front-end and back-end. We use Next.js a lot, and use Bull for our queueing at present, and use the ws module for our websockets.

We use PostgreSQL for database, without an ORM just because that's my preference, and we use Redis for queues and some caching. That'll likely change over time as we grow, but managed Redis is pretty much ubiquitous at this point so it's an easy place to jump in.

> Why did you choose it?

My stack is mostly based on past experience and the requirements of the app. Since I'm hoping to grow the company and am mainly b2b focused, having a popular infrastructure stack makes life a lot easier in security audits and contract redlines, and in finding ubiquitous tools. Like I mentioned above, I didn't want to deal with server upgrades, so I'm using a managed k8s provider. We're using node.js heavily because there were a few obvious paths where code could be shared between server and client.

> Do you think your choices had any impact on your success?

We will see. We're very early in our journey, but I'm hoping keeping things easy to change and ubiquitous will help us as we progress.


👤 sharat87
Still early days at https://prestigemad.com (recently discussed at https://news.ycombinator.com/item?id=27412445)

- Backend is a Django project, database is PostgreSQL.

- Frontend powered by Mithril.js and the editor by CodeMirror.

- Hosted on a $5 box on EC2.

- GoatCounter for analytics.

- CloudFlare for DNS, NameCheap for domain.

Also https://httpbun.com

- Backend is a vanilla Go project.

- Frontend is plain HTML and CSS, I don't recall it having any JS at all.

- Hosted on the same $5 box on EC2.

- No analytics (yet).

- CloudFlare for DNS, NameCheap for domain.

It is refreshing to see how much I can squeeze out of a $5 box. I don't intend to stay with EC2 for long, but when its cheap, I'd rather spend my time improving Prestige (currently working on Gist integration).


👤 pawelkomarnicki
I run my digital product incubator being a simple agency specializing in building startups from scratch coaching founders (https://Cubitoo.com) and to keep things simple here’s what I use:

Front end: plain JavaScript (as coffeescript) Back end: Ruby on Rails Host: $7 Heroku hobby dyno SSL: provided by Heroku Proxy: Cloudflare Database: Postgres Caching: Redis and memcached Indexing: full text search in postgres

I also do iOS apps, using native SwiftUI framework. My newest app is Howdy, a journaling app: https://apps.apple.com/de/app/howdy-journaling-reflection/id...


👤 tmlee
Heroku works best for a company of one to offload most of the devops out

Otherwise, https://dokku.com has been really stable to launch your own heroku on cloud services like Digital Ocean or AWS

Gives the same experience as Heroku but with more flexibility


👤 tonyjstark
Decision Log SaaS with Slack Integration:

* PHP with Laravel + Postgres on the back

* Blade + Livewire on the front

* hosted on Clever Cloud

I chose it, because it's a stack where almost all problems have already a solution because others had it before. Also, and this was really important at the time: There is just so much built in, PHP+Laravel is a powerhouse for rapidly developing MVPs.

I'm still pretty happy with it. It can take you pretty far if you keep your code base clean, use all the existing tooling like static analyzers, code formatter, and write tests. While success is still moderate, I don't think I could have done it with a different Tech Stack, at least not in the same time-frame and with the same confidence.


👤 bwship
Commandeer - Desktop App for AWS and LocalStack https://getcommandeer.com ----

- AppSync, ApiGateway, DynamoDB, Lambda, Athena, S3 for the backend - Vue.js, AWS JS SDK, TypeScript, Electron for the desktop app - Vue.js, Firebase Hosting for the Web Portal - Nuxt.js for the marketing site - Forestry.io for the docs - Mailchimp for emails - Stripe for payments - SendGrid for transactional emails - Auth0 for authentication

(Note: the about page shows a few more people, but 1 is my wife, one is my cousin, and the other two don't work on the project anymore, so really me myself and I)


👤 atari800
I have a couple of SaaS products: Belt drive design tools for companies in the mechanical power transmission industry, and dealership management software for manufactured housing ("mobile home") retailers.

Back end:

- Windows Server 2012 - MS SQL Server - ASP.NET - Web API 2 - C# - Dapper "micro ORM" (I dislike heavy ORMS and would rather write my own SQL)

Front end: - Bootstrap - jQuery - DataTables (https://datatables.net/)

I use these "boring" things because I'm familiar with them from contract programming work for companies where Microsoft stuff is common.


👤 joshmanders
So I have two distinct companies

Primcloud - Cloud hosting platform (https://primcloud.com)

- Infra: Kubernetes on AWS

- Backend: Moleculer.js Microservices, Prisma with PostgreSQL

- Frontend: React/Next.js and Tailwind CSS/UI.

NiftyCo - Collection of low-touch SaaS products I am building. (First product: https://prevalidate.com)

- Infra: Deployed on Primcloud

- Backend: Next.js API / Prisma via my package Next-SaaS (https://git.io/next-saas)

- Frontend: React/Next.js and Tailwind CSS/UI.


👤 kkielhofner
Digital media asset management with dynamic updating, cryptographic verification, blockchain verification, social media integration, and more:

https://tovera.com

Cloudflare facing the Internet Marketing website and user dashboard with Next.js Both hosted with Cloudflare Pages API served with Node 14 on Azure functions User attribute store in Azure Cosmos DB User asset storage in Backblaze B2 Share implementation with Cloudflare Workers Blockchain and IPFS via Infura Uptime monitoring and alerting with UptimeRobot (Probably others I’m forgetting)


👤 agilob
Backend and frontend were generated using jhipster, then jhipster specifics removed completely, parts replaced with openapi generator, liquibase with flyway

Backend: Spring Boot + PostgreSQL

Frontend: TypeScript + Angular (considering switching to DartAngular) for future components

mobile: Dart + Flutter

hosting: k3s and operations using gitlab

Why did I choose it? These are tech stacks I know best.

>Do you think your choices had any impact on your success?

I regret using less mature backend frameworks at the beginning, I spent a lot of time fighting interfaces, DB transactions and mocks in quarkus and micronaut. They improved a lot since then, but I didn't look back.


👤 viking2917
I run a social reading app call Bookship (think, virtual book club). https://www.bookshipapp.com

App Tier on iOS, Android, Web, from a single source built with: Ionic V1 / Javascript

in-app Live Video Chat through JITSI

Deep Linking to app by Branch

Web hosting: EC2/Route53/Cloudfront

Web Analytics: Mixpanel

Server (old school: Mysql/PHP, MYSQL on AWS RDS server, PHP on the web servers @ EC2)

Source code mgmt: Github

IDE: Vs Code/Xemacs

Node + SimplePiE for ingesting and processing RSS feeds mentioning books.

Lifecycle email services through Mailgun.

Lifecycle text messages through Twilio

Blog via AWS Lightsail/Wordpress

Social media automation: Buffer


👤 marstall
love this question. hacking my stack to make it free or almost free is definitely one of the parts of having a side project i dig...

(music app #1)

- ios + macos native apps: swift + (reactnativeweb/reactjs/redux/orbitjs in a webview)

- web: reactnativeweb/reactjs/redux/orbitjs

- backend: none, just talk to streaming service APIs.

- hosting: AWS Amplify

total cost to run: $0

(music app #2)

- web front end: nextjs

- backend (which just serves up some munged public domain data): postgres+rails running on a mac mini in my basement

- backend (user profile data): firebase (i also get free auth/login with that)

- hosting: vercel.com

total cost to run: $24.95/year (for noip.com's dynamic DNS+SSL package).


👤 mgreenleaf
Document generation from Word Templates (yakdocs.com) & stripe analytics dashboard w/ SQL queries (yak-mu.com), both use Kotlin on the JVM w/ Java WebToolkit (https://webtoolkit.eu/jwt) because of familiarity, kotlin's expressiveness to share components & so that everything is written serverside; OpenBSD as the base operating system because of simplicity and good defaults.

👤 lamroger
Engagement Ring Marketplace: https://caratdrop.com

Lots of AWS credit for 2 years from YC Startup School

- ECS / Fargate / Docker

- Deployed via Terraform and Github Actions

- Next.js / Bootstrap, mostly from boilerplate Stripe made

Chose bc I'm familiar with the backend. New to Next.js but boilerplate got me to an MVP the fastest.

Wouldn't consider myself successful yet but I'm happy developing on my stack and that goes a lot way when I'm working mornings/nights on it.


👤 betahuhn
https://webcrate.app - OSS bookmarking tool to help you organize your web

- Vue / Nuxt / Plain CSS

- TypeScript / Node / Express

- Hosted in your own personal cloud thanks to Deta Space (https://deta.space/discovery/webcrate)

Nuxt made the frontend super simple and fast to build, it takes care of a lot of things for you! Deta is also awesome for devs


👤 kilroy123
For my art newsletter and site: https://randomdailyart.com

It's dead simple.

- A static HTML page using Go Hugo to build the pages.

- Hosted on Netlify

- zapier runs daily to rebuid the site and update everything automatically

- Code on github and images stored on netlify

- Bootstrap for CSS

- I have a small server that runs the email software to send out the custom made email.

- Actual end email sender is sendgrid.

Between the site and emails, art is being viewed more than ~25,000 a month.

Total cost? $22 a month (Though I'm going to have to start spending $35)


👤 XCSme
I run https://www.usertrack.net, a self-hosted analytics platform.

The tech stack of the product itself:

Frontend: TypeScript, ReactJS, Parcel and GulpJS for building and deploying

Backend: Apache, PHP, MySQL

The tech stack for distributing the project:

- A licensing server written in Node.JS, running on a VPS

- GitHub repo to host the integrity hashes of the product (for extra security)

- LAMP VPS for the landing page, Cloudflare CDN on top

- Payment provided through Paddle.com


👤 BilalBudhani
Talent schedule management system: https://www.flowboardpro.com

- Server: $5/month Ubuntu server from DigitalOcean

- HTTP Server: Caddy

- SSL: Caddy

- Backend: Ruby on Rails

- Database: PostgreSQL

- Frontend: Vanilla JS + Vue.js + Inertia.js + Boostrap

- Email: Mailgun

- Storage: S3 (very low usage)

- Backup: Daily on Dropbox using rclone

I'm not actively working on this anymore but I've users from a couple of organisations using the product which generates a good passive income


👤 saimiam
https://moogle.cc is a fully functional React SPA blog with Bulma css for styling. Uses emails (yes you heard that right) as the CMS to extract content and images.

Interfacing with emails is through S3, API Gw, Cloudfront, lambdas (nodejs), and step functions. One small part of the product is on an Ec2 box. Everything else is serverless.


👤 baoluofu
Both API and web app served out of AWS lambda/API Gateway/Cloudfront. Back office app served from S3.

- React and next.js for the web app.

- Node.js & express for the API.

- React-admin for the back office.

- Postgres for the DB.

The biggest benefit to me of the above stack is running it out of AWS lambda. Pay only for what actually gets used, and more importantly it will scale to any sudden surge in customers without any effort on my part.


👤 andrei_says_
Rails, Postgres, stimulusjs, html/slim, scss/BEM/itcss principles, Heroku.

The best bang for the time + effort that I’ve seen so far.


👤 gtvwill
One man band MSP.

I use ms365 for everything on the software end. Mikrotik for any network hardware.

I used to be more flexible, but found I lost money due to "trying" to work with everything and help everyone. Mikrotik isn't the easiest...but it has forced me to learn what i now would consider basic entry level knowledge about networking for business.


👤 traceroute66
The problem with this question is it is akin to those people on photography forums and elsewhere asking "what camera / lens / ISO /shutter speed / aperture" did you use ? As if somehow having the same combination will give them the same results.

Surely the correct and only answer is "the right tech stack for the job".

Trying to shoehorn everything into one chosen stack is only likely to end in dismal failure.

Switching stacks just because flavour of the month cool stack is code written in Foo with Bar library with a Foobar cloud backend is also only likely to end in dismal failure.

If a graph database is suitable for a project ... then use it. If cloud is suitable for a project... then use it. etc. etc.

Don't be a "Jack of all trades, master of none", jumping around programming languages and libraries just because its the cool thing to do.

The trouble is I see too many people over-egg the pudding on tech stacks. Perhaps especially when it comes to cloud services where they architect everything as if they were getting billions of hits per second and feel the need to justify using all cool cloud services buzz words like horizontal scaled event-driven, serverless computing platform.

Sometimes its better just to follow the KISS principle (Keep It Simple Stupid).


👤 heshiebee
I run an e-commerce shipping tool that integrates with Shipstation to automate shipping. Shipmatix.com

- Ruby on Rails

- Postgres

- Redis

- AWS S3

- Heroku

I choose Rails since it allowed me to get off the ground running and hosted it on Heroku for its ease of use and it saves me a lot of time with its default configurations.

I don’t have many clients now but I should be able to handle hundreds of users on my current setup based on my pod testing.


👤 spiderfarmer
-Ubuntu

-NGINX

-PHP

-MariaDB

All running on 3 VPS's. Everything I want to do can still be done with this stack.


👤 rishav_sharan
Not really a company yet, just a WIP product.

Vanillajs for the frontend,

crystal for the backend,

postgres for the db,

fly.io for the app hosting,

Cloudinary for the CDN,

trello and Github issues for management.

IMO, simple vanillajs blows any other js framework out of the water in simplicity. Crystal is an amazing and very performant language for the backend. If you love ruby, you would love Crystal.


👤 albumdropped
Back end: Go

Front end: Go

Database: Postgres

Proxy+SSL: Caddy

Extremely fast, dead-simple to troubleshoot issues, and no javascript required.

Most users are mobile, so speed and reliability are the priorities. This setup works well and it's simple to notice when there are any issues or any non-2xx responses to any server or database calls.


👤 masa331
Rails, PostgreSQL, Vanilla JS, Bootstrap, AWS

Fast to iterate, vast ecosystem, beautiful readable lang(Ruby)


👤 rozenmd
I built https://OnlineOrNot.com with Next.js (React on the frontend, Node on the backend), I reckon building with something you have extensive experience in is key.

👤 sdmac99
As a solo dev working in the public sector I recently moved to using Nim.

Backend: Jester (Nim) Front-end: Karax (Nim) Db: sqlite/mariadb Host: digital ocean

I find that I can implement features much faster and with less code compared to my previous Go/Js stack.


👤 Ambix
- RapidAPI as my frontend and payment provider

- Comet [1] for pretty highload machine translation service

- Hetzner for cheap but powerful hosting

[1] https://github.com/gotzmann/comet


👤 capnorange
I mostly optimize for dev time over performance.

Next.js, Vercel + API functions, DigitalOcean postgres with Prisma.

The biggest dev bottleneck for me was styling & css(mostly because I put away learning it!), tailwind ui components have been a big saver.


👤 agd
Elixir / Phoenix, Heroku with Postgres addon.

Fronted mostly static with Stimulus + Hotwire for a few dynamic parts.

Images via S3 + Imgix.

Metabase (also on Heroku) for analytics.

Trying to keep it as simple as possible. Not quite successful yet, but pleased with the tech stack so far.


👤 ralston3
ReactJS on the FE, Django on the BE. Postgres for the DB. Redis cache. AWS provider - specifically for EC2 and Secrets Manager. Automating everything via bash scripts and config files per environment (dev, prod, etc)

👤 ochrist
I have created an app for simulating decisions in a project using the project triangle: https://estinator.com/

The app has been created using Delphi.


👤 bwghughes-fth
Jeppers, there's some heavy stacks in this post - I'm not sure where folks find the time !!

HTMX for JS. Go (GORM, Gofiber) + Sqlite (w. Litestream for replication). Linode for hosting. Ansible for config/deploy.


👤 soheilpro
https://volt.fm

- TypeScript / Node / Express

- PostgreSQL / RabbitMQ

- HTML / Tailwind CSS / Vanilla JS

- Hosted on two DigitalOcean droplets

- Deployed as Docker

- AWS SES for sending emails


👤 abinaya_rl
My tech is

- Python/Django for the web/automation stuff

- Postmark for emails

- Linode for hosting

- SQLite for database

- Airtable for curation


👤 thdxr
Full stack serverless. It's always important to reduce ops but even more so as a team of 1.

I use serverless-stack with every AWS service I can possibly use to reduce my code liability.


👤 OoTheNigerian
OP and respondents can you update your question and the answers to include mention the scale of the business in terms of traffic, customer served, revenue.

👤 qecez
https://zlipa.com - Unique, high-impact dotcoms for startups

- Digital Ocean VPS running Ubuntu

- Let's Encrypt certificate

- Simple Analytics

- Nginx + PHP

- SleekDB NoSQL

- AWS SES email

- Cloudflare CDN


👤 motyar
https://bruzu.com runs on a small Digital Ocean VPS.

API is powered by Node js.

Other pages are php.


👤 hardwaresofton
Single person company with a few products out now:

https://surplusci.com - Rentable dedicated CPU runners for GitHub Actions/GitLab CI https://ragtime.cloud - Hosted storage for Joplin the note taking application

> What is your tech stack?

- Front: Vue + NuxtJS

- API: NestJS + Typescript

- DB: Postgres

- Infra: Kubernetes + Ansible + Pulumi

- Hosting: Hetzner

> Why did you choose it?

- Front: Vue is less complex than React, NuxtJS enables SSR and pre-rendering which is ideal for SEO (not that I'm chasing SEO too agressively just yet)

- API: NestJS is the best implementation of light yet structured MVC I've seen for (spend enough time with wild Express/Fastify codebases and you'll want some structure), has a lot of concerns taken care of just about the same way I've (re)written them on various projects myself. Typescript because life is too short to not have a compiler do some of the work for you.

- Infra: I've paid the initial cost of learning Kubernetes so it's actually a really easy way to deploy containers and manage my infra (TLS certs, open ports, machines, virtual machines, etc) for me. Ansible is great for initial setup, Pulumi is great for managing big IaaS provider pieces (AWS Route53, SES, etc)

At this point I've actually built a set of reusable projects to launch SaaSes, and at this point what it takes for me to launch a new SaaS is copying ~3 repos, find/replacing and running make a few times.

I want to make that SaaS-launching setup a SaaS itself -- as a completed/perfect implementation would cut this down to only value changes in a single file, which I could easily make a web form and then people could launch their own things. That's far in the future though.

> Do you think your choices had any impact on your success?

It delayed launching quite a bit, but I'm convinced that my problems might lie in the markets I'm aiming for and products I'm making more than the technical choices.

The technical choices are on the fanciful side -- I could have gotten by just fine with Rails + Caprover/Dokku, but at this point that cost is paid so it's much more about finding traction.

My iteration speed is much faster now as I've developed a reusable set of repos, so it should be much easier to take more shots.


👤 p0nce
Website: HTML/CSS/JavaScript, hosted with Nginx on one VPS. D language for products/tools/website.

SaaS:

- CloudFlare

- Google My Business for emails


👤 codingclaws
I built an open source Reddit/HN clone:

https://www.peachesnstink.com

The back-end is Node.js and PostgreSQL (no ORM). The front-end is plain HTML, plain CSS and plain JavaScript. I chose that stack because I wanted to try Node.js and Postgres, and I'm not a big fan of front-end frameworks. I don't think the stack matters but people think the site is fast.


👤 taylorlapeyre
https://www.wren.co

Postgres

Redis

Express + knexjs (TS on backend)

Heroku

Create React App front end.

Simple, boring technologies.


👤 pcdoodle
Xojo.

It's clunky, it's like a tractor, not very good at any one thing but I use it everywhere.


👤 bouncing
Postgres -> Django w/Graphene -> Vue.js w/ Apollo

Breakfast of champions right there.


👤 TekMol
Great thread!

I have a question for everybody who uses Laravel or Symfony:

Did you compare it to the other one before you made a decision? What made you decide on the one you are using now?

I also would be interested in the same question regarding Django and Flask!


👤 BigBalli
PHP+JS+CSS+HTML. Vanilla is my favorite flavor.

👤 devops000
€ 120,000K ARR - SaaS - 1 person

Framework and languages:

- Ruby on Rails 6

- Ruby 3

- Stimulus JS/ Stimulus reflex

Public website

- Webflow

- Weglot (i18n)

Infrastructure:

- 1 Web server

- 1 Processor server

- 1 Postgres server

- 2 Redis for cache/queue processing

Hosting

- Digital Ocean

- Redis lab

Deployments

-Cloud66.com

- GitHub actions


👤 rawoke083600
linux,mysql,php,svelte,bootstrap and Go for any "heavy-lifting"

👤 chinathrow
Boring, but it works and I am very fast with it:

PHP with Laminas FW

MySQL

Bootstrap

jQuery

AWS SES

Twilio

Auth0

Google Workspace

Jira


👤 danjac
I run a side project podcatcher site https://jcasts.io. As I don't have a lot of spare time and this isn't making money, simple+cheap are important factors, so I stick with what I'm familiar with and only adopt new things when I have the need.

- Django

Enough said, really, it's a solid workhorse with a healthy ecosystem. The admin feature is very useful for simple backend data management. No other particular reason to pick this over Rails, Laravel etc other than my familiarity with Python and the framework.

- PostgreSQL

No issues here, works just fine. I use the full text search instead of a separate search indexer such as Elastic - it makes the deployment simpler and reduces overhead of serializing and syncing the search index and database. You can get good performance by paying attention to queries and indexing.

- Redis

Caching and queuing. I use rq [1] rather than Celery for running background tasks, it's less complex and generally easier to work with, especially if your needs are simple.

- HTMX and AlpineJS

SPAs can be a pain to build and maintain if you are a solo developer - it's almost like building two separate applications, and then you have to handle the integration of your backend API and frontend app. HTMX [2] lets me get 90% of the way there while still using plain Django views and templates, while still providing a smooth end-user experience. AlpineJS [3] is great for dealing with the more complex interactions where Javascript is really needed, but I still want some lightweight structure.

- Tailwind

I'm not a designer/CSS guru, so Tailwind is great for providing sensible defaults. Was a bit skeptical at first of maintaining long inline class names vs something like Bootstrap, but Tailwind turned out to be surprisingly productive.

- Dokku

Basically Heroku without the expense. Has a ton of features and buildpacks for managing single-node applications, from LetsEncrypt integration to database backups. As I run the whole thing on a single Digital Ocean droplet, this is perfect - not sure what the next step would be when/if I need to scale up to a multi-server setup.

- Ansible

For any server setup and routine maintenance stuff.

- Mailgun

Email sending. Still on free tier.

- Github Actions

CI/CD pipeline. Works fine, very few outages or issues, pretty easy to set up.

- [1] https://python-rq.org/

- [2] https://htmx.org

- [3] https://alpinejs.dev/


👤 sftplm
Good insight

👤 talaba
Common Lisp

👤 protoduction
I'm the technical founder of FriendlyCaptcha [1], a privacy friendly proof of work alternative to reCaptcha that doesn't suck for end users (and also doesn't need any tracking or cookies so legal/compliance teams like it too). While not a one-man company anymore, I've been the only engineer of it for a long time that I think it qualifies :)

* We use cloudflare workers for our API endpoints which have given us amazing reliability and scalability (which is of course very important for our service)

* We use cloudflare KV and cloudflare cache for some caching and logged in user sessions.

* Mailgun, FaunaDB, Sentry, LogDNA, Stripe, BigQuery.

* The web app is good old server side rendered html and css with a tiny bit of JS here and there.

* The widget is open source, written in Typescript (and as it has to run in really old browsers there's Babel to transpile. The solver inside of it and the proof of work library is AssemblyScript (i.e. WASM), with a JS fallback.

* PHP for our wordpress plugin.

The way we operate is that we provide free (or very low cost) plans for hobby users and stuff like small (wordpress) blogs to hopefully make a dent into recaptcha's market share, it's a bit of a social mission. Larger companies pay for more advanced protection features, EU-only endpoints, (as well as custom agreements and other paperwork). That balance has worked well for us, and even the small customers that use the free service contribute to our protection.

The past half year or so we learned that our customers that bring in the lion share of the revenue really prefer it if we keep their processing and data in Europe (our privacy friendliness and our EU-basedbess are big selling points, even more than improved ux+accessibility). So much so that we are heavily investing into that, and we are slowly moving in favor of our own infra in Hetzner (Germany).

There our tech stack is fully Golang (Fiber framework), with Redis, Postgres and Clickhouse as data stores. The way that our system works is that we look at patterns of access, and we can tweak the difficulty of the proof of work challenge on a request by request basis. One nice property is that it's not all or nothing: if we suspect a puzzle request is from a spammer they will get a rather difficult puzzle which will take a while to solve, but at least it won't lock out any false positives. Clickhouse is fantastic for this purpose (putting in millions of events is not even close to its capacity, it's lightning fast). Of course the widget itself also has the most basic of anti headless browser checks, but that will only deter the most naive spammers.

Of course no captcha system is perfect and will protect against a spammer who is willing to spend real resources (e.g. pay compute, or human labelers) to spam, but so far we're happy with its effectiveness, and it warms our hearts when we receive messages from blind or even deaf-blind users that encountered our captcha and web out of their way to say thank you :). I hope that at some point captcha labeling tasks can be a thing of the past.

[1]: https://friendlycaptcha.com