Self-hosted · Live preview

Anvil

Local-first · Real-time · Forge-native

A Linear-fast issue tracker you host yourself. One Go binary, one Postgres, no Redis, no Node server, no search cluster.

[open anvil ↗]
// the problem

Fast trackers are SaaS-only. Self-hosted ones are slow, don't work offline, or are tied to one forge.

Teams on Gitea, Forgejo or GitLab, or on air-gapped networks, get neither speed nor sync. Anvil gives them both, and lets them use local AI models too.

// a custom sync engine
[optimistic UI] → leader worker → WebSocket → [Go mutator] → one Postgres tx
[pg_notify] → every node → Protobuf deltas → [SQLite in every tab]

Changes are numbered without gaps in commit order, and the numbering costs no extra round trip. Go and TypeScript run the same mutators against 49 shared test cases.

Property-tested with partitions, duplicates and deletes, 10,000 runs at a time.

// works offline, in every tab

One leader Web Worker per browser, elected with Web Locks, owns a SQLite WASM database on OPFS. It holds a queue of unsent writes, so the UI renders instantly from local data, works offline and catches up when you reconnect.

// shared descriptions without conflicts

Issue descriptions are Yjs documents, so several people can edit at once. On the server, a Rust yrs module compiled to WASM runs inside Go via wazero and turns incoming forge edits into proper CRDT changes.

// four forges, both directions

Two-way sync with GitHub, GitLab, Gitea and Forgejo. Every adapter passes the same test suite against real forge containers, including webhook replay attacks and lossless Markdown round-trips. Scheduled jobs repair missed webhooks.

// ai you can measure

Duplicate detection, triage suggestions with linked evidence, filters written in plain language, and summaries with citations. It works with Anthropic, OpenAI or a local Ollama, and every feature is tested against 1,900 offline eval cases.

// coding agents, safely boxed

Hand an issue to Claude Code or Codex. They run under gVisor with a read-only root, no capabilities and an egress allow-list. Clones go through a fetch-only git proxy, so no forge credential reaches the runner.

// enterprise-ready

OIDC, SAML, SCIM, passkeys, a hash-chained audit log and envelope encryption. Also a TUI, VS Code / JetBrains / Neovim plugins, an MCP server, and Go and TypeScript SDKs.

// rigor
[go][postgresql][pgvector][react][typescript][sqlite-wasm][yjs][rust][wasm][protobuf][websocket][gvisor][opentelemetry][helm]
← back to projects