Skip to main content
Wright Websites

Product platform · 2026

Loomlocale

A translation product for Next.js teams who want ICU-safe locales kept in sync from one command, without retranslating everything on every change.

We reply within one working day. No pitch, no pressure.

5.0 out of 5 from 18 Google and Trustpilot reviews
Loomlocale homepage: Write once. Weave every language — hosted translation for Next.js App Router.

SaaS · Web applications · Marketing websites · 2026

01 / The brief

What they needed

Loomlocale needed a product site and a hosted translation workflow built around Next.js App Router and a CLI.

Loomlocale (loomlocale.com) translates a Next.js app into the languages you choose and keeps them in sync. The public pitch is “Write once. Weave every language.”

Developers run npx next-tongue to detect locale files, pick languages, see the cost in pounds, then write structurally identical files. tongue update hashes source strings so only new and changed keys are translated and billed; deleted keys are removed everywhere.

The brief was a working product: marketing that explains the loom metaphor, a dashboard for glossary and overrides, CLI device-code sign-in, and a GitHub Action that opens pull requests for changed locales.

loomlocale.com (opens in a new tab)

02 / What we did

How we approached it

We designed and built Loomlocale around next-tongue, the lockfile and a dashboard that stays in sync with the repo.

  1. 01

    App Router native

    Detect Next.js App Router locale files, validate ICU placeholders, plurals and rich tags before and after translation, and send failures to review instead of broken files.

  2. 02

    One command, then sync

    Ship npx next-tongue for the first run and tongue update for ongoing work, so unchanged keys are never retranslated or billed.

  3. 03

    Web and CLI together

    Edits, glossary and overrides in the dashboard flow into the repo on the next pull, with conflict handling and device-code login from the terminal.

  4. 04

    CI-friendly

    Support project tokens and the loomlocale/update GitHub Action so changed source hashes mark keys stale and open a pull request with only those translations.

03 / Who it is for

The people the site has to serve

A site only works when each audience can find their path without a guided tour.

  • Next.js product teams

    Teams shipping App Router apps who want locale files that stay structurally identical across languages.

  • Studios and freelancers

    Builders who prefer prepaid credit or a Pro plan and only want to pay when strings actually change.

  • Teams using GitHub Actions

    Groups that want translation pull requests on push to main without a separate localisation tool chain.

04 / What changed

Outcomes we can stand behind

No invented traffic or fundraising figures — only what the project delivered and what we measured.

  • A live product at loomlocale.com

    The public site presents the CLI flow, sync model, pricing and comparison in one place.

  • Change-only billing

    Published pricing bills source characters × target languages for new and changed keys; Free, prepaid credit, Pro and Team plans are listed on the site.

  • ICU kept intact

    Placeholders, plural branches and rich tags are masked before translation and validated afterwards so broken keys do not land in the repo.

06 / Related services

Related services

The same building blocks we use on projects like this.