contify icon
contify

Rewrite cockpit for content production

Dokumentation

contify 2.0 — Technische Doku

Alles was du brauchst: Rollen, Workflow-Statuse, Textfelder, Routen und Setup.

Technologie-Stack

Stack & Architektur

Frontend

Next.js 16 · React 19 · Tailwind CSS 4 · shadcn/ui

Auth

NextAuth v5 · Credentials · RBAC · bcrypt

Daten

PostgreSQL 16 · Prisma ORM · Docker Compose

Tooling

TypeScript strict · ESLint · pnpm · Turbopack

Berechtigungsmodell

Rollen & Zugriff

Jeder User hat genau eine Rolle. Die Rolle bestimmt, welche Statuse sichtbar sind, welche Statusübergänge erlaubt sind und welche Seiten zugänglich sind.

ADMIN

Vollzugriff auf alle Funktionen, Statuse und User-Verwaltung.

Alle Statuse · Alle Texte · User anlegen/bearbeiten

MANAGER

Wie Admin, aber ohne technischen Systemzugriff.

Alle Statuse · Alle Texte · Kein User-Management

AUTHOR

Schreibt und bearbeitet eigene Texte im Redaktionsprozess.

RESEARCH · OPEN · NOT_FINISHED · FINISHED · KEYWORD_DEVIATION

LECTOR

Lektoriert, korrigiert und gibt Texte frei.

CLEARED · PROOFREAD · NOT_PROOFREAD · FINISHED

CLIENT

Mandant – sieht nur abgeschlossene und gelieferte Texte.

APPROVED · DELIVERED · ACCEPTED · NOT_ACCEPTED · ARCHIVED

Workflow

19 Status-Werte

Jeder Text hat genau einen Status. Übergänge werden rollenbasiert validiert — ADMIN und MANAGER können frei wechseln, andere Rollen nur entlang der erlaubten Transitionen.

Eingang

CAPTURED

Erfasst

ASSIGNED

Zugewiesen

TEMPLATE_TEXT

Vorlagentext

Produktion

RESEARCH

Recherche

OPEN

In Bearbeitung

NOT_FINISHED

Unfertig

FINISHED

Fertiggestellt

KEYWORD_DEVIATION

Keyword-Abweichung

Lektorat

CLEARED

Freigegeben

NOT_PROOFREAD

Nicht lektoriert

PROOFREAD

Lektoriert

Abschluss

APPROVED

Genehmigt

COMPLETED

Abgeschlossen

DELIVERED

Geliefert

ACCEPTED

Angenommen

NOT_ACCEPTED

Abgelehnt

BILLED

Abgerechnet

CANCELLED

Storniert

ARCHIVED

Archiviert

Datenmodell

Text-Felder

Das Text-Modell enthält alle SEO-, Workflow- und Content-Felder. Versionen werden bei jedem Speichern automatisch angelegt.

FeldPflichtBeschreibung
titleJaInterner Arbeitstitel
seoTitleNeinFür Suchmaschinen optimierter H1/Title-Tag
metaDescriptionNeinSnippettext für Suchergebnisse, max. ~160 Zeichen
briefNeinAufgabenbeschreibung und Ziel des Textes
contentNeinVolltext in Markdown oder Plaintext
primaryKeywordNeinPrimäres SEO-Keyword
secondaryKeywordsNeinKommagetrennte weitere Keywords
targetWordCountNeinGewünschte Wortanzahl für Content-Score
orderNumberNeinInterne Bestellreferenz
externalRefNeinVerlinkung zu externem System (z.B. MOCO)
clientIdNeinZuordnung zu einem Kunden-Account
statusJaAktueller Workflow-Status

Zusätzlich: id, slug (auto-generiert), authorId, createdAt, updatedAt — plus n:1 Relation zu TextVersion.

Navigation

App-Routen

/

Landingpage

Öffentliche Startseite mit Live-Texten

/login

Login

NextAuth Credentials-Login

/docs

Dokumentation

Diese Seite

/dashboard

Dashboard

Übersicht, Metriken, Queue

/dashboard/texts

Texte

Alle Texte mit Filtern

/dashboard/texts/new

Neuer Text

Text erstellen

/dashboard/texts/[id]

Text-Detail

Bearbeitung, Versionen, Status

/dashboard/clients

Kunden

Mandanten + MOCO-Import

/dashboard/users

User

User-Verwaltung (Admin/Manager)

Integration

MOCO-Import

MOCO bleibt read-only. Import und Sync schreiben ausschließlich in die lokale contify-Datenbank. Keine Schreiboperationen zurück nach MOCO.

Setup

MOCO_API_KEY=...

In .env eintragen — ohne Key ist MOCO deaktiviert, alles andere bleibt nutzbar.

Import

Firmen aus MOCO werden als lokale Kunden angelegt und per mocoCompanyId verknüpft.

Sync

„Sync aktualisieren" überschreibt Name, Adresse und Kontaktdaten aus MOCO — lokal ergänzte Felder bleiben erhalten.

Local Dev Setup

Schnellstart

1 · Dependencies

pnpm install

2 · Datenbank

docker compose up -d
pnpm prisma migrate dev
pnpm prisma db seed

3 · Env

DATABASE_URL="postgresql://..."
NEXTAUTH_SECRET="..."
MOCO_API_KEY="..."  # optional

4 · Dev-Server

pnpm dev

Seed-Admin: admin@contify.local
Passwort: contify-admin-2026