<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Victor Clisby — Notes</title><description>A log of what I&apos;m building, planning, and thinking about. Short and timestamped.</description><link>https://victorclisby.com/</link><language>en-AU</language><item><title>CSS :has() finally landed everywhere</title><link>https://victorclisby.com/notes/css-has-finally-landed/</link><guid isPermaLink="true">https://victorclisby.com/notes/css-has-finally-landed/</guid><description>Spent the morning ripping out a JS-driven &apos;parent has invalid child&apos; pattern and replacing it with `form:has(:invalid)`. Three components got simpler.</description><pubDate>Thu, 14 May 2026 00:00:00 GMT</pubDate></item><item><title>Stripe webhooks: trust signatures, not IPs</title><link>https://victorclisby.com/notes/stripe-webhooks-signatures-not-ips/</link><guid isPermaLink="true">https://victorclisby.com/notes/stripe-webhooks-signatures-not-ips/</guid><description>An IP allow-list felt safer until the on-call woke up at 3am because Stripe rotated a range. Signature verification is the answer.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate></item><item><title>Switching from pnpm to bun for side projects</title><link>https://victorclisby.com/notes/pnpm-to-bun/</link><guid isPermaLink="true">https://victorclisby.com/notes/pnpm-to-bun/</guid><description>Install times are a step change. Tooling is rough at the edges but for greenfield prototypes the speed wins.</description><pubDate>Sat, 02 May 2026 00:00:00 GMT</pubDate></item><item><title>DDIA chapter 5: replication</title><link>https://victorclisby.com/notes/ddia-replication/</link><guid isPermaLink="true">https://victorclisby.com/notes/ddia-replication/</guid><description>Leader-based replication is everywhere I look once you know what it is. The Postgres logical replication chapter clicked after this.</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Conditional types: a small breakthrough</title><link>https://victorclisby.com/notes/conditional-types-distributive/</link><guid isPermaLink="true">https://victorclisby.com/notes/conditional-types-distributive/</guid><description>Finally internalised distributive conditional types. `T extends U ? X : Y` over a union maps element-wise. Wrote a tiny helper to make it stick.</description><pubDate>Mon, 20 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Rust ownership clicked today</title><link>https://victorclisby.com/notes/rust-ownership/</link><guid isPermaLink="true">https://victorclisby.com/notes/rust-ownership/</guid><description>The trick was stopping translating from JS. Borrowing isn&apos;t a workaround for GC — it&apos;s a different shape of program. Drew it out on paper.</description><pubDate>Sun, 12 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Healthcare forms are their own thing</title><link>https://victorclisby.com/notes/healthcare-forms/</link><guid isPermaLink="true">https://victorclisby.com/notes/healthcare-forms/</guid><description>Half the complexity is conditional logic; the other half is what people *don&apos;t* type. Empty states carry diagnostic meaning. Designed accordingly.</description><pubDate>Sun, 05 Apr 2026 00:00:00 GMT</pubDate></item><item><title>Vim motions in VS Code: worth it</title><link>https://victorclisby.com/notes/vim-motions-vs-code/</link><guid isPermaLink="true">https://victorclisby.com/notes/vim-motions-vs-code/</guid><description>Three weeks of being slower. Then suddenly faster. The mental cost of context-switching to the mouse adds up more than I realised.</description><pubDate>Sun, 29 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Aussie rules in JSON</title><link>https://victorclisby.com/notes/footy-in-json/</link><guid isPermaLink="true">https://victorclisby.com/notes/footy-in-json/</guid><description>Modelling a footy match as a typed event stream over a Saturday afternoon. Useless. Delightful. Recommended.</description><pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate></item><item><title>Local-first with electric-sql</title><link>https://victorclisby.com/notes/local-first-electric-sql/</link><guid isPermaLink="true">https://victorclisby.com/notes/local-first-electric-sql/</guid><description>The mental model — your database is the network — takes a beat. Then it&apos;s hard to go back. Replaying a flaky train commute felt like magic.</description><pubDate>Sun, 15 Mar 2026 00:00:00 GMT</pubDate></item></channel></rss>