The Architecture of a One-Man SaaS

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • kubernetes-the-hard-way

    Bootstrap Kubernetes the hard way. No scripts.

  • Others may have better recommendations, but Kelsey Hightower's 'Kubernetes The Hard Way' [0] "is optimized for learning, which means taking the long route to ensure you understand each task required to bootstrap a Kubernetes cluster."

    https://github.com/kelseyhightower/kubernetes-the-hard-way

  • LetsShip

    Let's learn devops by shipping a final product in .NET 5

  • I've done a complete 180 on this too, I realised I was reacting from my default position of hostility to new concepts rather than an honest appraisal. I am writing it up at the moment but I've been working on a 1 person SAAS MVP tutorial [0] and though I've definitely misconfigured something having the ability to go from git push to deployed to production with 0 downtime inside of 5 minutes with no manual steps is such a nice flow, versus my previous attempts of SCP and faffing around with services.

    [0]: https://github.com/EliotJones/LetsShip

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • migrate

    Database migrations. CLI and Golang library.

  • You can use any normal DB migration tool. For k8s, I put the app's readiness probe to false, run the migrations and then toggle the probe back to true.

    Here are some migration libraries:

    Go - https://github.com/golang-migrate/migrate

    Node - https://github.com/salsita/node-pg-migrate

  • node-pg-migrate

    Node.js database migration management for Postgresql

  • You can use any normal DB migration tool. For k8s, I put the app's readiness probe to false, run the migrations and then toggle the probe back to true.

    Here are some migration libraries:

    Go - https://github.com/golang-migrate/migrate

    Node - https://github.com/salsita/node-pg-migrate

  • litestream

    Streaming replication for SQLite.

  • I still use GCP, but I avoid locking myself into their proprietary infrastructure when I'm writing new stuff. I feel like Google is far too cavalier about deprecating services and forcing their customers to do migration work.

    It is hard to replace GCP's managed datastores because I really don't want to maintain my own database server (even if it's a managed service that someone else upgrades for me). So I've stuck to Google Cloud Datastore / Firestore, but I've been experimenting a lot with Litestream[0], and I think that might be my go-to choice in the future instead of proprietary managed datastores.

    Litestream continuously streams data from a SQLite database to an S3 backend. It means that you can design your app to use SQLite and then sync the database to any S3 provider. I designed a simple pastebin clone on top of Litestream, and I use it in production for my open source KVM over IP. It's worked great so far, though I'm admittedly putting a pretty gentle workload on it (a handful of requests per day).

    [0] https://litestream.io/

    [1] https://github.com/mtlynch/logpaste

  • logpaste

    A simple web service for storing text log files

  • I still use GCP, but I avoid locking myself into their proprietary infrastructure when I'm writing new stuff. I feel like Google is far too cavalier about deprecating services and forcing their customers to do migration work.

    It is hard to replace GCP's managed datastores because I really don't want to maintain my own database server (even if it's a managed service that someone else upgrades for me). So I've stuck to Google Cloud Datastore / Firestore, but I've been experimenting a lot with Litestream[0], and I think that might be my go-to choice in the future instead of proprietary managed datastores.

    Litestream continuously streams data from a SQLite database to an S3 backend. It means that you can design your app to use SQLite and then sync the database to any S3 provider. I designed a simple pastebin clone on top of Litestream, and I use it in production for my open source KVM over IP. It's worked great so far, though I'm admittedly putting a pretty gentle workload on it (a handful of requests per day).

    [0] https://litestream.io/

    [1] https://github.com/mtlynch/logpaste

  • realworld

    "The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more

  • You might find this useful - https://github.com/gothinkster/realworld

    Different framework implementations of a CRUD website with authentication.

    A lot of popular web frameworks have basic authentication out of the box & easily allow you to tie free authentication with accounts like Google, Microsoft, and many others. There are also paid alternatives that may save you more money than the free ones if you need advanced authorization controls or other features.

    Most devs probably have a collection of ways they've done it in the past that they pull from when needing to adjust from the default framework's methods.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • migrate-from-app-engine-to-cloud-run

    Helper library and webpage to migrate from App Engine to Cloud Run

  • If you haven't checked out App Engine in a while, you really should. Especially check out the App Engine "Flexible" editions, which make it really easy to run on App Engine withOUT getting locked in.

    I run a NodeJS GraphQL server in App Engine Flexible, and it is basically just like running it in a Docker container. It's also pretty trivial to run in Google Cloud Run if I so desired, there is even a tool to assist: https://github.com/GoogleCloudPlatform/app-engine-cloud-run-...

  • If you haven't checked out App Engine in a while, you really should. Especially check out the App Engine "Flexible" editions, which make it really easy to run on App Engine withOUT getting locked in.

    I run a NodeJS GraphQL server in App Engine Flexible, and it is basically just like running it in a Docker container. It's also pretty trivial to run in Google Cloud Run if I so desired, there is even a tool to assist: https://github.com/GoogleCloudPlatform/app-engine-cloud-run-...

  • Killed by Google

    Part guillotine, part graveyard for Google's doomed apps, services, and hardware.

  • I also tested Firebase but quickly ran into issues.

    Firebase's database is a NoSQL database, whereas almost all my data for the apps and (micro-)SaaS I was building had relational data.

    Their frontend data fetching felt clunky and did not fit my requirement.

    Also, the fact that Firebase is a closed-source backend felt scary in the hands of Google (https://killedbygoogle.com/).

    Firebase's problems and my desire to have the perfect backend made me build an open-source alternative to fix all the shortcomings. PostgreSQL instead of NoSQL. GraphQL instead of REST. 100% open source. That is now https://nhost.io.

  • graphjin

    GraphJin - Build NodeJS / GO APIs in 5 minutes not weeks

  • asciinema

    Platform for hosting and sharing terminal session recordings

  • I've used the script command and asciinema [1] before. Easy way to record steps without missing anything.

    [1] https://asciinema.org/

  • diagrams

    :art: Diagram as Code for prototyping cloud system architectures

  • prawn-stack

    A pageview counter using the AWS free tier, Postgres, Node and React

  • I don't have the startup part yet but here's my one-person stack with Postgres, Node and React deployed on AWS with CDK using RDS, Lambda, S3 and Cloudfront. It's 100% in the free tier.

    https://github.com/cadbox1/prawn-stack

  • slack-lunch-club

    :pizza: Meet new members of your slack teams via weekly lunch matches!

  • I created a similar post a while back for the GRANTS stack. ( GraphQL, React, ArangoDB, Nodejs, Typescript, Serverless ) https://github.com/mikestaub/slack-lunch-club

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts