Override Bootstrap orange/yellow warning and generic blue info colors with the Lumière teal palette. Warning banners now use a soft teal tint instead of orange; info banners use the Lumière blue. Both types get 10px border-radius and a subtle shadow to match the card style. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
A collaborative, real-time editor for Quarto, LaTeX and Typst — documents and presentations.
Verso is a fork of Overleaf that adds first-class Quarto and Typst support alongside Overleaf's LaTeX toolchain. It keeps Overleaf's real-time collaboration infrastructure and runs three compilers side by side, chosen automatically from the root file's extension:
| Root file | Compiler | Typical output |
|---|---|---|
.qmd |
Quarto | PDF (via Typst or LaTeX), or an HTML/RevealJS deck |
.tex |
latexmk / TeX Live |
|
.typ |
Typst |
All three coexist on one server; no per-project configuration is required to pick the engine.
Features
- Real-time collaboration — multiple people editing the same file at once, powered by Overleaf's operational-transformation engine, with live cursors and full project history.
- Three compilers, auto-dispatched — Quarto, LaTeX and Typst projects live side by side; the runner is selected from the root file's extension.
- Language-aware editor for all three:
- LaTeX — syntax highlighting, command/environment/reference autocomplete, linting (inherited from Overleaf).
- Quarto (
.qmd) — Markdown highlighting plus Quarto-aware completions: code chunks (```{python},{r},{julia},{ojs}…), callouts and fenced divs (::: {.callout-note}, columns, tabsets) and cross-references (@fig-,@tbl-,@sec-,@eq-). - Typst (
.typ) — syntax highlighting and completions for the common functions and markup (#import,#let,#set,#show,#figure,#table,#cite, …).
- Document outline — section headings are extracted into the sidebar
outline panel for LaTeX, Quarto (
#,##, …) and Typst (=,==, …). - Format at a glance — the project dashboard shows a per-project format badge (Quarto / Typst / LaTeX), and the compiler dropdown greys out engines that don't apply to the current root file.
- Publish & share compiled output — publish the compiled result as a
standalone page at
/p/:token, with three independent access tiers (project members / any logged-in user / public). Works for both HTML/RevealJS decks (served live) and PDFs (embedded inline). HTML decks also get a one-click Present button in the toolbar. - Quarto Python cells — optional per-project virtual environment built from
the project's
requirements.txt, so Python code chunks run during render (gated to the project owner and invited collaborators). - Auto-compile — the preview refreshes automatically shortly after you stop typing.
Output formats
In the YAML frontmatter of a .qmd file:
format: typst # → PDF preview, rendered via Typst (no LaTeX required)
format: pdf # → PDF preview, rendered via LaTeX
format: revealjs # → interactive HTML slideshow preview
format: html # → a static HTML page
Typst ships inside Quarto, so format: typst needs no separate installation.
Note on display math: keep
$$ … $$blocks on a single line. Multi-line display-math blocks can trigger YAML parse errors in some Quarto versions.
Quick start
With Docker
docker run -d \
-p 80:80 \
-v ~/verso_data:/var/lib/overleaf \
--name verso \
registry.alocoq.fr/verso:latest
Open http://localhost in your browser, then visit /launchpad on first run to
create the admin account.
Build from source
# Build the base image (system deps + Quarto + TeX Live)
cd server-ce
make build-base
# Build the application image
make build-community
| File | Purpose |
|---|---|
server-ce/Dockerfile-base |
Base OS image — system deps, Quarto (with Typst) and a TeX Live (latexmk) toolchain |
server-ce/Dockerfile |
Application image — Node services and the compiled frontend |
Architecture
Verso is a microservices monorepo (Yarn workspaces). All services run inside a
single container managed by runit, with nginx as the front router.
browser ──→ nginx:80
├── / ──────────────────→ web:4000 (main app, React UI)
├── /socket.io ──────────→ real-time:3026 (WebSocket, OT engine)
├── /p/:token ───────────→ web (published output)
└── /project/*/output/* → clsi-nginx:8080 (compiled output files)
web → document-updater → Redis pub/sub → real-time → browser
web → CLSI (quarto render / latexmk / typst) → output files → nginx → browser
| Service | Role |
|---|---|
web |
HTTP API, React frontend, auth, project & sharing management |
real-time |
WebSocket layer, live cursors and edit sync |
document-updater |
Operational transformation, Redis pub/sub |
clsi |
Compiler — runs quarto render (.qmd), latexmk (.tex) or typst (.typ) and serves output |
docstore |
Document text storage (MongoDB) |
filestore |
Binary file storage (S3 or local) |
project-history |
Change history and version tracking |
Writing documents
Quarto (main.qmd)
---
title: My Presentation
author: Your Name
date: today
format: revealjs
---
## Slide one
Write **Markdown** here.
## Mathematics
$$\int_0^\infty e^{-x^2}\,dx = \frac{\sqrt{\pi}}{2}$$
Switch format: revealjs to format: typst (or pdf) for a PDF preview.
LaTeX (main.tex)
LaTeX works exactly as in Overleaf: a project whose root file is a .tex file
compiles with latexmk/TeX Live, no setting required. The Example LaTeX
project in the New project menu is a ready-made starting point.
The bundled TeX Live is a minimal install. Documents that need extra packages may not build out of the box — see
server-ce/Dockerfile-basefor how to switch to a fuller TeX Live scheme.
Typst (main.typ)
A project whose root file is a .typ file compiles directly to PDF with
Typst — fast, modern markup with a real scripting
language. Verso drives the Typst bundled with Quarto, so no extra install is
needed. Use the Blank Typst project entry in the New project menu to get
started.
Publishing compiled output
From Share → Publish, Verso compiles the project and snapshots the result to
a standalone page at /p/:token:
- HTML / RevealJS decks are served as a live page (the Present toolbar button is a one-click shortcut to this).
- PDF output is embedded inline; the raw file stays reachable at
/p/:token/output.pdf.
Three stable links are issued, one per access tier — project members, any logged-in user, or anyone — and each can be copied or independently reset.
Environment variables
Verso inherits all of Overleaf's environment variables (prefixed OVERLEAF_).
The most commonly needed:
| Variable | Default | Description |
|---|---|---|
OVERLEAF_APP_NAME |
Verso |
Name shown in the UI |
OVERLEAF_NAV_TITLE |
— | Instance name/version shown in the top bar |
OVERLEAF_MONGO_URL |
mongodb://mongo/sharelatex |
MongoDB connection string |
OVERLEAF_REDIS_HOST |
localhost |
Redis host |
OVERLEAF_SITE_URL |
— | Public URL (used in emails and published links) |
OVERLEAF_SITE_LANGUAGE |
en |
Default UI language (e.g. fr) |
OVERLEAF_ENABLE_PROJECT_PYTHON_VENV |
false |
Allow Quarto Python cells to use a project requirements.txt |
OVERLEAF_ADMIN_EMAIL |
— | Email for the first admin account |
See the Overleaf Server documentation for the full list.
Relation to Overleaf
Verso is a fork of Overleaf Community Edition. The main additions on top of upstream are:
- Quarto and Typst compilers running alongside LaTeX, dispatched by the root file's extension.
- Editor language support (highlighting, autocomplete, outline) for Quarto and Typst.
- A per-project format badge on the dashboard and a root-file-aware compiler selector.
- Publishing/sharing of compiled output (HTML decks and PDFs) via
/p/:tokenwith tiered access links, and a toolbar Present shortcut. - Optional per-project Python virtual environments for Quarto code execution.
- Verso branding (name, logo, palette, loading animation).
All other infrastructure — real-time collaboration, history, auth, file storage, project management — is unchanged from Overleaf.
Contributing
Contributions are welcome — open an issue or pull request on the Verso repository. The upstream Overleaf contribution guidelines are in CONTRIBUTING.md.
License
GNU Affero General Public License v3 — see LICENSE.
Copyright © Overleaf, 2014–2026 (original code). Verso modifications © Aloïs Coquillard, 2026.