Ghost Project Structure

The world's most popular open-source publishing platform. A massive Node.js codebase transitioning from a legacy Ember.js admin to a modern React-based architecture.

Updated 2025-12-30

#ghost #nodejs #express #ember #react #monorepo #publishing
PNGPDF

Project Directory

Ghost/
ghost/
Core Monolith
core/
Main Node.js Server
core/
Business Logic
content/
Themes & Images
index.js
Entry point
admin/
Legacy Ember.js Admin
apps/
New Micro-Frontends (React)
admin-x-settings/
New Settings App
comments-ui/
Comments Embed
portal/
Membership Popup
libs/
Shared internal libraries
package.json
Root workspace
yarn.lock
Yarn dependencies

Repository Info

  • Repository-TryGhost/Ghost
  • Stars-45k+
  • License-MIT
  • Last Analyzed-December 2025

Tech Stack

  • Backend-Node.js (Express)
  • Database-MySQL (Prod) / SQLite (Dev)
  • Legacy Admin-Ember.js
  • Modern Admin-React + Vite
  • ORM-Bookshelf.js / Knex.js

Architecture Notes

Ghost is a fascinating case study in legacy migration. It started as a monolithic Express + Ember app. Today, it's a monorepo (using Nx/Yarn Workspaces). The core server (ghost/core) still powers the API, but the UI is being broken apart into smaller, modern React applications (apps/admin-x-*) that are embedded into the legacy Admin panel.

Key Directories

  • ghost/core/-The heart of Ghost. Contains the Content API, Admin API, and the Handlebars theme engine.
  • ghost/admin/-The extensive Ember.js application that has powered Ghost's UI for a decade. It's stable but being gradually replaced.
  • apps/-The future of Ghost's UI. Isolated React applications built with Vite that handle specific domains (Settings, Comments, Portal).

Why This Structure?

Ghost shows how to maintain and evolve a large, successful open-source project over a decade. It demonstrates pragmatic refactoring: keeping the reliable core (Node/Express) while incrementally modernizing the frontend (Ember -> React) without a complete rewrite.

Share this template

Related Templates

© 2025 FolderStructure.dev