# Welcome to Kartotek

**Kartotek is an archival-first content-management system**: it exists to preserve an owner's own public web content — writing, photos, links — independently of whatever platform it was first published on, not just to run a blog. One **Category** tree drives a site's navigation and grouping, and one generic **Post** content model covers everything preserved or published — articles, images, galleries, links, and a Category's own presentation page. Every edit keeps history instead of overwriting it, every address (`domain/<uid>`) keeps working even after a rename, and content you decide not to make public yet (or ever) is retained, not deleted — see [Posts and publishing](/_docs/posts)'s Stage description.

This is the system hoejriis.dk itself runs on — see [Example: hoejriis.dk](/_docs/hoejriis-dk) for a real, working site built on it.

## Is Kartotek a good fit?

Kartotek suits an owner who wants:

- one coherent, versioned home for articles, photos, galleries, and links, organized into a Category tree, whether authored directly or preserved from elsewhere;
- content that's genuinely never lost — publishing an edit adds a new Version, it never overwrites the old one, and Post history is never erased once it exists;
- full control over what's public: content can be kept entirely private, previewed before publishing, or published and later hidden, always deliberately and always reversibly;
- a shared address space where a Post or Category, once linked to, keeps working even if it's later renamed;
- optional multi-domain hosting (several hostnames, one shared pool of content, each with its own navigation);
- straightforward native export/import and offline backup, so content isn't locked into this deployment either — see [Import, export and external publishing](/_docs/json-import).

It's deliberately **not** trying to be a general-purpose, plugin-extensible CMS. There's no theme marketplace, no third-party plugin ecosystem, and a fixed, small set of Post Types and Content Types (extending that set is a real code change, not a configuration option). It's also not an ongoing mirror of a social-media account — an external platform is a one-time or occasional import source, not a system Kartotek continuously syncs with. If either kind of flexibility is what you need, Kartotek probably isn't the right tool.

**How it's deployed, briefly:** one process serves both the site and its data — no separate frontend/backend hosts to keep in sync, no external database service to provision. That's the extent of the stack a site owner needs to know to evaluate it; the full technical picture is engineering detail, not part of this guide.

## The big picture

A **Post** is a stable identity — an internal ID, a UID, a Category — that accumulates **Versions** over time. Editing a Post never overwrites anything: it publishes a new Version, a snapshot recording a timestamp, a **Post Type**, and which pieces of content should currently be shown. The underlying content pieces (images, text blocks, links, and so on) are never deleted either, so switching how a Post displays — even changing its Post Type — never loses anything. See [Posts and publishing](/_docs/posts) for the everyday workflow, and [Writing and embedding content](/_docs/markdown) for the underlying content model.

A Post belongs to at most one **Category** — the grouping that organizes content and, per Domain, can drive top navigation and an optional sidebar. See [Organizing and presenting content](/_docs/categories).

Every Post and Category is reachable directly at the site root (`domain/<uid>`), and renaming one doesn't break links to its old address. See [Domains, UIDs and addresses](/_docs/addressing).

## Essential vocabulary

Just enough to get started — everything else is introduced where it's actually needed, in the doc that covers it:

- **Post** — an identity that accumulates content and history. See [Posts and publishing](/_docs/posts).
- **Category** — a grouping Posts belong to, arranged in a parent/child tree. See [Organizing and presenting content](/_docs/categories).
- **Post Type** — how a Post is displayed (Article, Link, Image, Gallery, Category Presentation, and others), each with its own Post Type reference page.
- **Stage** — a Post's visibility: PrePub (not yet public), Published, Hidden (was public, now hidden), or Private (deliberately kept to yourself, never Published).
- **UID** — the short, URL-friendly identifier a Post or Category is addressed by (`domain/<uid>`). See [Domains, UIDs and addresses](/_docs/addressing).
- **Domain** — a hostname pointed at a Kartotek deployment, with its own navigation. See [Domains, UIDs and addresses](/_docs/addressing).
- **Admin area** — where all of this is written, versioned, and published, reached at `/_admin`. See [Administrator quick start](/_docs/admin-quickstart).

Everyday terms stop here — Version, ContentElement, Role, Rank, and Display Schema are the deeper model underneath Posts, covered progressively in [Posts and publishing](/_docs/posts) and [Writing and embedding content](/_docs/markdown) once you're ready for them.

## Where to go next

- **Visiting a Kartotek site?** Start with [Explore a Kartotek site](/_docs/browsing).
- **Administering a site?** Start with [Administrator quick start](/_docs/admin-quickstart).
- **Evaluating Kartotek for your own use?** You've just read the right page — [Example: hoejriis.dk](/_docs/hoejriis-dk) is a real, live example next.
- **Integrating with a Kartotek site?** Go straight to [Import, export and external publishing](/_docs/json-import).

Proposed features, known limitations, and the release history live in [Roadmap and release history](/_docs/roadmap), not in this doc — everything here describes what's actually shipped.
