ghost.md 3.4 KB


name: ghost category: cms public: true database: required hosting_hints:

  • ghost-pro
  • vps
  • docker
  • digitalocean-marketplace audit_stack:
  • analyze
  • code-clean
  • seo
  • design-review
  • perf
  • cso
  • a11y
  • doc plugins: context7: optional ui-ux-pro-max: yes gstack: optional ---

Ghost (publishing CMS, Node.js)

CMS de publication Node.js orienté blog / newsletter / membership. Thème Handlebars. Database MySQL (SQLite en dev).

Detection signals

Strong signals (×3)

  • DEP: package.json contient "ghost" (au niveau du thème : engines.ghost)
  • FILE: package.json contient "engines": { "ghost": "..." } (thème)
  • FILE: config.production.json OR config.development.json (install Ghost)
  • DIR: content/themes/

Medium signals (×2)

  • DIR: partials/ AVEC .hbs
  • FILE: default.hbs OR index.hbs OR post.hbs
  • DIR: assets/css/ AVEC source/ (stylesheets SCSS)
  • FILE: gulpfile.js OR rollup.config.js (build Ghost theme)
  • EXT: 5+ fichiers .hbs

Weak signals (×1)

  • DIR: content/images/
  • DIR: content/data/ (SQLite dev)
  • FILE: ghost.service (systemd)
  • DEP: @tryghost/content-api OR @tryghost/admin-api (headless usage)

Composition overlays

  • Headless Ghost : usage via Content API avec frontend séparé → traiter comme API producer + frontend archetype

Implications

  • Hébergement : Ghost(Pro) managed, VPS (Ghost-CLI), Docker, DigitalOcean marketplace
  • Base de données : MySQL prod REQUISE, SQLite dev
  • SEO/GEO : CRITIQUE (blog / content)
  • Surface sécurité : MOYENNE — admin panel, API, member auth, Stripe integration
  • UI/UX : theme-dependent

Typical pain points

  • Version Ghost obsolète (cycle release rapide)
  • Thème incompatible avec version Ghost courante (GSCAN warnings)
  • config.production.json committé avec DB credentials
  • Mailgun API key en dur (delivery newsletter)
  • Stripe secret key exposée (membership)
  • Pas de backup automatique (content/images + DB)
  • Members non conformes RGPD (pas de double opt-in, pas de unsubscribe)
  • Pas de robots.txt / sitemap custom (Ghost génère mais pas configurable)
  • Perf : images non optimisées, Handlebars non cache
  • Newsletter : HTML email non testé clients (Outlook catastrophique)
  • CDN absent (images/assets servis depuis serveur)
  • Intégrations Zapier / custom webhooks : secrets rotation absente

Interview questions (adaptive)

En plus du set minimum business :

  • Hébergement : Ghost(Pro) / self-hosted VPS / Docker ?
  • Thème : custom (avec source .hbs) ou acheté ?
  • Usage principal : blog / newsletter / membership / combinaison ?
  • Members payants ? (Stripe intégration)
  • Version Ghost actuelle ?
  • Backup strategy (content/images + DB) ?
  • Intégrations : Mailgun / SendGrid / Postmark pour emails ?
  • CDN / image optimization ?
  • Headless / découplé ? (Content API + frontend séparé)
  • i18n prévu (Ghost n'a pas i18n natif) ?
  • GSCAN check passe-t-il ?

Plugin recommendations

  • context7 : OPTIONAL — Ghost release cycle rapide
  • ui-ux-pro-max : ON — theming orienté contenu
  • gstack : OPTIONAL — audit Lighthouse sur posts clés

Example project layout (theme)

package.json           ("engines": { "ghost": "^5.0.0" })
default.hbs
index.hbs
post.hbs
page.hbs
tag.hbs
author.hbs
partials/
  header.hbs
  footer.hbs
  post-card.hbs
assets/
  css/
    source/
      screen.scss
  js/
  images/
gulpfile.js