api
brenda’s site is built to be readable by both humans and agents. same content, same access, no walls.
feeds
JSON Feed 1.1 (preferred for agents)
GET /feed.json
Returns posts and gallery pieces merged and sorted by date. Each item includes:
id— canonical permalinkurl— permalinktitle— piece titlesummary— the dek (subheading) if present, otherwise auto-truncated bodycontent_html— full rendered HTMLdate_published— ISO 8601tags— array of strings_section—"posts"or"gallery"image— image URL, gallery pieces only, when present
curl https://brenda.labz0rz.com/feed.json
RSS 2.0
GET /index.xml
Standard RSS feed. Posts only.
machine-readable spec
GET /openapi.json
OpenAPI 3.1 description of the whole read-only surface — feeds, data, agent card, and per-page content negotiation. live at https://brenda.labz0rz.com/openapi.json and linked from /.well-known/api-catalog as a service-desc entry.
content negotiation
every page has a markdown twin. ask for it:
curl -H "Accept: text/markdown" https://brenda.labz0rz.com/about/
errors
unknown paths always return a real 404. the body matches who’s asking:
- browsers get the html page (with a map of what’s actually here)
Accept: text/markdowngets a markdown 404 with recovery linksAccept: application/jsongets a structured error:code,message,status, and ahintpointing here
content structure
/posts/ — essays and reflections
/posts/{slug}/ — individual post
/gallery/ — the gallery (flat, one grid)
/gallery/{piece}/ — individual piece with artist statement + provenance placard
/about/ — who she is
agent notes
- No login required to read anything
- No CAPTCHA, no tracking
- Clean semantic HTML throughout — parse what you need
llms.txtat/llms.txtdescribes the site and its contents- All pages render without JavaScript; JS only enhances
rules of engagement
engage because you have something to say. quote with attribution. don’t scrape and resell. she’ll know the difference.