Vibecode Loco

track this build4 phases, 12 steps, beginner friendly
KINDA · weekend project
price $5.95/moyou'd save $71.4/yrbuild time a weekendcategory 🌍 localizationreplaced by 0 people

The core of Loco is a keyed string store with a locale matrix on top, and that part is genuinely a one-sitting build: SQLite, a table view, an import and an export. What eats the weekend is the format layer, because gettext PO with plural headers, Apple .strings and .stringsdict, Android plurals XML, ICU messages and flat JSON all disagree about pluralization and escaping in ways that only show up in production. Machine translation fill-in is a single API call if you already have a DeepL or provider key. If you are the only translator, a local build is fine and arguably faster to work with. If you send links to freelance translators and rely on the hosted API in CI, you are rebuilding a service, not a tool.

the project pack5 files · written for this build, step by step
README.md
# Loco · indie build

A local translation manager whose hard problems are a plural model that comes from locale data rather than from English, making translator context mandatory instead of optional, and export adapters whose escaping and plural indexing are verified by round trip rather than by hope.

Estimated effort: **weekend**. Work `BUILD_PLAN.md` top to bottom · every phase ends in a check that has to pass before the next one starts.

## Stack

| Part | Choice | Why |
| --- | --- | --- |
| Runtime | Node 20 and TypeScript with a local web editor, one folder | if you are your own translator this should be faster than a hosted grid |
| Storage | SQLite, one row per message per plural category | the shape of the table is the whole argument of this build |
| Locale data | CLDR plural rules from a maintained package, version recorded per project | hand-written plural rules are wrong for the languages you do not speak |
| Internal form | ICU MessageFormat as the stored representation for every message | one representation means escaping is implemented once per adapter, not per pair |
| Adapters | One module per format, each with an import, an export and a round-trip test | the adapters are the product and the test is what makes them trustworthy |

## Before you start

Have every one of these ready. The plan assumes them from step one.

- [ ] **Node 20 or newer with TypeScript** · free
  - Why: Runs the editor, the adapters and the command line.
  - Get it: nodejs.org, or your version manager.
  - Verify: node --version prints v20 or higher
- [ ] **A maintained package providing CLDR plural rules** · free
  - Why: Every category set in the project comes from it, and writing these rules by hand is wrong for exactly the languages you cannot check.
  - Get it: Install a package that exposes cardinal plural categories per locale and exposes its data version.
  - Verify: Querying a Slavic locale returns four categories and Japanese returns one
- [ ] **Your existing locale files, including the messy ones** · free
  - Why: Adapter correctness is only demonstrable against files that real tools wrote, with the comments, escapes and obsolete entries they leave behind.
  - Get it: Copy your current locale files into a fixtures directory, including at least one PO with plurals and one Android resource file.
  - Verify: Each imports and round trips without entries in the skipped list
- [ ] **Which formats you actually ship** · free
  - Why: Each adapter is a small ongoing commitment and the long tail is where a hosted product earns its money, so supporting three well beats supporting eight badly.
  - Get it: List the platforms you ship to and write down the formats that follows, and which you are deliberately not supporting.
  - Verify: The list is in the README and matches the adapters in the source
- [ ] **Whether you need the Apple string catalogue format** (optional) · free
  - Why: Apple's recommended format changed and the older files are still produced during a build, so the adapter you need depends on where in that chain you plug in.
  - Get it: Read Apple's current localisation documentation, decide which artefact your project consumes, and record the date you checked.
  - Verify: The decision and the date are in the README

## Quick start

Follow Phase 1 in `BUILD_PLAN.md`; it creates the project.

Then copy `.env.example` to `.env` and fill in the values it documents.

## Honest limits

This build deliberately does not replace:

- A hosted editor with translator accounts.
- Machine translation as a silent default.
- Translation memory and glossary suggestions.
- The long tail of platform formats.
- Format breadth: Loco reads and writes a long tail of formats, including the awkward Apple and Qt ones, with plural rules per locale already correct
- A shareable editor for non-technical translators, with roles, comments and progress tracking
- A stable public API and CLI that CI pipelines can pull from at build time
- Translation history, who changed what, and the ability to roll a string back
- Glossary and translation memory suggestions that improve as the project grows

If one of those is essential to you, that is the reason to keep paying for Loco, and the README should say so rather than pretend.

$ choose a build depth, inspect the files, then open the complete pack in your agent

why people still pay

Because localization is a pile of edge cases someone else already ate. Plural categories vary by language, every platform escapes strings differently, and one bad export ships mangled text to users in a language nobody on the team reads. Paying also buys a link you can send to a contractor and an API your build can hit, which a folder on your laptop cannot do. Solo developers with two or three locales tend to outgrow the need for that rather than into it.

what you lose

xFormat breadth: Loco reads and writes a long tail of formats, including the awkward Apple and Qt ones, with plural rules per locale already correct

xA shareable editor for non-technical translators, with roles, comments and progress tracking

xA stable public API and CLI that CI pipelines can pull from at build time

xTranslation history, who changed what, and the ability to roll a string back

xGlossary and translation memory suggestions that improve as the project grows

prior art · use these instead of building, if you'd rather

Nothing worth pointing at. That's why the prompt exists.

share on X ↗"I just replaced Loco ($5.95/mo) with one prompt"
questions
Vibecode Loco

Kinda. The core of Loco is buildable in a weekend with the prompt on this page, but there are real gaps: Format breadth: Loco reads and writes a long tail of formats, including the awkward Apple and Qt ones, with plural rules per locale already correct, A shareable editor for non-technical translators, with roles, comments and progress tracking. Read the honest list above before committing.

How much does Loco cost?

Loco costs about $5.95/month (Pro, checked 2026-08-18), which is $71.4 per year.

What do I lose by replacing Loco?

Honestly: Format breadth: Loco reads and writes a long tail of formats, including the awkward Apple and Qt ones, with plural rules per locale already correct; A shareable editor for non-technical translators, with roles, comments and progress tracking; A stable public API and CLI that CI pipelines can pull from at build time; Translation history, who changed what, and the ability to roll a string back; Glossary and translation memory suggestions that improve as the project grows. If any of those are load-bearing for you, keep paying.

Is there an open-source alternative to Loco?

No mature open-source alternative worth pointing at, which is exactly why the one-shot prompt on this page exists.