Ask HN: Companies of one, what is your tech stack?

172 points by amitprasad ↗ HN
Companies of one meaning either a solo developer or just you managing the entire operation.

Following in the spirit of user ecmascript’s annual posts, I’d like to follow up and ask this year’s (overdue) round.

Last year’s discussion post: https://news.ycombinator.com/item?id=28299053

205 comments

[ 0.61 ms ] story [ 286 ms ] thread
main language: JavaScript

on top: TypeScript, Node, Express, React, Postgres Other: Webpack, yarn, scss

other: Heroku, GitHub

Out of curiosity, what is keeping you on Heroku?
It's a good question. Since they disabled the automatic deployment it has been causing some issues and I'm revalidating using Heroku. The main reason is the ease of use

Would you suggest something alternative? AWS?

I don't know in terms of pricing. But I moved a couple of free heroku apps to fly.io and it was pretty smooth. They provide a migration guide specific to people moving out of heroku.
DigitalOcean App Platform
ruby + rails + hotwire + postgres + redis + sidekiq + heroku/DO + docker + dokku
Run a hardware based tech startup.

Main Website: wordpress, WooCommerce, stripe

Mobile Apps (iOS/Android): Flutter, Firebase

WebApp: ReactJS, Firebase

Hardware Firmware: C

Flutter seems to be a good choice. Building a couple of apps in Flutter and the more I use it, the more I like it.
Interesting. How can I contact you?
web app: c#, .net 6, mvc, postgres, redis, azure, github (repo and actions)

marketing site: hugo, netlify

tools: cloudflare, namecheap, mailjet, stripe, twilio, sentry, papertrail, slack

Trying to build a small scaled e-commerce platform like shopify.

Backend: spring boot, kotlin

Frontend: reactjs, nextjs, typescript

App: Expo, React-Native, Typescript, Apollo Client

Server: Node.js, GraphQL, TypeGraphql, Apollo Server, PostgresQL 14, Redis

Website: Webflow (great for a good website with minimal work)

Hosting: Digital Ocean (it’s cheap but I prefer GCP)

Internal tools: Retool

Sveltekit/Tailwind for the main website (hosted on cloudflare)

Elixir/Phoenix/Liveview/Postgres with alpine.js and tailwind for the dashboard overview for the operations analytics (hosted on fly.io)

All code and pipelines on GitHub

Currently building as well flutter apps but it’s taking a lot of time in comparison with the webapp and operations dashboard

BE - Lambda function URLs, Node, Fastify, Knex with Objection.js, RDS Proxy Postgres

FE - Vue2, Nuxt, Tailwind

Native - Capacitor 100% code sharing with web FE. Fastlane to automate build/signing/submissions

Cloudflare workers acting as a proxy for both FE cache and BE API rate limiting/maintenance mode read from KV store.

I made a crude diagram: https://t20654125.p.clickup-attachments.com/t20654125/133842...

If you want an ultra productive, easy to learn and a delight to deploy+maintain stack, consider PETAL: Phoenix, Elixir, Tailwind, Alpine.js & LiveView. See: https://github.com/dwyl/technology-stack
I dont know if LiveView is easy to learn though, maybe easy to learn the happy path, but when things are outside the normal path, things can be hard to figure out/understand, even when they know the basic HTTP stuffs.

At least thats been my experience with it ~3months back. I was familiar enough with elixir/phoenix/channels to source dive and figure out whats happening, and today i know liveview well enough to avoid the weird interactions, but I imagine it can be a pretty miserable experience for beginners to start with.

@hdra did you capture your LiveView experience somewhere e.g. a learning log (blog post). I would love to read it as I’m sure everyone in the Phoenix team would. Thanks!
I'm embarrassed to say that writing about that has been on my Soon™ list for quite a while ;)
Brain dump some bullet points as an outline that you can later expand on. You have no idea how helpful it will be to other people including your future teammates. ;-)
I started 3 days ago It's been hard.

At first I had validation on an email input field after a day all text is put through.. I'll have to look into it next week.

The validation lines are still in de code but don't seem to work. It's probably something stupid.

For now the website is live. I used a single db table for everything. Later I'll do it the proper way. I couldn't find an easy example how to add more complex systems.

I used gen.auth and this comes with multiple tables. I guess there is a way to gen it in ecto. But is there also a gen for a basic liveview crud, which can be changed. This way new users start with something, otherwise you start from a void.

I'm not going petal yet. I'll first try without A. I'll probably have to use it in a month when I have to integrate a js library(Html5-QRCode).

Main website: bootstrap & vanilla JS.

Infra: AWS and serverless application model (SAM)

Frontend app: react

Backend: python + lambda, step functions, dynamodb, and sagemaker.

CI/CD: GitHub actions

Super stable, multi-region, low maintenance and near infinitely scalable.

Rails + mysql, with Sorbet for Ruby type safety React Native for our mobile app Typescript for all JS

Hosted on Linode

Boring but hella productive and stable, and lots of stability and depth in the ecosystem.

Micro services: Traefik + Docker

Web stack: nextjs, symfony or fastapi, netlify

