Source: https://seerepo.com/r/TryGhost/Ghost/built
Markdown source: https://seerepo.com/r/TryGhost/Ghost/built.md
Description: Ghost is a TypeScript repo built with React, Vite, and Express. It takes payments with Stripe and watches its errors with Sentry.

# What is Ghost built with?

Ghost is a TypeScript repo built with React, Vite, and Express. It takes payments with Stripe and watches its errors with Sentry. It has 4,136 files and 1,186,187 written lines, with 2,568 test files.

Read on October 28, 2026, at commit b14830a.

Repository: https://github.com/TryGhost/Ghost

## Frontend

### The base

- **[React](https://seerepo.com/uses/react)**: [in package.json](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/package.json)
- **[Vite](https://seerepo.com/uses/vite)**: [in package.json](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/package.json)

## Backend

### The base

- **[Express](https://seerepo.com/uses/express)**: [in package.json](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/package.json)

### Services

- **[Sentry](https://seerepo.com/uses/sentry)**: 21 files · [apps/admin-x-framework/src/hooks/use-handle-error.ts, line 1](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/apps/admin-x-framework/src/hooks/use-handle-error.ts#L1)
- **[Stripe](https://seerepo.com/uses/stripe)**: 4 files · [ghost/core/server/services/machine-payments/adapters/mpp-adapter.ts, line 250](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/ghost/core/server/services/machine-payments/adapters/mpp-adapter.ts#L250)

## Other repos with a similar stack

- [supabase/supabase](https://seerepo.com/r/supabase/supabase/built): React, Vite, Sentry, Stripe · [Compare](https://seerepo.com/compare/supabase/supabase/vs/TryGhost/Ghost)
- [toeverything/AFFiNE](https://seerepo.com/r/toeverything/AFFiNE/built): React, Vite, Express, Sentry · [Compare](https://seerepo.com/compare/toeverything/AFFiNE/vs/TryGhost/Ghost)
- [freeCodeCamp/freeCodeCamp](https://seerepo.com/r/freeCodeCamp/freeCodeCamp/built): React, Sentry, Stripe · [Compare](https://seerepo.com/compare/freeCodeCamp/freeCodeCamp/vs/TryGhost/Ghost)
- [Significant-Gravitas/AutoGPT](https://seerepo.com/r/Significant-Gravitas/AutoGPT/built): React, Sentry, Stripe · [Compare](https://seerepo.com/compare/Significant-Gravitas/AutoGPT/vs/TryGhost/Ghost)
- [microsoft/Web-Dev-For-Beginners](https://seerepo.com/r/microsoft/Web-Dev-For-Beginners/built): React, Vite, Express · [Compare](https://seerepo.com/compare/microsoft/Web-Dev-For-Beginners/vs/TryGhost/Ghost)
- [Stirling-Tools/Stirling-PDF](https://seerepo.com/r/Stirling-Tools/Stirling-PDF/built): React, Vite, Stripe · [Compare](https://seerepo.com/compare/Stirling-Tools/Stirling-PDF/vs/TryGhost/Ghost)

## Frequently asked questions

### What language is Ghost written in?

Ghost is written in TypeScript: 4,136 files and 1,186,187 written lines.

### What framework does Ghost use?

Ghost is built with React, Vite, and Express.

The proof: [in package.json](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/package.json)

### What does Ghost take payments with?

Ghost takes payments with Stripe.

The proof: [ghost/core/server/services/machine-payments/adapters/mpp-adapter.ts, line 250](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/ghost/core/server/services/machine-payments/adapters/mpp-adapter.ts#L250)

### What services does Ghost use?

Ghost watches its errors with Sentry.

The proof: [apps/admin-x-framework/src/hooks/use-handle-error.ts, line 1](https://github.com/TryGhost/Ghost/blob/b14830aee6b627923229c558dab69abd3a392751/apps/admin-x-framework/src/hooks/use-handle-error.ts#L1)

### Does Ghost have tests?

Yes. Ghost has 2,568 test files.

### Which repos have a stack like Ghost's?

The ones that share most of its stack: supabase/supabase, toeverything/AFFiNE, and freeCodeCamp/freeCodeCamp.

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
