← Back to portfolio

Project case study

create-my-saas

A published CLI for starting SaaS products with a deliberate, production-minded technical foundation.

01

Problem

Starting a SaaS means repeatedly rebuilding common decisions and infrastructure — authentication, users, sessions, permissions, PostgreSQL, and account flows — before product work can begin.

02

Solution

The CLI composes a compatible backend and frontend from six independent templates. It generates only the selected combination, configures its local connection, and records versions for an explicit, reproducible starting point.

03 · Architecture

CLI -> manifest validation -> compatible backend + frontend templates -> generated SaaS foundation

04

My contribution

I designed and implemented the CLI, the capabilities catalog, and the compatibility rules. I also built and maintain the backend and frontend templates that cover the common SaaS flows.

05 · Stack

TypeScriptNode.jsFastAPINestJSFastifyNext.jsReact RouterAstro

06

Technical decisions

Templates remain self-contained, replaceable projects. Their manifests declare capabilities; the CLI compares those contracts before writing files, preventing combinations that do not cover the required functionality.

07

How it works

The developer chooses a backend and/or frontend from the CLI. The selected manifests are checked for compatible capabilities, then the chosen templates are copied without dependencies or local build artifacts and their versions are recorded.

08

Technical challenges

  • Keeping templates independent while allowing compatible combinations.
  • Modeling product capabilities such as organizations and billing as explicit contracts.
  • Making generated projects reproducible without coupling the supported frameworks.

09

What I would improve

  • Add more independently versioned templates.
  • Offer guided upgrades between template versions.
  • Publish more end-to-end compatibility coverage for every supported combination.