Soffio

About Soffio

Soffio is a calm, self-hosted publishing system for technical writers who want static output, admin convenience, and operational control.

Product Position

Soffio is not a general-purpose CMS. It is for people who want to write, publish, automate, and self-host without surrendering control.

It favors:

  • Static output over runtime magic: public pages are rendered deliberately and can be served predictably.
  • Boring reliability over plugin sprawl: the core publishing path stays small, auditable, and operationally plain.
  • Explicit workflows over hidden automation: admin actions, API calls, CLI automation, and render jobs are visible parts of the publishing flow.

What It Provides

  • Static public output: rendered posts and pages for fast, cacheable delivery.
  • Focused admin console: writing, editing, organizing, publishing, settings, uploads, jobs, audit, and API keys.
  • Headless API and CLI: automation-friendly endpoints with scoped API keys and a command-line client.
  • Server-driven interaction: Datastar + SSE workflows without a client-side JavaScript application.
  • Technical writing support: Markdown, syntax highlighting, KaTeX math, and Mermaid diagrams.

Architecture

Soffio follows a clean, layered architecture:

  • Public Site: statically rendered pages with optional server-driven interactive widgets for readers.
  • Admin Console: a dedicated interface for writing, editing, organizing, and publishing content.
  • Headless API: RESTful endpoints for automation, integrations, and the command-line tool.

For Operators and Developers

Soffio is open source under the BSD-2-Clause license. The codebase enforces a strict Domain/Application/Infrastructure layering model, making it easy to understand, extend, and contribute.

Technology Stack:

  • Rust 2024 Edition
  • Axum 0.8 (HTTP framework)
  • PostgreSQL with SQLx (Database)
  • Askama (Templating)
  • Comrak, KaTeX, Syntect (Content rendering)
  • Apalis (Background jobs)

Try It Out

The demo database resets every hour, so feel free to experiment!


Author: xfyyzy