Tessera
working name

QA · seg.untranslated — this product still has empty targets

A CAT tool built by translators who code.

Tessera is an open-source translation environment, grown outward from a headless engine by a working translator. The engine works. The editor has just begun. We're looking for translators, reviewers and project managers who also write software — and anyone who contributes gets Tessera free for life.

tessera-v1.project · en-US → * 7 confirmed · 2 draft · 1 empty
# Source Status Target
1 DOCX filter Confirmed Import → export reproduces every part <b>byte for byte</b> across 21 real Word documents — tracked changes, footnotes, fields, text boxes, embedded fonts.
2 Segmentation Confirmed SRX rules, custom profiles, Trados abbreviation lists, split and merge.
3 Translation memory Confirmed An open SQLite memory format; TMX in and out; reads native Trados .sdltm; exact and in-context matches; pre-translation.
4 QA engine Confirmed Thirteen checks — tags, numbers read under each side's own locale, French spacing, consistency — with dismissals that stick.
5 Glossary Confirmed A termbase format whose preferred rendering is derived from an append-only history of decisions.
6 Command line Confirmed init · add-file · add-tm · pretranslate · qa · export · history · audit-verify — a whole job, headless, checked against a golden transcript.
7 API server Confirmed Accounts, projects, file import — the engine behind HTTP, with every write recorded under the account that made it.
8 Client portal Draft Quote, order and delivery for a translator's own clients. Every price is recorded with who set it, and a client approves the exact price they were shown; older files upgrade in place without losing a record. Version zero, in pilot.
9 Web editor Draft A segment grid and a target editor. Tags are chips — Ctrl+, places the next one — and the formatting you never see is carried by the server. Keyboard model, autosave and QA panel next.← you, maybe
10 AI assistance Not started

Why another CAT tool

Because the ones we use weren't built by people who translate all day.

Your memory stays yours

Translation memories live in an open, documented SQLite format. TMX goes in and out, and your old Trados memories import directly — no export dance, no lock-in.

Formatting you can trust

Every change runs against a roundtrip gate: if exporting an untouched document alters a single byte, the build fails. Tags are placed by kind and order, in the receiving document's formatting.

Every change has a name

Each edit is logged with the person who made it, in the same write, to a history nothing can rewrite — and a hash chain lets audit-verify prove it. An AI draft or a TM match is where the text came from, never who signed it off.

Basics first, then AI

Version one is a dependable replacement for the desktop tool you already use: import, segment, match, check, export. AI assistance, quoting and vendor work get built on top once that is solid — not instead of it.

Who we're looking for

You know what a broken tag costs at 11 p.m. before a deadline.

And you can write code. That combination is rare, and it's what this project needs most.

  • Translators, reviewers and PMs who program — TypeScript ideally, but a strong grasp of any language and a willingness to read a spec will do.
  • People who have fought OOXML, TMX, XLIFF or Trados packages and have opinions about them.
  • Native speakers of languages we don't segment yet — Korean and Vietnamese are waiting on rules right now.
  • Front-end developers who care about keyboards. The editor has to be faster than the one you're used to, or nobody will switch.

Good places to start

The editor
Keyboard model, autosave, QA panel — on top of the segment grid and tag-aware target editor now in place.
Segmentation for new languages
Sentence rules for Korean and Vietnamese, tested against real text.
Memory maintenance
Merging two memories, and moving bulk jobs off the main thread.
Semantic matching research
Can embeddings find the memory matches keyword search misses? An offline experiment, part of an empirical paper.
TypeScriptpnpm workspacesSQLiteFastifyReactVitest

The deal

Help build it, and it's yours — for life.

Free for life

Get a pull request merged before version one ships, and your individual Tessera account is free, permanently.

A founding tile

Your name on the founding contributors wall — on this page and in the app itself.

A tool that fits your hands

The thing you've wished your CAT tool did for the last ten years? This is where it gets built.

The exact terms will be written into the repository's contributing guide before the first outside contribution is merged.

Founding contributors

Every mosaic starts with a few tiles.

Louis Baudrytranslator · founder
open
open
open
open
open
open
open
open
open
open
open

How to join

Three steps, no application form.

  1. Read the ground rules

    The README for the layout, then CLAUDE.md for how work happens here: spec before code, one issue per branch, and the invariants that are not up for debate.

  2. Introduce yourself

    Open an introduction: your language pairs, the CAT tools you use, what you can build. It takes five minutes.

  3. Pick a card

    Every open piece of work is a GitHub issue linked to its spec. Say which one you're taking, and we'll talk it through before you write code.