.. _Introduction:
💁🏻♂️ Introduction
====================
.. _Rationale:
🤷🏻♂️ Rationale
-----------------
Most of our business processes at `confirm IT `_ are fully automated — but document production still relied on native desktop applications with templates that were hard to control and impossible to version.
We wanted «document authoring as code», meaning:
- Web-based and :ref:`self-hosted `
- :ref:`Version-controlled ` with full history
- :ref:`Authentication ` and authorisation via OpenID Connect
- :ref:`API ` for automation and integration
- Real-time :ref:`collaboration `
- Reusable templates and corporate design as :ref:`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`_.
.. _Name:
🙅🏻♂️ 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.
.. _Purpose:
🎯 Purpose
----------
TINO is a self-hosted web editor for `Typst`_ documents, built for teams that want to author, review, and publish together.
- | **Replace desktop word processors**
| Move document production to the browser, with version control and collaboration built in.
- | **Keep documents on your infrastructure**
| Privacy-aware. Self-hosted by design. Nothing leaves your network.
- | **Empower the whole team**
| `Typst`_ – powerful typesetting for professional output, approachable for everyone.
.. _Features:
✨ Features
-----------
The TINO editor ships with the following features out of the box:
- | **Inline SVG preview**
| Live-rendered preview next to the :ref:`editor `, updated on every change.
- | **PDF export**
| Compile and download production-ready PDFs directly from the :ref:`editor `.
- | **Real-time collaboration**
| :ref:`Concurrent editing ` via CRDT over WebSockets. Changes merge automatically, no conflicts.
- | **Group-based access control**
| Assign viewer, editor, or committer roles per :ref:`bucket `, backed by :ref:`OpenID Connect ` group claims.
- | **Git versioning**
| Every bucket is a :ref:`Git ` repository with built-in history, commits, and restore.
- | **Drag & drop uploads**
| Drop :ref:`files ` or ZIP archives into a bucket to import them. Archives are extracted automatically.
- | **Local packages**
| Reusable templates and shared components as Typst :ref:`packages `.
- | **Custom fonts**
| Mount your own :ref:`font library ` for consistent corporate typography.
- | **Minimal operations**
| No database, no object storage. Just a filesystem and your identity provider.