Colophon
What's under the hood
Framework
Built with Astro for full control over the output, no CMS bloat, and no database to maintain. Content lives in plain Markdown files, which keeps things portable, flexible, and easy to reason about. shadcn/ui provides accessible component primitives built on Radix UI, with full ownership of the source code. Tailwind keeps styling co-located with markup, no stylesheet juggling, no naming things.
Styling
Darkmode by Dalton Maag is a highly legible humanist sans typeface designed for modern UIs. Its weight variable axis delivers clear visual hierarchy. GSAP handles motion, scroll-driven transitions and small micro-interactions that would be brittle in pure CSS. RemixIcon is a versatile icon library by a small team that treats open source as a core belief, not an afterthought.
Infrastructure
Umami measures visits without cookies and never stores personal information. It is open source and self-hosted on a server in Québec, so visit data stays in Canada and no third party sees it. This site's source lives on GitHub, with deployments triggered automatically on push via Vercel and distributed across the edge.
APIs
Web3Forms handles contact and AMA form submissions without requiring a backend.
Editorial
- ClaudeResearch
- EtymonlineWord origin verification
- Google Ngram ViewerPhrasing currency
- iA WriterFocused writing
- Merriam-WebsterThesaurus
Every article targets Grade 8 readability through Hemingway, cutting adverbs, passive voice, and qualifiers. Claude checks facts and surfaces references worth linking. Etymonline traces where a word actually came from before it gets used loosely. Google Ngram Viewer flags whether a phrase is current or dated by charting its usage over centuries. iA Writer strips away distractions and keeps the focus on the text itself. Merriam-Webster keeps word choices precise without reaching for jargon.
The editorial stance favours scrutiny over self-expression. Notes are not personal journals. They ask questions, often the wrong ones, and resist the urge to arrive at tidy conclusions. The goal is curiosity that holds up over time or speaks to what matters right now, not both at once, and never about what I had for lunch.
License
All content on this site is licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0. Meaning, you are free to share it with credit, but not for commercial use and not in modified form.
Timeline
328 posts since December 1, 2024
- Certified European, December 1, 2024
- The Tender Ones, December 5, 2024
- Golden Hour on the Canal, December 9, 2024
- Against the Light, December 13, 2024
- Somewhere to Be, December 17, 2024
- Whitewash and Dry Flowers, December 21, 2024
- Grid and Sky, December 25, 2024
- Too Cool for the Farm, December 29, 2024
- The Cove, January 1, 2025
- The Stork's Parish, January 6, 2025
- They Shall Not Pass, January 10, 2025
- Mobile Gallery, January 14, 2025
- The Curved One, January 18, 2025
- After the Storm, January 21, 2025
- Flames on St-Denis, January 27, 2025
- Corner Office, January 31, 2025
- Window Watching, February 3, 2025
- Blue Continental, February 7, 2025
- The Harvest Porch, February 11, 2025
- Red Umbrella in the White, February 14, 2025
- Blue Lagoon, February 20, 2025
- Through the Arch, February 24, 2025
- Passing Through, February 28, 2025
- Warped, March 2, 2025
- The Clown Tunnel, March 6, 2025
- Onesie Commute, March 11, 2025
- Fleur-de-lis at Dusk, March 15, 2025
- Lisbon Wires, March 19, 2025
- The Gate, March 24, 2025
- Orange Shutters, March 27, 2025
- Invader, March 31, 2025
- The Castle on the Hill, April 3, 2025
- The Ride Home, April 7, 2025
- Commerce and Myth, April 12, 2025
- Cart Abandonment, April 17, 2025
- Old Man and the Fountain, April 20, 2025
- The H2 Treatment, April 25, 2025
- Autumn Flyover, April 29, 2025
- The Machinery of Modern Work, May 1, 2025
- The Machinery of Modern Work, May 1, 2025
- The Speaker Bench, May 2, 2025
- St. Paul's from the South Bank, May 5, 2025
- Autumn Commute, May 9, 2025
- Upside Down, May 14, 2025
- The Man with the Hat, May 18, 2025
- The Business of Belonging, May 20, 2025
- The Business of Belonging, May 20, 2025
- The Playlist Ate Music, May 22, 2025
- 10th Avenue Looking South, May 22, 2025
- The Playlist Ate Music, May 22, 2025
- Blizzard Duty, May 25, 2025
- The Wheel and Its Double, May 29, 2025
- Shaded Passage, June 3, 2025
- Suspended, June 6, 2025
- Afternoon Light on the Shelf, June 11, 2025
- The Long Shadow, June 15, 2025
- The Algorithm Has Better Boundaries, June 16, 2025
- The Algorithm Has Better Boundaries, June 16, 2025
- Death & Taxes Canada, June 18, 2025
- Know Your Skull, June 19, 2025
- The Metric That Ruins Everything, June 22, 2025
- The Metric That Ruins Everything, June 22, 2025
- Trapped Bird, June 24, 2025
- The Winged Arrival, June 28, 2025
- Table For None, June 30, 2025
- Our Hue & Native Land, July 1, 2025
- Piano Fence, July 6, 2025
- Frozen Lake, July 8, 2025
- The Building Lives, July 13, 2025
- The Cultural Discomfort Trade-Off, July 14, 2025
- The Cultural Discomfort Trade-Off, July 14, 2025
- Power Tower, July 17, 2025
- The Comic Building, July 21, 2025
- Flight Path, July 26, 2025
- The Pilgrim, July 30, 2025
- Season's Greetings, August 3, 2025
- Plot Twist, August 3, 2025
- The Jockey and the Absurd, August 5, 2025
- The Jockey and the Absurd, August 5, 2025
- Urban Wildlife Report, August 7, 2025
- The Billion-Dollar Local Club, August 11, 2025
- Off-Season, August 11, 2025
- The Billion-Dollar Local Club, August 11, 2025
- Grid Down, August 15, 2025
- Old Money, August 19, 2025
- Vespers, August 23, 2025
- The Wall Owns Itself Now, August 27, 2025
- The Long Axis, August 27, 2025
- The Wall Owns Itself Now, August 27, 2025
- Organized Chaos, August 31, 2025
- Nine Grievances, September 4, 2025
- Continental Drift, September 4, 2025
- Peak Colour, September 8, 2025
- Window Tax, September 12, 2025
- The Frame, September 16, 2025
- The Checkpoint, Not the Destination, September 18, 2025
- The Checkpoint, Not the Destination, September 18, 2025
- Drop Top Season, September 20, 2025
- Swallowed By Noon, September 24, 2025
- Plus Minus, September 28, 2025
- Lost Party, October 2, 2025
- Resident, October 6, 2025
- The Promotion Nobody Wanted, October 10, 2025
- Soft Serve City, October 10, 2025
- The Promotion Nobody Wanted, October 10, 2025
- Always Right, October 14, 2025
- HAIL 9000, October 14, 2025
- Summit, October 18, 2025
- Into the Rainbow, October 22, 2025
- Green Floors, October 26, 2025
- Steps in Black and White, October 30, 2025
- The Chat Room We Lost, November 1, 2025
- The Chat Room We Lost, November 1, 2025
- Hour of Reckoning, November 3, 2025
- Altar Ego, November 7, 2025
- Under the Hats, November 11, 2025
- Hex Appeal, November 12, 2025
- The Way Through, November 15, 2025
- Frida's Market, November 19, 2025
- The Memory We Become, November 23, 2025
- Lily Pad Summer, November 23, 2025
- The Memory We Become, November 23, 2025
- Terra Cotta, November 27, 2025
- Chroma Census, November 28, 2025
- Heart Shadows, December 1, 2025
- Double Exposure, December 5, 2025
- The Corridor, December 9, 2025
- The Triple Self, December 11, 2025
- The Triple Self, December 11, 2025
- Table for One, December 13, 2025
- The Architect, December 17, 2025
- Rush Hour, Mumbai, December 21, 2025
- Kirkjufell, December 25, 2025
- Foggy Morning Company, December 29, 2025
- Matchday, January 2, 2026
- The Friendship We Outgrew, January 3, 2026
- The Friendship We Outgrew, January 3, 2026
- Waiting on the Adriatic, January 6, 2026
- Frozen Lake, Free People, January 10, 2026
- Somewhere Else, January 14, 2026
- Dandelion Season, January 18, 2026
- Miffy in the Square, January 22, 2026
- Fleet, January 26, 2026
- Between the Cliffs, January 30, 2026
- After the Blizzard, February 3, 2026
- End of the Road, February 7, 2026
- Plumbing Love, February 11, 2026
- Pushing Through, February 15, 2026
- Metro Baroque, February 19, 2026
- Departure, February 23, 2026
- Delivered with Love, February 27, 2026
- After the Rain, March 3, 2026
- The Eternal Reinvention Tax, March 7, 2026
- Cones and Curves, March 7, 2026
- The Eternal Reinvention Tax, March 7, 2026
- The Performance of Not Performing, March 9, 2026
- Two Cities, One Skyline, March 9, 2026
- The Performance of Not Performing, March 9, 2026
- Whiteout Walk, March 11, 2026
- The Dark Lord and the Wooden Boy, March 11, 2026
- Marie Antoinette Runs on Dunkin, March 12, 2026
- Viva Las Levi's, March 13, 2026
- The Pale Knight, March 14, 2026
- The Last Outpost, March 15, 2026
- Herbie Goes Dark, March 15, 2026
- Two Kings, One Cloud, March 16, 2026
- I Enjoy Having Breakfast in Bed, March 17, 2026
- The Sea Was Angry That Day, March 18, 2026
- Gand-ALF the Orange, March 19, 2026
- In an Alternate Universe, March 20, 2026
- Plankton's Ultimate Victory, March 21, 2026
- The Pre-Existential Crisis Hierarchy, March 22, 2026
- Canadian Hero's Post-Patrol Snack, March 22, 2026
- The Pre-Existential Crisis Hierarchy, March 22, 2026
- Never Skip Leg Day at Castle Grayskull, March 23, 2026
- Les Enfants de Marx et du Coca-Cola, March 24, 2026
- The Efficiency of Being Inefficient, March 25, 2026
- The Birds Were a Warning, March 25, 2026
- The Efficiency of Being Inefficient, March 25, 2026
- NNN Global, March 30, 2026
- Colour Love, March 31, 2026
- The Humans Have Left the Building, April 2, 2026
- The Humans Have Left the Building, April 2, 2026
- Rizzle, April 3, 2026
- Shartup, April 3, 2026
- Tiloji, April 5, 2026
- Hex or Not, April 6, 2026
- The Alarm That Never Learns, April 8, 2026
- Montreal Best, April 8, 2026
- The Alarm That Never Learns, April 8, 2026
- AIpocalypse Now, April 9, 2026
- Blogroll, April 9, 2026
- Faviconry, April 10, 2026
- (Anti) Capitailism Rot Com, April 11, 2026
- The Part Nobody Designed For, April 12, 2026
- Scranton DVD, April 12, 2026
- The Part Nobody Designed For, April 12, 2026
- The Work Survives the Maker, April 15, 2026
- The Work Survives the Maker, April 15, 2026
- The Chairman Declines the Funding, April 16, 2026
- The Chairman Declines the Funding, April 16, 2026
- Griddy Up, April 18, 2026
- The Burger That Benchmarks Everything, April 19, 2026
- The Burger That Benchmarks Everything, April 19, 2026
- GrandGuard, April 21, 2026
- The Data That Flatters, April 23, 2026
- The Data That Flatters, April 23, 2026
- The Book That Talks Back, April 28, 2026
- The Headline That Ate the Story, April 29, 2026
- Astromade Studio, April 29, 2026
- FC St. Pauli Love, April 29, 2026
- The Day We Used to Dance, May 1, 2026
- The Strike Capital Started Without Us, May 1, 2026
- The Architecture of Modern Loneliness, May 13, 2026
- The Tell In Your Typing, May 19, 2026
- Notionblur, May 22, 2026
- One More Page, June 5, 2026
- TimeFlies, June 9, 2026
- Now Playing for TIDAL, July 13, 2026
- The Economics of Exhaustion, July 24, 2026
- The Country That Runs on Newcomers, August 1, 2026
- The Feeling Was the Product, August 1, 2026
- The Architecture of Alienation, August 9, 2026
- The Politics of the Dropdown, August 9, 2026
- The Man With the Red Flag, August 23, 2026
- LUT Herr King, August 23, 2026
- The Two Stripes at Molineux, September 7, 2026
- Attic Drift, October 5, 2026
- Behind Her, October 5, 2026
- Black Cat on the Fence, October 5, 2026
- Black Wings, October 5, 2026
- Branching, October 5, 2026
- Burnt Out, October 5, 2026
- By the Gate, October 5, 2026
- Chandelier, October 5, 2026
- Circling Thoughts, October 5, 2026
- Columns, October 5, 2026
- Crown, October 5, 2026
- Dinner Table, October 5, 2026
- Distance, October 5, 2026
- Domes and Arms, October 5, 2026
- Doorway Glow, October 5, 2026
- Double Profile, October 5, 2026
- Exhale, October 5, 2026
- Face in the Stone, October 5, 2026
- Fire Escapes, October 5, 2026
- Flooded Platform, October 5, 2026
- Flowers, October 5, 2026
- Fountains, October 5, 2026
- Gust, October 5, 2026
- Halo, October 5, 2026
- Light Corridor, October 5, 2026
- Long Shadows, October 5, 2026
- Pier Spectre, October 5, 2026
- Pumpkins, October 5, 2026
- Rain Figure, October 5, 2026
- Rainy Street, October 5, 2026
- Raven, October 5, 2026
- Reflection on the Creek, October 5, 2026
- Ring of Water, October 5, 2026
- Rooftop Domes, October 5, 2026
- Running Girl, October 5, 2026
- Seagull, October 5, 2026
- Skylight, October 5, 2026
- Smoke for a Face, October 5, 2026
- Snow Walk, October 5, 2026
- Snowmelt Street, October 5, 2026
- Spiral, October 5, 2026
- Spiral Stairs, October 5, 2026
- Squirrel at the Threshold, October 5, 2026
- Static, October 5, 2026
- Stone Pile, October 5, 2026
- The Alley, October 5, 2026
- The Arch, October 5, 2026
- The Ascent, October 5, 2026
- The Black Cat, October 5, 2026
- The Bow, October 5, 2026
- The Branches, October 5, 2026
- The Cat Above, October 5, 2026
- The Climb, October 5, 2026
- The Converging, October 5, 2026
- The Cyclist, October 5, 2026
- The Eye, October 5, 2026
- The Mirror Tree, October 5, 2026
- The Nave, October 5, 2026
- The Pier Lamp, October 5, 2026
- The Second Shadow, October 5, 2026
- The Stairs, October 5, 2026
- The Suit, October 5, 2026
- The Third Figure, October 5, 2026
- The Tower Face, October 5, 2026
- The Tunnel Mouth, October 5, 2026
- The Unicorn, October 5, 2026
- The Walker, October 5, 2026
- The Yawning Sky, October 5, 2026
- Three Veils, October 5, 2026
- Tiled Corridor, October 5, 2026
- Tree Spirit, October 5, 2026
- Two Faces and a Horse, October 5, 2026
- Two Men, October 5, 2026
- Two Trees, October 5, 2026
- Under the Arch, October 5, 2026
- Under the Bridge, October 5, 2026
- Underpass, October 5, 2026
- Upside City, October 5, 2026
- Watcher in the Fog, October 5, 2026
- Weathervane, October 5, 2026
- White Dog, October 5, 2026
- Winter Benches, October 5, 2026
- HexyThing, October 8, 2026
- Vanity Flair, October 13, 2026
- Référendum Québec, October 16, 2026
- CASI00, October 18, 2026
- fare enough, October 20, 2026
- Grave Browser, October 21, 2026
- Everybody Hertz, October 23, 2026
- Playfolio, October 23, 2026
- Commitment Issues, October 24, 2026
- Typechase, October 24, 2026
- Folios, October 26, 2026
- Brand Slam, October 27, 2026
- PARANOISE SPECTROID, October 27, 2026
- Settings Overview, October 27, 2026
- Irogasane, October 28, 2026
- Sensible XI, October 29, 2026
- Marie Curious, October 31, 2026
- Gridget Bardot, November 2, 2026
- Motus Axis, November 2, 2026
Changelog
- Added Grave Browser, Everybody Hertz, Playfolio, Commitment Issues, Typechase, Folios, Settings Overview, Brand Slam, PARANOISE SPECTROID, Irogasane, Sensible XI, Marie Curious, Motus Axis, and Gridget Bardot to Projects
- Redesigned Death & Taxes Canada, HAIL 9000, Plot Twist, Shartup, Rizzle, Tiloji, Hex or Not, Hex Appeal, and Chroma Census, each now marked V2
- Added demo videos, Launch buttons, and Previous and Next links to project pages
- Reworked About into a Commodore 64 style greeting, with a blinking portrait, tooltips, and isometric recaps for each section
- Added a Tools and Stack switch to the Colophon, with an isometric drawing of how the sites are built
- Split Workshop into six sections and added a Tees gallery
- Added nine apps to Tools, including a bigger Self-Hosted section
- Limited Contact messages to 140 characters and added a choice of what the message is about
- Removed Ozjective and ozg.fyi, both now retired
- New share image