Document Your Quirks: Why CLAUDE.md Changes Everything
I spent 45 minutes teaching Claude a fix I already knew. Putting that project quirk in CLAUDE.md stopped the same rediscovery next time.
I spent 45 minutes teaching Claude a fix I already knew. Putting that project quirk in CLAUDE.md stopped the same rediscovery next time.
Tailwind v4 rendered my shared components without their utility classes. One @source directive fixed three hours of monorepo debugging.
I tried Origin as an alternative to Copilot Money. More financial products did not make up for the transaction review it handed back to me.
Six months with React Router loaders changed my default. I add React Query only when repeated fetching, shared data, or polling gives me a reason.
October's report counted 31,039 cuts attributed to AI. It recorded what employers said—not whether deployed systems actually replaced the work.
React Compiler 1.0 moved routine rendering memoization into the build. React.memo, useCallback, and useMemo now need a specific reason.
My machine has one Claude Code executable and one updater. Here is how I check the path, remove conflicts, and keep it that way.
Meta cut roughly 600 AI jobs while still hiring for TBD Lab. I read the reorganization as a shift in priorities, not an AI spending retreat.
After using Comet for search and summaries, I am curious about how Atlas can make browser tasks easier while keeping decisions clear.
Claude Code on the web changes coding from an editor interaction into delegated work. That matters more than adding another interface.
Trying Sora made me think about creative experimentation, source context, and how feeds can help people understand generated video.
Samsung's 7-million-parameter TRM beat much larger models on specific reasoning benchmarks by revising its answer up to 16 times.
I use Claude Haiku for small refactors, review, and debugging. Its lower cost and faster responses matter more there than deeper reasoning.
I tested SwiftUI toolbar placement, grouping, search, and overflow on iPhone and iPad. The useful mental model is intent—not fixed screen coordinates.
I rebuilt SwiftUI's TabView examples to separate the iOS 18 navigation APIs from the iOS 26 Liquid Glass redesign—and to see where the system takes control.
VoiceOver read my compound views as a pile of unrelated elements. Grouping, labels, and combined accessibility testing fixed the experience.
The full Liquid Glass effect became distracting while I built with it. Here is how I handled Reduce Motion and Dynamic Type in SwiftUI.
A small Cloudflare Worker can rewrite /tag/* to /tags/* without changing the main application or dropping query strings.
I moved a static site from Cloudflare Pages to Workers in five minutes. The config was easy; deciding whether a static blog benefits is harder.
My working setup for a Home Assistant Connect ZWA-2 on a Ugreen NAS, using Docker and Z-Wave JS UI.
How I deployed the React Router application with Fly.io, Cloudflare, Neon, Docker, and reviewable database migration history.
The React Router, TypeScript, PostgreSQL, and authentication stack I chose after using LLMs to prototype the alternatives.
Stale DNS stopped Fly.io issuing my origin certificate. Fixing that cleared the Cloudflare 525 error in this deployment.
The migration took two focused sessions: dependencies first, then 40 files of imports and route types. Typegen was the part worth keeping.
My Remix-to-React Router v7 migration touched 40 files and removed 591 net lines. Imports were easy; TypeScript took the time.
Leaving Next.js for Remix taught me why the annoying-looking use client boundary exists—and what Remix gives up without it.
My Remix app ran locally and failed on Vercel with EMFILE. The workarounds reduced file churn but could not expose or change the platform limit.
AI search changes how readers find answers. Maintaining this site makes me curious about citations, discovery, and the value of firsthand writing.
The ruling distinguished transformative AI training from acquiring source material, offering builders a useful lesson in data provenance.
A new data-model entity touched several old pages. Rebuilding those UI components was faster than carrying their Flow types and old assumptions forward.
AI can change how teams work. I want to understand the deployed workflow before treating a hiring decision as evidence of automation.
The package manager was the easy part. File APIs, CI, compatibility checks, and Claude Code produced most of the migration's useful work.
Moving this blog from Node.js to Bun cut its build from 37 seconds to 20. Native file and glob APIs also removed code I no longer needed.
Windsurf removed flow action credits and cut team pricing while OpenAI acquisition talks were being reported. I cared more about the simpler bill.
Figma's dispute with Lovable over Dev Mode shows why common developer terms make weak trademarks and costly legal weapons.
OpenAI talked a ~$3B Windsurf deal. I use Claude Code and Cursor; the story that matters is who owns the IDE relationship, not the model API.
GPT-4.1's benchmark jump showed up in my Windsurf and Cursor use as cleaner diffs and fewer back-and-forth retries.
A leaked OpenAI lineup showed five models, but the mini and nano pricing mattered more to me than another flagship.
The benchmark gap was obvious, but deleting 90 lines of build configuration was the better reason to choose Vite for a modern app.
Similarweb March 2025: ChatGPT at 4.55B visits, X at 4.58B. ChatGPT grew faster that month. Infrastructure, not a toy.
Copilot shipped agent mode and more models. Microsoft also tightened extension licenses so some tools refuse to run in Cursor.
AI literacy takes access, time, and practice. I want my son to grow up curious about these tools and able to learn alongside them.
Claude Code for hobby refactors, Cursor at work — two tools, two jobs, and what I learned from reviewing their work.
Claude Code helped build the parser, generator, templates, and Cloudflare deployment. Syntax highlighting and timezones took more work.
I paid about $10 to see whether Claude Code could scaffold the TypeScript static-site generator behind this blog. Most of its choices held up.
Replacing Assistant with Gemini fits Google's long pattern of abandoning products instead of earning trust through steady maintenance.
Public libraries give coding agents examples, documentation, and discussions they can retrieve. Private APIs must supply that context themselves.
When Chrome began disabling uBlock Origin under Manifest V3, I stopped looking for another extension and moved my browsing to Brave.
Bitcoin ATMs charge steep fees and are frequently used in scams. Their placement in vulnerable neighborhoods makes the business model hard to defend.
A personal blog should be fast on a phone and boring to host — Markdown to static HTML on Cloudflare, no app server.
A 2025 report put specialized OpenAI agents at $2k–$20k a month. Even as a reported figure, that belongs in a labor budget—not a footnote.
I use Perplexity for most search and for a daily news skim. Google for the stubborn queries. Apple News lost the paywall fight.
I started writing here again — web development, AI tools I actually run, and what SF startups taught me the expensive way.