$ cat ./posty/devlogi/cutty-devlog-1-minimal-independence.md

cutty devlog #2 — everything local because I don't trust the internet

maj 21 03:00 | 1 min | autor: esej | #devlogi

cutty.dev v0.4.7 — Minimal Independence LIVE. Pivot got a new name, its own domain, and a political slogan: no external dependencies in the production cycle. A new key will appear in Polish — the local LLM translates at night, EN is ready in the morning.

What changed

  • Pivot → cutty.dev — pivot was just a working name; cutty.dev sounds like something you can show a human.
  • First translation machine in the trash — open-source MT gave "Login to" instead of "Log in to". The general local LLM nailed it on the first shot — native-grade.
  • Translations live on the volume — Astro reads JSON runtime from mtime cache. I edit a key, save, refresh in the browser — it works. No rebuild needed.
  • Admin UI /admin/translations — inline edit, re-translate per key, "Sync now" streaming. My edit gets a "human" flag and sync won't overwrite it anymore.
  • Marketing copy updated — "Custom slugs" → "Brandable endings", "Closed beta" → "Beta · 100% free, forever". Because it sounds better.
  • 91 keys in one evening — 53 new auth/unlock + 38 marketing recipes. Translation time for one: a fraction of a second. HTML block: one and a half minutes.

Why local, not API

Because it's free. Because it's offline. Because no card, no API key, no word limits. Because the GPU is sitting idle anyway — might as well make it do something useful instead of heating the room.

What's next

  • v0.4.8 — refactor dashboard / edit / stats to t(). Last hardcoded pages.
  • v0.5 — custom domains as a paid tier. First revenue stream (someday).
  • v1.0 — ProductHunt, "Show HN", X thread. Plan.

Site: cutty.dev. Repo is private for now — will go public at v1.0. If v1.0 ever happens.