Files
pablan/README.md
T
ProfessorNovaandClaude Opus 5 784b76baf7 Pablan, as it stands
Self-hosted knowledge management for SMEs: a split-screen Markdown editor
whose sections an LLM refines while you write, and RAG question answering
over the documents that result. FastAPI + Postgres/pgvector on the back,
SvelteKit on the front, everything OpenAI-compatible and self-hostable.

Squashed into a single commit; the development history stays local.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CA43ZJda8Rbp2hKXNy8f6b
2026-09-04 09:21:37 +02:00

3.7 KiB

Pablan

Self-hosted knowledge management for SMEs. Employees capture knowledge by writing Markdown directly into a document, with an LLM editor that matures the section at the cursor as they write (onboarding, offboarding, project debriefs and more, started from templates); the results are stored as Markdown documents and questions about the knowledge base are answered via RAG. Everything runs on your own infrastructure. The interface ships in German and English.

The problem it solves: knowledge leaves the company when employees do, and departments solve problems in isolation. Pablan makes writing tacit knowledge down quick and makes it searchable, with permission filtering before the LLM sees anything, drafts that stay private until their author publishes them, and GDPR-friendly retention defaults.

Stack

  • Backend — Python 3.12, FastAPI (async), SQLAlchemy 2.0 + Alembic, managed with uv
  • Database — PostgreSQL + pgvector: relational data, documents, embeddings, full-text (hybrid search), jobs and sessions in one DB
  • Frontend — SvelteKit (Svelte 5) + TypeScript + Tailwind, own components on Bits UI
  • LLM — any OpenAI-compatible endpoint (llama.cpp locally, cloud APIs in prod); three independently configured model roles: chat / utility / embedding
  • Deployment — Docker Compose: postgres, backend, frontend, Caddy

Development

Prerequisites: Docker, uv, Node 22+.

cp .env.example .env   # set DB password and LLM endpoints
make dev               # postgres in docker, backend + frontend native with hot reload
make migrate           # apply DB migrations
make seed              # seed dev data

App: http://localhost:5173 · API: http://localhost:8000/api

Command
make dev / make down start / stop the dev stack
make migrate apply Alembic migrations
make seed seed dev data
make types regenerate the typed API client from OpenAPI
make lint ruff + prettier + eslint + token contrast check (same as CI)
make eval LLM eval suite against the configured endpoints
make e2e Playwright end-to-end tests

Deployment

The customer stack is plain Docker Compose:

cp .env.example .env   # set POSTGRES_PASSWORD, PABLAN_DOMAIN, LLM endpoints
docker compose up -d --build

Caddy terminates TLS for PABLAN_DOMAIN automatically and serves frontend and API on one origin — config in deploy/.

Documentation

roadmap.md feature backlog: what's built and what's next, as a rebuild manual
architecture.md deployment model, backend/frontend structure, mode engine
data-model.md tables, permission model, hybrid retrieval, GDPR defaults
api-protocol.md REST + SSE contract
authoring-templates.md declarative Markdown-skeleton template format for capture
i18n.md message conventions, locale resolution, what stays untranslated
decisions.md ADR-style decision log
notes.md durable implementation learnings — calibrations, gotchas, rationale
licensing.md Fair Source licensing model

License

Pablan is Fair Source: the core is licensed under the Functional Source License 1.1 with Apache 2.0 future grant (FSL-1.1-ALv2) — free to read, audit, self-host and use internally; each release automatically becomes Apache 2.0 two years after publication. The ee/ directory contains proprietary Enterprise modules under a separate license.