Pages CMS is an Open Source Content Management System built for static websites (Jekyll, Next.js, VuePress, Hugo, etc).
It allows you to edit your website's content directly on GitHub via a user-friendly interface.
For full documentation, go to pagescms.org/docs
Pages CMS is built as a Vue.js app with a few serverless functions to handle the Github login.
It is intended to be deployed with Cloudflare Pages, using Cloudflare Workers (referred to as functions functions) for the serverless code.
In a nutshell:
.pages.yml
that describes the content structure and related settings (e.g. media folder).The easiest way to get started is to use the online version of Pages CMS. You'll be able to log in with your GitHub account and get the latest version of Pages CMS.
This online version is identical to what's in this repo and as mentioned above, nothing is saved in the backend (OAuth tokens are saved on the client side).
But you can also install your own version locally or deploy it (for free) on Cloudflare following the steps below.
To get a local version up and running:
npm install
.Pages CMS (dev)
https://pagescms.org
http://localhost:8788/auth/callback
.dev.vars.exmple
into .dev.vars
and replace GITHUB_CLIENT_ID
and GITHUB_CLIENT_SECRET
with the values you got for your GitHub OAuth app. You shouldn't have to modify BASE_URL
.npm run dev
. This should run the app locally with Wrangler (allowing us to run the serverless functions locally).Workers & Pages
, then click on Create application
and select the Pages
tab.Pages CMS
https://pagescms.org
https://pages-cms-123.pages.dev/auth/callback
(replace https://pages-cms-123.pages.dev
with whatever URL Cloudflare generated for you, or the custom domain you set up)Settings
tab and select Environment variables
in the sidebar.GITHUB_CLIENT_ID
and GITHUB_CLIENT_SECRET
with the values you got from GitHub.BASE_URL
to the URL that was given to you when you create the Cloudflare Pages app (e.g. https://pages-cms-123.pages.dev
).https://pages-cms-123.pages.dev
).Cloudflare has very generous free tiers and can also host your actual website. It's a great alternative to GitHub Pages, Netlify or Vercel.
Everything in this repo is released under the MIT License.