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.
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:latestIn the console
- Open the console at localhost:2710 and sign in as admin.
- Go to Admin, then Marketplace, and open Quilhara showcase.
- 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".
- 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-typesThen open localhost:2710/sites/quilhara/default/en-us/. Installing writes nothing to your content until the apply, and the apply plans before it writes.
How the site was built
Each tour page explains one part of the work and links to the pages that show it.
/tourThe feature tour: how this site was built, and the index of what each page shows
marketplaceshio_marketplace/tour/agentHow an agent discovers and reads this site in one call
agentContextagentsMdagentTokenScopeconditionalReadscontextCapabilitiesfieldProjectioninstanceMemorymanifestProjectionmcppathAddressingteachingErrorsterseResponsesshio_contextshio_findshio_readshio_remember/tour/writesHow the agent wrote it: plans, batches, idempotent applies
batchWritesblueprintsconfirmTokensdesiredStatefolderMovefolderPrunepostMovepostTypeMergesiteDeletesiteUpsertwriteProofshio_applyshio_publishshio_write/tour/verificationHow the agent proved it without anyone looking
appearanceDigestchangeCursorcontentLintdeliveryProofdiagnosticsdurableIncidentspageAuditrenderDigestrenderFetchrouteCheckvisualSnapshotshio_changesshio_digestshio_verify/tour/curatorWhat the curator did: edit in place, review, schedule, restore
contentAclpreviewTokenspublishGatereviewQueuereviewVerdictsscheduledPublishtrashuniversalEditorpreview-linksreleasesreview-queuerevisionsuniversal-editor/tour/filesThe same site as files on disk
contentAsFilesexchangepostTypesAsCode/tour/deliveryThe same content over REST, GraphQL and webhooks
graphqlwebhooks/tour/mediaWhere each image is used and what it is
assetUsageshio_assets/tour/replicationHow an existing site becomes an authorable one
conversionProposalsiteCapturesiteConversion
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
localesserverRender/trailsListing: every trail as a card, filtered by region and difficulty
imageTransforms/trails/black-rocksDetail: a coastal trail, with map, gallery, guide and related stories
/trails/wind-crestDetail: a ridge trail
/trails/ferns-fallsDetail: a forest trail to a waterfall
/storiesMagazine listing, newest first
/stories/the-step-keepersLong-form story with captioned photography
assetMetadata/stories/reading-the-tideLong-form story
/guidesThe guides, one card each
/guides/marina-alvesA guide's profile, with the trails and trips she leads
/tripsGuided trips with dates and price, the commerce-shaped listing
/trips/wind-crest-overnightOne trip, with an enquiry form
/searchSite search over trails, stories and guides
search/aboutThe brand and the fact that it is fictional
/contactA 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


