gophenberg README

The project's README from github.com/gopherium/gophenberg. As one markdown file: README.md.

Gophenberg

codecov Discord

A plugin-first CMS. Go backend exposing a JSON API, React SPA admin built on top of the WPDS and Gutenberg block editor.

Documentation

What works today

Running it locally

Go as pinned in go.mod, Node 26 with pnpm, and Docker for the PostgreSQL service.

cp .env.example .env
make seed

make seed starts PostgreSQL, applies the migrations, and creates a development administrator ([email protected] with the password password1234) alongside demo content. Then run the API and the admin in two terminals:

make dev
pnpm install && pnpm --filter @gophenberg/frontend dev

The API listens on localhost:8081 and the admin on localhost:5174, which proxies /api to the API.

To self-host a real deployment instead, follow the install guide.

Writing a theme

A theme is an Astro project depending on @gophenberg/astro. You write your layouts, the kit supplies the routes and the block rendering. test/theme is a working example, and writing a theme walks it.

Writing a plugin

A plugin is a Go package under plugins/ with a plugin.json, compiled in by make generate. plugins/feed is the reference, and write a plugin walks it.

Translating

The admin speaks whatever language its catalogues carry. Translation happens on POEditor, no Git needed, and a weekly job carries the finished work back in one batch. Translate Gophenberg walks it.

License

Copyright (C) 2026 Manuel 'SirLouen' Camargo

Gophenberg is free and open-source software under the Apache License 2.0. Hand-written source files carry an SPDX-License-Identifier: Apache-2.0 header.

Built frontend artifacts bundle @wordpress/* packages licensed under GPL-2.0-or-later. Those combined bundles are conveyed under the terms of the GPLv3, while all original source files in this repository remain Apache-2.0.

gophenberg (gopherium/gophenberg)

Searching Database…

What is this?Gophenberg is a plugin-first CMS with a Go backend exposing a JSON API, a React SPA admin built on the Gutenberg block editor, and optional Astro themes for the public site.
Is this more like WordPress, or a headless content API?It's both: there's a public site at the root, an admin UI under /admin, and a separate read-only content API at /api/content/v1, so it can render pages directly or feed an external frontend.
How do I get it running locally?Run 'make seed' to start PostgreSQL, apply migrations, and create a dev admin account with demo content, then run the API and the admin in two terminals; the API listens on localhost:8081 and the admin on localhost:5174.
What do I need installed before trying this?You need the Go version pinned in go.mod, Node 26 with pnpm, and Docker to run the PostgreSQL service.
What happens if I don't set up a theme?Themes are optional: Gophenberg's built-in renderer takes over whenever no Astro theme is active or a theme goes down, so the site keeps working without one.
How do plugins extend Gophenberg?A plugin is a Go package placed under plugins/ with a plugin.json, compiled into the binary via 'make generate'; it can own its own routes, public paths, and schema, as shown by the reference 'feed' plugin that serves posts as RSS.
How do I write a theme?A theme is an Astro project depending on @gophenberg/astro: you write the layouts while the package supplies routing and block rendering, with test/theme as a working example.
How is the admin UI translated?Translation is handled on POEditor without needing Git, and a weekly job pulls the finished translations back into the repo in a single batch.
What can I already do with the admin out of the box?It supports block authoring in Gutenberg with autosave, revisions, trash/restore, a filterable posts list, custom content types with their own routes, a media library with derived image sizes, and session-based auth with login rate limiting and a users screen.
Creator
gopherium
Size
10.6 MB
Stars
574
Age
3mo
Commits · 90 Days