Get started
The showcase

A finished site to take apart

Quilhara is a fictional trail magazine and guided-trip outfitter, built with Viglet Shio in English and Brazilian Portuguese. Install it on your own instance and every page is yours to read, edit, publish and break, including the tour pages that explain how it was made.

  • The Quilhara showcase: its home page
  • The Quilhara showcase: its trail page
  • The Quilhara showcase: its story page
  • The Quilhara showcase: its tour page
Install

Two ways in, one result

A fresh instance lists the showcase in its marketplace with nothing configured. Start one:

$docker run -p 2710:2710 -e SHIO_ADMIN_PASSWORD=change-me ghcr.io/openviglet/shio:latest

In the console

  1. Open the console at localhost:2710 and sign in as admin.
  2. Go to Admin, then Marketplace, and open Quilhara showcase.
  3. Under "Build a site from this package", name the site quilhara, tick "Create the site if it does not exist" and "Add missing fields to existing post-types".
  4. Press Plan to see every post type, page and image it would write, then Install and apply.

From a terminal

shio marketplace install shio-blueprint-quilhara --apply \
  --site quilhara --create-site --merge-post-types --dry-run
# the plan looked right: run it again without --dry-run
shio marketplace install shio-blueprint-quilhara --apply \
  --site quilhara --create-site --merge-post-types

Then open localhost:2710/sites/quilhara/default/en-us/. Installing writes nothing to your content until the apply, and the apply plans before it writes.

The tour

How the site was built

Each tour page explains one part of the work and links to the pages that show it.

  • /tour

    The feature tour: how this site was built, and the index of what each page shows

    marketplace shio_marketplace

  • /tour/agent

    How an agent discovers and reads this site in one call

    agentContext agentsMd agentTokenScope conditionalReads contextCapabilities fieldProjection instanceMemory manifestProjection mcp pathAddressing teachingErrors terseResponses shio_context shio_find shio_read shio_remember

  • /tour/writes

    How the agent wrote it: plans, batches, idempotent applies

    batchWrites blueprints confirmTokens desiredState folderMove folderPrune postMove postTypeMerge siteDelete siteUpsert writeProof shio_apply shio_publish shio_write

  • /tour/verification

    How the agent proved it without anyone looking

    appearanceDigest changeCursor contentLint deliveryProof diagnostics durableIncidents pageAudit renderDigest renderFetch routeCheck visualSnapshot shio_changes shio_digest shio_verify

  • /tour/curator

    What the curator did: edit in place, review, schedule, restore

    contentAcl previewTokens publishGate reviewQueue reviewVerdicts scheduledPublish trash universalEditor preview-links releases review-queue revisions universal-editor

  • /tour/files

    The same site as files on disk

    contentAsFiles exchange postTypesAsCode

  • /tour/delivery

    The same content over REST, GraphQL and webhooks

    graphql webhooks

  • /tour/media

    Where each image is used and what it is

    assetUsage shio_assets

  • /tour/replication

    How an existing site becomes an authorable one

    conversionProposal siteCapture siteConversion

The site

What a visitor reads

The magazine itself. Where a page is the clearest place to see a feature, the feature is named under it.

  • /

    Home: the season's lead story, three featured trails, the next guided trips

    locales serverRender

  • /trails

    Listing: every trail as a card, filtered by region and difficulty

    imageTransforms

  • /trails/black-rocks

    Detail: a coastal trail, with map, gallery, guide and related stories

  • /trails/wind-crest

    Detail: a ridge trail

  • /trails/ferns-falls

    Detail: a forest trail to a waterfall

  • /stories

    Magazine listing, newest first

  • /stories/the-step-keepers

    Long-form story with captioned photography

    assetMetadata

  • /stories/reading-the-tide

    Long-form story

  • /guides

    The guides, one card each

  • /guides/marina-alves

    A guide's profile, with the trails and trips she leads

  • /trips

    Guided trips with dates and price, the commerce-shaped listing

  • /trips/wind-crest-overnight

    One trip, with an enquiry form

  • /about

    The brand and the fact that it is fictional

  • /contact

    A site form whose submissions land as drafts

    site-forms

Run the CMS. Attach the agent whenever you feel like it.

One container and a database, and a console your team can work in on the first afternoon. Open source, no hosted tier you are being funnelled towards, and the whole design argument checked into the repository.

and when you do want one:

$claude mcp add shio -- npx @viglet/shio mcp