Home/Case studies/Patch Labs

Dev tooling SaaS · Solo

Patch Labs: One command, full stack, zero configuration morning

Patch Labs is a solo dev tooling SaaS. Sofia had been losing significant development time to environment inconsistencies, cloud account configuration, and service version mismatches. ShipAI's one-command Docker Compose stack eliminated all of it.

Sofia Lindqvist

Sofia Lindqvist

Indie Developer, Patch Labs

Background

Sofia had been building dev tools as a solo developer for two years. Her biggest productivity drag wasn't coding — it was the time she spent managing her development environment. New machines, CI setups, client collaborations: every context switch meant hours of configuration. She'd built elaborate shell scripts to automate her setup, but they broke with version updates. She wanted infrastructure that she could describe in a single command and forget about.

The challenge

Sofia needed a complete local development environment — Postgres, Redis, object storage, the app itself — that could be torn down and recreated from scratch in under five minutes, with consistent behavior across machines. She also needed it to map cleanly to production without a separate configuration layer for each environment.

How they built it

One command to full stack

ShipAI's Docker Compose setup brings up PostgreSQL 17, Redis 7.4, MinIO (S3-compatible object storage), and the Next.js application with a single `docker compose up` command. No cloud accounts, no manual database creation, no service version research. Sofia ran it on a new machine in under five minutes. The same command works from a fresh OS installation.

Drizzle migrations in source control

The database schema is managed with Drizzle ORM migrations — all in source control, all applied automatically on startup. Sofia's previous setup required manual database seeding and frequent 'it works on my machine' investigations. With Drizzle migrations, the database state was deterministic and reproducible.

MinIO as local S3

Patch Labs uses object storage for user-uploaded files. MinIO provides an S3-compatible API locally, meaning Sofia could use the same AWS S3 SDK calls in development and production. No environment-specific code paths, no mock storage layer that behaved differently from real S3.

Redis for caching and rate limiting

The Redis instance handled response caching and API rate limiting from day one. Sofia used the existing rate limiting middleware patterns in ShipAI to add per-user API limits to her developer tooling endpoints. The Redis connection was already configured — she defined the rate limit rules.

Outcomes

2x sprint velocity in 2 weeks

Eliminating environment setup time and debugging freed roughly 4–6 hours per week that were previously lost to infrastructure friction.

Zero environment-related debugging

In the two months since adopting ShipAI, Sofia has had zero incidents where 'it works locally but not in CI' or 'database state is different on this machine.'

New machine setup in under 5 minutes

A fresh machine with Docker can run the full development stack — application, database, cache, storage — in under 5 minutes with a single command.

No separate dev/prod config layer

MinIO's S3 compatibility and the consistent service versions meant no environment-specific code paths. The same application code runs against both local and production services.

In their own words

The environment setup piece sounds minor but it had a disproportionate effect on my motivation. When Monday morning starts with a broken Postgres connection or an S3 mock that doesn't behave like real S3, the whole day starts with friction. That's gone now. I open my laptop, run one command, and I'm coding within two minutes. That's what I wanted.

Sofia Lindqvist

Sofia Lindqvist

Indie Developer, Patch Labs

The Docker Compose setup is what I didn't know I needed. One command brings up Postgres, Redis, MinIO, and the app. No cloud accounts to configure before I can write a line of product code. I stopped losing mornings to environment setup. Our sprint velocity went up noticeably in the first two weeks.

Sofia Lindqvist

Frequently asked questions

What services are included in the Docker Compose setup?

PostgreSQL 17, Redis 7.4, MinIO (S3-compatible object storage), and the Next.js application. All pre-configured with sensible defaults, health checks, and volume mounts for persistent development data.

How does the local MinIO setup compare to production S3?

MinIO implements the S3 API completely, so the same SDK calls work against both. The only difference is the endpoint URL, which is configured via environment variable. Sofia's application code doesn't know whether it's talking to MinIO or AWS S3.

Can the Docker setup be used for CI/CD?

Yes. The same Docker Compose configuration can be used in CI environments like GitHub Actions. Sofia uses a simplified version of the stack in CI for integration tests — same service versions, deterministic behavior.

Keywords

patch labs case studydev tooling saas case studyshipai.today customer storynext.js saas case studyai saas launch story

https://shipai.today/cases/sofia-lindqvist

Ready to write your own case study?

Start from the same foundation.

Every outcome in these case studies started from ShipAI.today. Production auth, billing, AI infrastructure, admin panel — all included.

  • 12 builders and counting
  • All features from these case studies included
  • Full landing source + SEO infrastructure