--- 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 ```