All blogs / JavaScript / TypeScript
Cory House
The Art of Software Development.
JavaScript / TypeScriptFrontend / CSS / browsersSoftware / engineering practiceAI / MLTesting / QA
- Posts
- 2,151 from 24 Apr 2012 to 24 May 2026
- Posting
- weekly (59 in the last year)
- Kind
- personal blog
- Feed
- https://coryhouse.dev/rss.xml
Latest
May 2026
- I thought AI would lead to worse code
- My personal site has been on Wordpress for 14 years
- Hot take: 🌶️ An agent should be generating nearly all code today
- Problem: How do I quickly tell AI exactly which elements I want to change
- In 2026, many dev teams still fail to get the basics right
April 2026
- Teammate wanted to try Claude's new expensive ultrareview but didn't have access
- Wild realization: AI means I shouldn't write *any* code anymore
- The acceleration from AI is unbelievable
- Pet peeve: Projects where many files are named index
- Problem: AI generates code that doesn't match our formatting and linting...
- Dev team red flags 🚩 “We do Scrum” “We do Git flow” “We use <insert...
- Ya know how in a job interview you can tell if someone is a good candidate...
- Been building a new Next.js app over the last few weeks and I'm happy to say...
- I thought AI would lead to more slop
- The near future: AI generates code
- Today at a conference, I asked a room of 250 developers this question: "If...
- 4 weeks of coding by 4 developers and over 1,000 unit tests that pass in...
- I’ve never been great at regex
- This is so slick
- I used Windows for 20+ years
- I see many people running multiple agents simultaneously
- The problem with an immature IT org is it tends to repel the people who are...
March 2026
- Just learned a team at Microsoft is doing code reviews *after* merge
- I’ve spent 8+ hours a day building with Claude Code and Opus over the last...
- Y'all out there running multiple agents at once scare me
- Problem: HTTP status codes in code aren't type safe and require looking them...
- Bun test is crazy fast, but unfortunately we just switched back to Vitest
- Rule: If the prompt is likely to be longer than the code change, I should...
- Even in the age of AI, I can do many tasks more quickly manually than via...
February 2026
- One of the most common reasons I leave GitHub Copilot is to try a new model...
- Using Codex today instead of Claude Code
- My big frustration with skills is they're not consistently invoked
- Excellent post
- Problem: Generating code via AI may lead to skill atrophy and code I don't...
January 2026
- I keep improving my agentic feedback loop
- Prediction: Frameworks will start shipping official skills
- Problem: You want to share a skill with people using different agents, not...
- Woah, Vercel just released the React Best Practices skill
- You've probably heard of the BDD testing style, using Given, When, Then
- Problem: Our team uses many different AI coding tools, so where do we put...
- Problem: “you could have AI write/maintain your traditional E2E tests, but i...
- With agent instructions files like http://CLAUDE.md, it's tempting to add...
- Problem: I’d like to be able to check on or work with my laptop’s Claude or...
- Last month I enjoyed "Advent of Claude: 31 Days of Claude Code"
- Problem: In Claude Code, when should I create a custom slash command vs a skill
- Problem: I want Claude to use Chrome
December 2025
- AI is an accelerator
- Some people run multiple coding agents at once
- Problem: I want to run multiple agents at once
- Problem: You want to hide a component, but still preload data and remember...
- My biggest beef with Scrum: The sprint time box creates an arbitrary deadline
November 2025
- I don't need stand-ups, sprints, retrospectives, or a scrum master
- Problem: You want to enable a few specific VS Code settings for everybody
- I'm reviewing a codebase with over 750 uses of optional chaining
- Software development is simpler than it sounds
- "LLMs are trained on other people's code"
- I talk money with my developer friends
- Custom directives are getting out of control
- A few years ago I led a team of developers creating reusable software...
October 2025
- Just visited The Netherlands for the first time to speak at Techorama
- Problem: People forget to remove feature flags
- If I’m unhappy with the code AI generates, it’s probably my fault
- Two important points: 1
- Is Vibe coding effective
- I'm watching the Remix Jam stream and this little moment is interesting
- In TypeScript, I don't use screaming case for consts - it's needless because...
- People often separate React component logic via a hook
- > In sprint planning > Team has 19 story points in the sprint and a...
- "Test in prod”
September 2025
- "Because I said so." Early in my career, I asked my team lead why we had to...
- In the last week both Cursor and Copilot announced a new CLI
- Problem: Using coding with agents, it's annoying to constantly check back to...
- Imagine your team only had two environments: 1
- Problem: I want to learn while coding in a new tech
- Anyone using a Macbook Air as their dev machine
- I’m a fan of Tanstack and excited for Tanstack Start
- My 6-step approach to learning: 1
- Just implemented a feature using GitHub spec-kit
- Just found awesome-copilot
- Problem: Too many feature flags
- General rule: Feature flags should default *off* for new features
- New version of VS Code chat automatically selects the appropriate LLM model...
- A big difference between Tanstack Query and Tanstack DB: Tanstack Query is...
- How I handled React state over 10 years: 2014: Class state 2016: Redux 2018:...
August 2025
- How I routed in React over 10 years: 2014: React Router 2016: Next page...
- A portion of the React community seems to enjoy hating on Vercel
- Problem: LLMs may be trained on old docs and thus suggest outdated APIs
- Many apps are basically Excel in the browser
- "Solid is better than React." Sure
- Spending more time with Tanstack DB this week and it's finally clicking
- Claude's init command is impressive
- So I'm using Tanstack Router on another new project and I gotta say it again...
- I enjoy having my own an app that’s just for experiments
- Each time I open up an old JS project, I get dozens of breaking changes when...
- How I've fetched in React over 10 years: 2014: Fetch in componentDidMount...
- If you give a junior dev a vague task, you’ll probably get bad results
- I’m eager to see how LLM usage changes when the venture capital money dries up
- I think sync engines are the future
- How I’d pick a router in React in 2025: 1
- Wild story of working with Claude I just heard from a friend: I was coding...
- Theory: The fewer long-lived environments the better
- I'm curious - Who's doing development with just two environments
July 2025
- Just heard of a team where non-developers (such as designers and product...
- AI is supposed to make us faster coders, right
- My preferred React stack for 2025 Package manager: Bun Starter: Vite...
- When learning a new tech, I like to open PRs to improve the docs
- I'm bullish on sync engines, but I admit there's a lot of downsides to...
- "Should my web app use a sync engine?" If your web app would benefit from...
- "Developers don't write automated tests
- I've found arguing is more productive when I do 3 things: 1
- Two related, but separate ideas: 1
- After 25 years of coding I've realized there is no end to learning
- I wish more library/framework docs had a section for “Stuff we don’t do well”
- I've spent the last few weeks experimenting with different local-first /...
June 2025
- One of my favorite uses for rest/spread is creating a new object that omits...
- Shots fired
- I've never enjoyed writing CSS, but two innovations solved that: 1
- What are people using instead of Storybook these days
- 5 types of React state, and when I use each: 1
- Programming isn't easy
- Trend I'm seeing: AI app generators are a sales funnel
- Problem: Choosing technologies is hard
- Prediction: AI will replace most web app UIs
- The local-first / sync engine ecosystem is far bigger than I realized
- Confession: The last year has been hard for me
- Problem: You want to run a "real" DB in the browser
- The weird thing about 2025
- Problem: ESLint is slow on large projects with complex rules
- This can’t be real The sign of a failing organization is when everyone knows...
- "Today's LLMs are like a junior developer"
- I bought my M1 Max Macbook Pro in October 2021
- This post by Dan Abramov on "Progressive JSON" helped me understand how...
- I love Tanstack Router's type safe search params
- In a React app, declaring an ErrorBoundary at the root is common, but rarely...
- TypeScript syntax is often inspired by JavaScript
May 2025
- Seeing these two side-by-side in my timeline really sums up the current...
- My favorite things about Europe vs the USA: 1
- The rumors were true - Remix is coming back and it’s not using React
- Problem: I want to ensure my switch statement handles all potential cases
- For me, LLMs work quite well as “glorified autocomplete”
- Problem: You have complex logic for narrowing a TypeScript type that you'd...
- Woah, @tan_stack just added Tanstack DB, a sync engine that works with...
- Local-first web apps already have a big ecosystem
- Four related web app problems: 1
- Just realized Vitest now has built in support for testing TypeScript types
- Vibe coding is a leaky abstraction
- Vibe coding is the modern version of copy/pasting code you don’t understand...
April 2025
- How to write bad software: Standardize nothing
- Just converted a small test suite from Vitest to bun:test
- Tweet 1914682178857795918
Every year
2026 462025 1772024 3412023 4842022 2912021 1962020 1822019 1362018 1542017 702016 212015 132014 192013 152012 6