Starter open-source · Apache-2.0

Publiez sans page builder.

Kreiz est le noyau éditorial d’Astro : back-office privé, types de contenu déclarés en code, médias, formulaires, analytics et SEO — compilés en un site public entièrement statique. Vous gardez la présentation, le schéma et les migrations.

Téléchargez l’archive ZIP ou créez votre propre dépôt depuis le template GitHub.

demo.kreiz.dev/admin
Le back-office Kreiz : dashboard, contenus, médiathèque, formulaires et analytics.

Apache-2.0Astro 7Node 24pnpmVercel-ready

Honnête par construction

Kreiz fait une chose, et la fait entièrement : le moteur éditorial. Chaque projet garde sa marque, ses types, ses templates et ses mots.

Ce que Kreiz n’est pas

  • un page builder
  • un CMS hébergé
  • un outil de workflow multi-rôles
  • une plateforme e-commerce ou newsletter
  • une marketplace de plugins ou de thèmes

Ce que Kreiz est

  • un noyau éditorial complet, sans dépendance hébergée
  • un admin privé : sessions, CSRF, journal d’audit append-only
  • des snapshots publics figés à chaque publication
  • un site public compilé, 100 % statique

Tout est inclus

Pas de marketplace, pas de plugins à assembler : le noyau couvre le cycle éditorial de bout en bout.

  1. 01

    Back-office privé

    Admin complet injecté par le Core : sessions signées, CSRF, journal d’audit append-only, CLI pour le premier administrateur.

  2. 02

    Types de contenu en code

    Déclarez les champs et le template ; les formulaires admin, la validation serveur et la preview sont générés.

  3. 03

    Save ≠ Publish

    Le site public ne lit que des snapshots figés. Enregistrer n’est pas publier : publier déclenche la reconstruction.

  4. 04

    Médias

    Upload direct signé vers S3, R2 ou MinIO, vérification serveur, variantes responsive servies par votre CDN.

  5. 05

    Rich text

    Éditeur Tiptap sur un document canonique versionné ; le HTML public est rendu par le Core, jamais stocké.

  6. 06

    Formulaires de contact

    Anti-spam en couches (jeton signé, honeypot, rythme), idempotence des soumissions, relais email optionnel.

  7. 07

    Analytics privacy-first

    Beacon statique sans cookie, IP pseudonymisée, dashboard SQL dans l’admin, rétention bornée.

  8. 08

    SEO

    Head résolue par le Core : canonical, Open Graph, sitemap, robots et JSON-LD générés au build.

Philosophie

Save ≠ Publish

Enregistrez

Les brouillons vivent en base, dans l’admin. Rien n’est public, rien ne se perd.

Publiez

La publication fige un snapshot immuable — la version servie ne peut plus bouger sous vos pieds.

Reconstruisez

Le rebuild est déclenché par deploy hook. Un rebuild raté n’abîme jamais le site servi.

« La base est la source de vérité ; le site statique n’en est que la projection. »

Déclarez. Le Core génère.

Le formulaire admin, la validation serveur et la preview naissent de cette seule déclaration.

export const articleType = defineContentType({
  key: 'article',
  label: 'Article',
  routeNamespace: 'articles',          // → /articles/<slug>
  fields: {
    excerpt: fields.text({ label: 'Accroche', required: true, maxLength: 300 }),
    body: fields.richText({ label: 'Corps', required: true }),
  },
  template: 'src/templates/ArticleContent.astro',
});

Votre prochain site part d’ici.

Clonez le starter, créez votre app, déployez. Le premier admin se crée en une commande.

$ git clone https://github.com/cyril-belin/kreiz.git mon-site