makr.dk

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's Stage description.

This is the system hoejriis.dk itself runs on — see Example: 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.

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 for the everyday workflow, and Writing and embedding content 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.

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.

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.
  • Category — a grouping Posts belong to, arranged in a parent/child tree. See Organizing and presenting content.
  • 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.
  • Domain — a hostname pointed at a Kartotek deployment, with its own navigation. See Domains, UIDs and addresses.
  • Admin area — where all of this is written, versioned, and published, reached at /_admin. See Administrator quick start.

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

Where to go next

Proposed features, known limitations, and the release history live in Roadmap and release history, not in this doc — everything here describes what's actually shipped.