Project

pandorga

0.0
The project is in a healthy, maintained state
Pandorga is a publishing platform: Jekyll shell, browser content runtime, JSON export pipeline, and Studio editor. Sites declare pages in a registry; the gem supplies templates, gates, and the pandorga CLI.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Development

~> 13.0

Runtime

 Project Readme

Pandorga

CI Release Gem Version License: MIT

Pandorga Logo

An aesthetic Jekyll publishing platform for creative and technical writing. The site is your paper, your portfolio, and an extension of your own thoughts.
  • Headless and S3-compatible. Your content lives independently of the Pandorga shell — write, store, and move it on your own terms.
  • Studio CMS. Manage everything from quick notes to full diagrams without touching the repo.
  • Fully configurable. Portfolio, CV, blog, articles, and bibliography — each with its own presentation.

Quickstart

Scaffold a site (Ada Example defaults, content.backend: static):

gem install pandorga   # or use a local checkout
pandorga new my-site
cd my-site
bundle install
bundle exec pandorga doctor
bundle exec pandorga serve

Or run the packaged minimal example from a clone:

git clone https://github.com/alexandrelheinen/pandorga.git
cd pandorga
git submodule update --init .guidelines   # agent/prose guidelines (optional for runtime)
mise install                              # or use Ruby >= 3.3
bundle install
cd examples/minimal && bundle install && cd ../..
bundle exec pandorga export examples/minimal/content examples/minimal/_content_json
bundle exec pandorga doctor examples/minimal
mise exec -- ./scripts/validate.sh

Serve from the example directory:

cd examples/minimal
bundle exec pandorga serve

CLI

Command Purpose
pandorga new PATH Scaffold a site from examples/minimal
pandorga doctor Validate pandorga: config
pandorga export Content → JSON (manifest.json includes schema_version)
pandorga serve Export + jekyll serve
pandorga publish S3-compatible object-store sync (S3_* or R2_*)
pandorga install-functions Copy functions/ + studio/ into the site root
pandorga studio-schema Compose Studio schema from templates

Documentation

Doc Topic
docs/getting-started.md Minimal example locally
docs/configuration.md pandorga: reference
docs/pages-and-templates.md Registry and seven templates
docs/theming.md _data/themes and tokens
docs/extending.md Site overrides, hero art, Studio overrides
docs/architecture.md Shell, JSON, runtime, Studio
docs/upgrading.md Semver, schema_version, gem pins
docs/studio.md Studio env and schema compose
docs/studio-android.md Optional Expo Android WebView shell
docs/deploy/static.md Static backend
docs/deploy/cloudflare.md Pages + object store
docs/spec.md Migration plan and acceptance criteria
docs/decisions.md Frozen decisions
CONTRIBUTING.md Gates, and the Lighthouse mobile release rule

Releases

Lighthouse mobile thresholds apply to releases. A stable release scores 90 or above. A score from 75 to 89 is acceptable only to ship a bug fix, and an urgent performance campaign must then bring it back to 90 or above. Below 75 is never acceptable for a release. A pull request or a merge may score lower when that is unavoidable to keep the work modular. The release build publishes at 90 or above. Notes that include LIGHTHOUSE_BUGFIX=1 may publish a bug fix from 75 to 89. Pull requests and merges only warn on the score. The same run fails when the loaded example home has no project or article items. The checklist is in CONTRIBUTING.md.

License

MIT — Copyright (c) The Pandorga contributors.