arrow_backAll work

Cornershop

A block-based CMS for small-business sites: edit on the page, publish when ready.

Context
Own product · Cornershop web studio
Year
2026
Role
Co-founder · design & development
Stack
AstroTypeScriptCloudflare WorkersD1 (SQLite)R2KV

scienceClick any section of the bakery site to edit it, type into a heading, add or reorder blocks, try another palette under Look & feel, then publish and compare with View live site. Everything in this demo is dummy data.

open_in_fullFull screen
lockcornershop.demo

Cornershop is the content system behind the websites my web studio builds for small businesses. Owners edit their own site in a visual editor: click a section, change the text or the photo, watch it change in the preview, and publish when it is right.

The problem

Small businesses outgrow a site builder quickly, but a full CMS hands them far too many knobs. We wanted one codebase that could rebuild an existing client site block for block, keep every site inside its design system, and still let a baker or a contractor change their own opening hours without calling us.

The approach

Pages are lists of blocks, and every block has a small schema. The admin forms, repeaters and the block picker are generated from those schemas, so a new field never needs admin code. Content is stored as JSON per block and language, with separate draft and published rows plus a history for rollback; rendered pages are cached at the edge and invalidated on publish. Roles split structure from values: editors change texts and photos, developers also add, move and hide blocks. Packages (one-pager, multi-page, quote shop) are modules switched per deployment, so owners never see features they did not buy. Several client sites already run on it.

Highlights

  • checkVisual editor: click a section in the preview to open its form, or type a heading straight into the page
  • checkSchema-driven admin: every form, repeater and option list is generated from the block's schema
  • checkDraft, preview and publish as separate steps, with version history and edge caching per page
  • checkTheme tokens (colours, fonts, shapes) as one global block, previewed at real device widths
  • checkRoles separate content from structure, enforced on the server, not just hidden in the UI
  • checkNews and agenda collections with scheduled posts, a media gallery with required alt text and a form inbox