ππ»ββοΈ IntroductionΒΆ
π€·π»ββοΈ RationaleΒΆ
Most of our business processes at confirm IT are fully automated β infrastructure as code, CI/CD pipelines, reproducible deployments. Nearly everything we do is treated as code: auditable, versioned, and automatable. Document production was the last holdout. We used Apple Pages for a while β more usable than O365, but still impossible to automate in any meaningful way.
The answer was obvious: treat documents the same way we treat everything else. In practice, that meant:
Web-based and self-hosted
Version-controlled with full history
Authentication and authorisation via OpenID Connect
API for automation and integration
Real-time collaboration
Reusable templates and corporate design as packages
No existing tool ticked all the boxes. The first question was which document format to build on. Markdown and reStructuredText lack the typographic control needed for polished deliverables. LaTeX offers that control, but the learning curve makes it impractical for non-technical contributors.
Typst struck the right balance: expressive enough for professional output, approachable enough for the whole team. Typstβs own editor comes close to a complete solution and even offers a self-hosted variant β but while the compiler is open source, the web editor is a closed-source commercial product. We needed something we could fully control: open source, deeply integrated with our identity provider and git workflows, and extensible to our use cases.
So we built TINO: a collaborative, self-hosted editing platform around Typst.
π π»ββοΈ TINO Is Not OfficeΒΆ
TINO β pronounced TEE-noh (/ΛtiΛnoΚ/) β is short for TINO Is Not Office.
Yes, the first word is TINO again. Expand it all the way and you get Β«TINO Is Not Office Is Not Office Is Not Officeβ¦Β», a sentence with no natural end β much like the formatting meetings it was built to replace. Weβre in proud company: GNUβs Not Unix, WINE Is Not an Emulator, and TINO, with total conviction, Is Not Office β and thatβs a feature!
It is, weβll admit, a bit of an oxymoron. We built a tool whose entire job is producing letters, contracts and immaculate PDFs β the most office-coded work imaginable β and then named it Not Office. No ribbon. No βread-only, locked for editing by another user.β No layout that quietly rearranges itself the moment a colleague opens it on a different laptop. Just versioned, collaborative text that compiles into something youβd actually be happy to send.
So TINO is for the office and, by name, Not Office. Both true.
β¨ FeaturesΒΆ
The TINO editor ships with the following features out of the box:
- Inline SVG previewLive-rendered preview next to the editor, updated on every change.
- PDF exportCompile and download production-ready PDFs directly from the editor.
- Real-time collaborationConcurrent editing via CRDT over WebSockets. Changes merge automatically, no conflicts.
- Group-based access controlAssign viewer, editor, or committer roles per bucket, backed by OpenID Connect group claims.
- Git versioningEvery bucket is a Git repository with built-in history, commits, and restore.
- Drag & drop uploadsDrop files or ZIP archives into a bucket to import them. Archives are extracted automatically.
- Local packagesReusable templates and shared components as Typst packages.
- Custom fontsMount your own font library for consistent corporate typography.
- Minimal operationsNo database, no object storage. Just a filesystem and your identity provider.
- MCP server (experimental)Built-in Model Context Protocol server that lets AI agents list, read, write, compile, and commit Typst files β with the same access rules as a human user.