Using Project Broadsheet without the terminal
Two paths to a live publication for writers, journalists, and educators who prefer not to use the command line.
The standard install path requires a terminal and Node.js. If that is not your environment — you are a journalist, educator, or writer who works entirely in a browser — you have two options.
Option 1: Fork on GitHub + Decap CMS (recommended)
This approach gives you a fully functional publication with a browser-based content editor, access control, and an editorial approval workflow. You never open a terminal.
What you need
- A free GitHub account
- A free Cloudflare account (for both Pages hosting and Zero Trust Access)
Step 1: Fork the repository
- Go to github.com/jonajinga/broadsheet
- Click Fork in the top-right corner
- Choose your GitHub account as the destination
- Give the repository a name that fits your publication
Forking creates your own copy of Project Broadsheet under your GitHub account. You own it completely.
Step 2: Deploy to Cloudflare Pages
- Log in to dash.cloudflare.com → Workers & Pages → Create → Pages → Connect to Git
- Authorize Cloudflare to access your GitHub account
- Select the forked repository
- Set the build command:
npm run build - Set the output directory:
_site - Set an environment variable:
NODE_VERSION=18 - Click Save and Deploy
Cloudflare builds the site automatically. The first build takes 2–3 minutes. You will receive a free .pages.dev subdomain immediately.
Step 3: Set up GitHub OAuth and the auth proxy
Decap CMS uses a GitHub OAuth App plus a small Cloudflare Pages Function to authenticate writers. This is a one-time setup.
A. Create the GitHub OAuth App:
- In GitHub, go to Settings → Developer settings → OAuth Apps → New OAuth App
- Set Authorization callback URL to
https://your-domain.pages.dev/api/auth(use your actual domain) - Click Register application, note the Client ID, then click Generate a new client secret and note the Client Secret
B. Add environment variables in Cloudflare Pages:
In Cloudflare Pages → your project → Settings → Environment Variables, add under Production:
GITHUB_CLIENT_ID→ your Client IDGITHUB_CLIENT_SECRET→ your Client Secret
C. Update src/admin/config.yml:
In your forked repo, open src/admin/config.yml and update the backend block:
backend:
name: github
repo: your-github-username/your-repo-name
branch: main
base_url: https://your-domain.pages.dev
auth_endpoint: api/auth
Replace your-github-username/your-repo-name with your actual repository and your-domain.pages.dev with your Cloudflare Pages domain.
Step 4: Set up Cloudflare Zero Trust Access
This step controls who can reach the /admin/ editor. Only email addresses you approve will get through.
- In Cloudflare → Zero Trust → Access → Applications → Add an application
- Choose Self-hosted; set domain to
your-domain.com/admin/ - Under Policies, add an email allowlist with each writer's email address
- Save
Free Zero Trust accounts support up to 50 users at no cost.
Step 5: Invite writers
For each person who needs CMS access:
- Add their email to the Cloudflare Access allowlist
- Add them as a GitHub collaborator with Write access (repo → Settings → Collaborators)
Writers visit https://your-domain.com/admin/, enter an email one-time PIN, sign in with GitHub, and see the full editor. Every save they make creates a draft pull request — nothing goes live until you review and merge it.
Step 6: Edit your site settings
In Decap CMS, open Site Configuration → Site Settings to set your publication name, email, description, newsletter provider, and social links. Every change saved in the CMS creates a PR; merge it to deploy.
See the Decap CMS integration guide for full configuration details.
Option 2: Hire me to set it up
If you want a fully configured publication — custom domain, brand colors, sections, newsletter, analytics — without handling any of the above yourself, I can do it for you.
Setup typically takes 3–4 hours at $150/hour. Educational institutions and registered nonprofits qualify for a reduced rate — mention it when you book.
What "forking" means
A fork is your own independent copy of a repository. Changes you make to your fork do not affect the original Project Broadsheet source. When Project Broadsheet releases an update, you can choose to pull those changes in — or not. You are never forced to update.
What to do next
- After your first deploy for the setup checklist once your site is live.
- Decap CMS for the full browser-based editing configuration.
- Education if you are setting up a student publication or classroom project.
Browse Support for community channels and paid support options, or book a call if you'd like me to set it up for you.