Skip to content

Instantly share code, notes, and snippets.

The published blog at blog.xmlui.org is a standalone XMLUI app (xmlui-blog), separate from the main website. Its source lived in blog/src/ but has been removed from the working tree — only blog/dist/ remains.

The key file was blog/src/config.ts, which contains:

  1. A hardcoded blogPosts array listing every post's metadata (title, slug, description, author, date, image, tags, draft).
  2. That array is passed to the XMLUI runtime via appGlobals.blog.posts.
  3. Blog markdown files are loaded from blog/public/blog/*.md via Vite glob import.
  4. The Main.xmlui for the blog app used hardcoded Page routes with index-based references (posts[0], posts[1], etc.).

Adding a new post to the published blog requires:

@judell
judell / plan-issue-41.md
Created March 25, 2026 04:59
Plan: Stop committing generated ICS/JSON files to the repo (issue #41)

Plan: Stop Committing Generated ICS/JSON Files to the Repo

Current State

  • CI workflow commits cities/*/events.json, cities.json, and version.txt to git after every build
  • Individual .ics files from scrapers/feeds are also committed
  • The app does not serve these files to users — it queries Supabase directly
  • The load-events edge function fetches events.json from raw.githubusercontent.com to upsert into Supabase
  • cities.json and version.txt ARE used by the frontend at load time (via GitHub Pages)
@judell
judell / meetup-rsvp-leaky-abstraction.md
Last active February 13, 2026 18:15
meetup-rsvp-leaky-abstraction.md

When “RSVP Today” Stops Making Sense

I received this Meetup email today and could not make sense of it.

image
@judell
judell / newstack-refactor-after.xml
Created January 13, 2026 06:58
newstack-refactor-after
<!-- after -->
<HStack>
<WeatherStat
label="Cloud Cover"
value="{condition.cloudcover}%"
/>
<WeatherStat
label="Humidity"
value="{condition.humidity}%"
/>
@judell
judell / newstack-refactor-before.xml
Created January 13, 2026 06:56
newstack-refactor-before
<!-- before -->
<HStack>
<VStack>
<Text variant="secondary" fontSize="$fontSize-sm">Cloud Cover</Text>
<Text fontWeight="semibold" fontSize="$fontSize-lg">
{condition.cloudcover}%
</Text>
</VStack>
<VStack>
@judell
judell / cbfs-setup-validation.md
Last active November 2, 2025 18:16
cbfs setup validation
  1. Verify Node.js/npm prerequisites

  node --version && npm --version
  Output: v20.19.0 and 10.8.2 ✅ (meets v20+ requirement)

  ---
  2. Install .NET 9.0 SDK on macOS

  brew install dotnet
@judell
judell / TubeStops.xml
Created July 8, 2025 21:21
TubeStops.xmlui
<Component name="TubeStops">
<DataSource
id="stops"
url="https://api.tfl.gov.uk/Line/{$props.line}/StopPoints"
transformResult="{window.transformStops}"
/>
<Text variant="strong">{$props.line}</Text>
<Table data="{stops}">
<Column width="3*" bindTo="name" />
<Column bindTo="zone" />
@judell
judell / claude-select-reset.md
Created April 15, 2025 20:14
claude-select-reset

XMLUI Select Component Reset Feature Implementation

Initial Exploration

Human: do you see the Select implementation here?

Claude: [Claude examines the Select.tsx file]

I see the Select component implementation.

@judell
judell / simple-invoice.md
Created March 28, 2025 02:02
simple-invoice.md
├── node_modules
│   ├── @adobe
│   │   └── css-tools
│   │       ├── LICENSE
│   │       ├── Readme.md
│   │       ├── dist
│   │       │   ├── index.cjs
│   │       │   ├── index.cjs.map
│   │       │   ├── index.mjs
@judell
judell / chalking.md
Created March 19, 2025 15:13
chalking

Chalk Protest Legal Cases Timeline

Case Date Outcome Outcome Details Context/Notes Jail Time Sources