Ask HN: Companies of one, what is your tech stack?
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 ] threadon top: TypeScript, Node, Express, React, Postgres Other: Webpack, yarn, scss
other: Heroku, GitHub
Would you suggest something alternative? AWS?
Main Website: wordpress, WooCommerce, stripe
Mobile Apps (iOS/Android): Flutter, Firebase
WebApp: ReactJS, Firebase
Hardware Firmware: C
marketing site: hugo, netlify
tools: cloudflare, namecheap, mailjet, stripe, twilio, sentry, papertrail, slack
Backend: spring boot, kotlin
Frontend: reactjs, nextjs, typescript
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
We’re have a community only in France for now so the website is in french. It will be translated soon.
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
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...
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.
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).
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.
Hosted on Linode
Boring but hella productive and stable, and lots of stability and depth in the ecosystem.
Web stack: nextjs, symfony or fastapi, netlify
Monitoring: Matomo, metabase, signoz, prometheus.
Frontend: React/Typescript
Backend: React/Typescript, Nim
DB: Postgres
Hosting: Namecheap, Cloudflare, ZAP-Hosting
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.
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
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.
Backend: Orleans + .NET Minimal API's hosted in Azure Container Apps
Real-time PubSub: SignalR
Deployment: GitHub Actions
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.
We use Java, Spring, MySQL, Redis, and a couple dozen colocated servers. Ansible is used to manage the servers.
Google cloud platform utilising Postgres Cloud SQL, Cloud Run and Tasks. Email through AWS SES and blob storage on S3.
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
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
[1]: https://news.ycombinator.com/item?id=20985875
[2]: https://www.listennotes.com/blog/the-boring-technology-behin...
[3]: https://www.listennotes.com/blog/good-enough-engineering-to-...