Demo admin No login and no server: everything you edit here is saved only in this browser (localStorage) and previews on the public pages in this browser. To publish, export the JSON and rebuild (see Export). View site with your edits

Overview

What the public site is showing right now.

No changes

What this admin can do

A working demo of the editing workflow, built without a backend.

  • Edit every project's case study, tags, category, image and featured flag with a live card + case-study preview.
  • Edit services, the hero headline, positioning copy, stats and the about text.
  • Save states are explicit: No changes, Unsaved changes, Saved. Unsaved edits warn before you leave.
  • Open the public site in this browser to preview your saved edits; a banner marks them as unpublished.
  • Export the full content as JSON for the rebuild step, or import JSON from a colleague.

Limits (please read)

Honest boundaries of a static-site admin.

  • No authentication. This page is a demo; anyone with the URL can open it. Nothing here can change the live site for other visitors.
  • No persistent storage. Edits live in this browser's localStorage only. To publish: Export → replace content.json → run tools/build.py → redeploy.
  • New projects appear in the explorer preview but their case-study page exists only after the rebuild.
  • Images are chosen from the dashboards already in assets/img/portfolio/; uploading needs a host.
  • To make this real: Netlify Identity + Decap CMS, or a small API (Supabase/Firebase) behind a login. Both plug into the same JSON.

Projects

Edit project

projects/<slug>.html · lowercase, hyphens
Dashboard image
Apply updates the preview and marks the draft unsaved; Save writes it to this browser.
Live preview

Featured on the home page

Tick up to six. Order follows the project order; use the arrows to move a project up or down in the explorer.

Home page · featured grid preview

Services

Edit in place. Tags are comma separated.

Services grid preview

Hero

Must appear inside the headline exactly.

About

Positioning

Hero preview

Export content.json

This is the single source the site is generated from. Replace content.json in the project folder with this, run python3 tools/build.py content.json site, and redeploy.

Download content.jsonDownload may be blocked in some embedded viewers; copy works everywhere.

Import

Paste JSON exported from this admin (or the repo's content.json). It is validated before anything is replaced.

Reset

Remove the browser-local draft and go back to the published content.