30 Boring Patterns for Solo Devs Who Ship A recipe book of production-tested patterns for building real web services with Python, SQLite, and systemd

In the last 10 days I shipped two production web services on a single $5 VPS:

Both shipped with the same boring stack: Python 3.12 + Flask + SQLite (WAL mode) + systemd + vanilla HTML. Nothing exotic. Nothing trendy. Things that have worked since 2010.

This book is the recipe collection that came out of that work. Every pattern is concrete code I actually used in production, not best-practices theatre. Every pattern explains when not to use it, because half of "boring stack" wisdom is knowing which scaling problems you don't have yet.

€19 — one-time

30 patterns · ~150 pages · HTML pack + companion code zip · CC BY-SA 4.0 on patterns, MIT on code · instant download after checkout

Buy now — €19 (Stripe) Live now. Read the first 5 patterns free below, then decide.

Get the launch email

Prefer to wait? Drop your email — I'll send a one-time note if the pack gets a big update (v1.1 with 5 extra patterns is planned). No spam, no follow-up sequence.

Download the free sample pack

Five complete patterns, ~5,000 words, in your choice of format. No signup, no email required. CC BY-SA license — share freely with attribution.

Note: the "full preview pack" currently includes the 17 patterns drafted so far. When v1.0 ships with all 30 patterns, the preview will revert to just the 5 free ones, and the rest become the $19 paid pack. Get them all now while it's still free.


The 5 free patterns

Each free pattern is the full content, not a teaser. If they're useful, the other 25 are $19. If they're not, you've still got 5 production-tested patterns for free.

Read them now (no signup)

  1. Pattern 01 — systemd unit for a Python web service
    The 12-line file that replaces Docker.
  2. Pattern 06 — SQLite WAL mode + synchronous=NORMAL
    The 2-line PRAGMA that makes SQLite handle 50k writes/sec on a $5 VPS.
  3. Pattern 11 — Per-IP rate limiting in 30 lines, no Redis
    An in-memory dict with TTL. No library, no service, no surprises.
  4. Pattern 17 — ThreadPoolExecutor for rate-limited fetchers
    When async is overkill, threads still work great.
  5. Pattern 22 — Telegram bot as monitoring transport
    The €0/month alternative to PagerDuty.

What's in the full pack ($19)

30 patterns organized into 6 themes. Each pattern is one page, one job, one piece of real production code. The format never changes:

Theme 1 — Process and service shape

  1. systemd unit for a Python web service ★
  2. Single-instance scheduled job with flock
  3. Restart=on-failure with backoff
  4. Config from env vars + filesystem + defaults
  5. Logging to systemd journal without a logging library

Theme 2 — SQLite at solo-dev scale

  1. WAL mode + synchronous=NORMAL ★
  2. Schema migration with PRAGMA table_info
  3. Cursor-based pagination over a single index
  4. Single-writer pattern with filelock
  5. Backups via sqlite3 .backup

Theme 3 — HTTP and Flask

  1. Per-IP rate limiting in 30 lines ★
  2. JSON API key auth with revocation
  3. CSV export from any JSON endpoint
  4. OpenAPI 3.1 spec by hand
  5. Vanilla HTML/SVG dashboard

Theme 4 — External APIs and concurrency

  1. requests.Session with sane defaults
  2. ThreadPoolExecutor for rate-limited fetchers ★
  3. Mocked-HTTP unit tests with unittest.mock.patch
  4. The structural sanity check on aggregate output
  5. Per-source field normalization with one common dataclass

Theme 5 — Operations and observability

  1. Health endpoint that means something
  2. Telegram bot as monitoring transport ★
  3. Prometheus-compatible /metrics in 15 lines
  4. make as your only deploy tool
  5. The single sanity-check shell script

Theme 6 — Going from free to paid

  1. Free tier with no signup, paid behind an API key
  2. Per-tier rate limiting and history caps
  3. Lemon Squeezy or Stripe: pick one
  4. Activating the paid tier without a redeploy
  5. Pricing a niche dev tool

★ = free pattern


Who this is for

Who this is NOT for

About the author. I'm a solo dev. I built and shipped two production services in the last two weeks (Funding Finder and cronviz) on a single $5 Hetzner VPS. Total Docker containers: zero. Total Postgres instances: zero. Total Kubernetes clusters: zero. Total cumulative downtime across both services over 10 days of operation: zero. This book is what I wish I'd had when I started.

FAQ

Will I get updates?

Yes. Updates are free for existing buyers — email me your original Stripe receipt and I'll send the new file. I plan one minor revision (v1.1) within ~2 months that adds 5 reader-requested patterns and fixes typos.

What format are the files?

You get: a single PDF (~150 pages), a standalone HTML version (browse offline, no internet needed), and a companion code repo as a zip (every code snippet from the book, runnable). All three in one download.

Is there a free preview?

Yes — the 5 free patterns above are the full content of those 5 patterns, identical to what's in the paid version. About 5,000 words / ~20 pages. If they're not useful to you, the other 25 won't be either.

Can I share the patterns with my team?

The patterns themselves are CC BY-SA 4.0 — share, remix, attribute. The compiled PDF/HTML pack is one purchase per individual. If your team wants to buy collectively, email me and we'll figure out a fair team license.

What if I don't like it?

Yes — email me within 14 days of purchase (foxyyybusiness@protonmail.com) with your Stripe receipt and I'll refund immediately, no questions asked. The 5 free patterns above are explicitly designed to let you know whether the rest is your style or not, before you spend €19.