Monitoring: Matomo, metabase, signoz, prometheus.

Have a Monitoring Solution product for Solar Plant. Stack - Django, Cassandra, Redis, KairosDB, Celery, Bootstrap, Jquery etc.
For my latest project:

Frontend: React/Typescript

Backend: React/Typescript, Nim

DB: Postgres

Hosting: Namecheap, Cloudflare, ZAP-Hosting

Interesting that you use Nim. How do you use it & what exactly do you use it for?
I use it mainly for high-performance backend engines. E.g. I'm writing an automated trading system and the trading engine is written in Nim.

I wrote a Nim web framework that has an ORM: https://github.com/jfilby/nexus. However I mainly use the ORM with the back-end engines. You could write a Django-style web app with Nexus + Nimja, but it's difficult to compete with the huge ecosystems of React and Flutter.

I run an uptime monitoring + status page service: https://onlineornot.com

Uptime monitoring:

- fly.io w/ redundancy on AWS

- Redis

- Node.js

- Postgres

Uptime monitoring frontend:

- Next.js

- Tailwind CSS

Status Pages:

- Remix (React) frontend, heavily cached on Cloudflare Workers

Not a company but I’ve been experimenting with different tech stack options over the last 6 months to find a simple tech stack with an independent frontend and an independent backend with a hosted database. The goal is not just to build but also be able to maintain without much complexity and not spend a lot of money on hosting.

Backend: Building a REST/GraphQL API that could be deployed to Cloudflare workers is a no brainer. Super cheap and incredibly fast and when you need to scale it’s still ridiculously cheap. I’d probaby go with REST with swagger + openapi-typescript to generate types on the frontend because honestly GraphQL is a lot of work for one person to maintain.

Frontend: Next.js server render or ISG hosted on Vercel. I'd throw Tailwind on too for rapidly styling your pages.

Database: Prisma with Postgres so it could be typed and works well with other tools. I still haven’t figured where to host Postgres easily. Looking for something like Mongo Atlas where I could grab the connection URL easily and has affordable free/paid plans.

You could use something like the cockroachdb free tier, its pretty close in Postgres in syntax, with some minor differences.
And Prisma supports it equally well as PostgreSQL.
Railway sounds exactly like what you're looking for in hosting Postgres.
Rails, SQLite, and Linode.
Postgres, Django, and Bootstrap with sprinkles of JavaScript deployed on DigitalOcean App Platform or Dokku.
Frontend: React/NextJS hosted in Vercel (TypeScript + mix of Tailwind & Bootstrap)

Backend: Orleans + .NET Minimal API's hosted in Azure Container Apps

Real-time PubSub: SignalR

Deployment: GitHub Actions

How great is Orleans! It's a hidden gem. Orleans v4 coming out in November - Can't wait
Hosting on Render.

Stack: Postgresql+Rails+Hotwire.

I really dig Stimulus and Turbo Frames. It took me a little while to really wrap my head around Turbo Streams. I think the documentation is pretty bad compared to the rest of the Hotwire stack, but—holy moly—once I had it working, it's really like a superpower for front-end development. Using Turbo Streams reminds me a bit of the sort of 'head exploding' moments I had first working with Rails back in 2007 or so. https://www.hotwired.dev

UI: I use Tailwind and Tailwind UI, and aggressively componentize the UI with ViewComponent to make it easier and more manageable to build reusable components and to keep from shooting myself in the foot. Tailwind would be frustrating to use if you crafted bespoke UI elements on every page, but it's an absolute godsend if you're componentizing all of your UI. (Also, if you're not componentizing your UI, why are you wasting so much of your time?) https://www.tailwindcss.com

APM: I use https://skylight.io for performance monitoring, and https://sentry.io for exception tracking.

I just looked at turbostreams. Is the main purpose to have reactive elements without a full SPA which you might have with Vue or React?
Yes, but without building HTML in js. HTML through wire (from server)
Your landing page is great. It's very straightforward.
We fluctuate between company of one and company of a handful.

We use Java, Spring, MySQL, Redis, and a couple dozen colocated servers. Ansible is used to manage the servers.

Majestic monolith in Go. Server rendered HTML with tailwind UI on recent products. Materialise css on legacy.

Google cloud platform utilising Postgres Cloud SQL, Cloud Run and Tasks. Email through AWS SES and blob storage on S3.

Building a no-code data workspace

Backend: Cloudflare Durable Objects for the consumer-facing app, Python cronjobs on a GCP hosted VM for background task processing, FastAPI for self-hosted vector search

Frontend: Nextjs. Antd as UI framework, Highcharts for charts. Hosted on Vercel

TypeScript monolith based on the following:

Server-side: Node.js, Fastify, Prisma, Handlebars (email templating)

Front-end: Next.js, Chakra UI, React Query, Comlink (web workers), Dexie (IndexedDB), Recharts, Formik.

Tooling: TypeScript, ESBuild, Jest, Playwright

Backing services: PostgreSQL, Redis, MailPace (transactional emails)

Deployment/Ops: GitHub Actions, Clever Cloud hosting