capsule AI-native Unix-like composition layer

yingjieli-admin-ui v1.0.0

subsystem yingjieli.site

capsule://quake0day/yingjieli-admin-ui@1.0.0

Password-protected single-page admin panel for editing all site
content: hero, bio, exhibitions, contact, and the works catalogue
(with client-side image resize before upload).

Owns

Does not own

AI orientation

The admin panel is a single page protected by a password login. On
load it calls GET /api/auth — if not authenticated it shows the login
box, otherwise the editor. Every save is a full PUT /api/data with
the entire content blob (the API does not support partial updates).
Images are resized client-side BEFORE upload to keep R2 small.

Avoid

Extension points

client-image-resize at site/admin/admin.js
Reduce the image to a sane max dimension on the client before
calling POST /api/upload. The server does NOT resize.
editor-fields at site/admin/admin.js
Field set must mirror the content-store schema 1:1. Adding a
field requires a coordinated change to DEFAULT_DATA and the
write validator in the content-store capsule.

Provides

Requires

Dependencies

Capsules

Runtime

Invariants (must always hold)

Glossary

full-blob PUT
the only supported save mechanism; entire data object replaces KV
client-side resize
shrink-before-upload step in admin.js; server expects pre-sized bytes
seed
admin-only POST /api/data?seed=1 that resets the blob to DEFAULT_DATA

Source

https://github.com/quake0day/yingjieli/blob/main/capsules/admin-ui/capsule.yaml

Pull this capsule locally:

capsule pull capsule://quake0day/yingjieli-admin-ui@1.0.0

Or render to your terminal:

capsule man capsule://quake0day/yingjieli-admin-ui@1.0.0