Last week
- Yesterday we talked about how cheap code is fueling an era of idiosyncratic tooling, and previously we’ve talked about the rise of spec driven development. In that second piece, we ran through some of the initial examples of spec driven development with agents: By far, the...
About a month ago
- Introduction If you want to let users call your service from their own app. This is very possible. The hard part is not generating a key. The hard part is doing the full system well. Secure storage. O...
- Introduction Clean code always mattered. But now it matters more. AI reads your code. AI writes your code. The cleaner your codebase is. The better AI understands it. The better AI writes new code tha...
about 1 month ago
- TypeScript and Rust-Analyzer support a handful of quality of life, code navigation improvements. For example, if you try to go-to-definition on a variable in your IDE, but end up clicking the trailing comma, it still navigates to the variable. let a = 10 // ^ go-to-def...
3 months ago
- Howdy folks, can you believe that the year is over? Shocking! I spent December travelling around Sri Lanka with my family, and it was incredible! I published a few pics from our trip. I managed to catch up on a long reading list and, as I do every year, I published my annual...
5 months ago
- Learn how to use the Gemini API File Search tool with JavaScript/TypeScript to build a Retrieval-Augmented Generation (RAG) system....
7 months ago
- With version 1.0 released after 2010....
8 months ago
- Discover how to effectively type the useRef hook in TypeScript for React applications that require imperative DOM manipulation. Learn best practices, common pitfalls, and practical examples, such as controlling the focus state of an input element....
- Most frontend reviews sign off clean code. But your users don’t see the code, they see the bugs you missed....
- What is the type of 2 + 2 = 4?...
- Jan Miksovsky lays out his idea for website creation as content transformation. He starts by talking about tools that hide what’s happening “under the hood”: A framework’s marketing usually pretends it is unnecessary for you to understand how its core transformation works — but...
- Meet Poltergeist: an AI-friendly universal build watcher that auto-detects and rebuilds any project—Swift, Rust, Node.js, CMake, or anything else—the moment you save a file. Zero config, just haunting productivity....
- 8/5/2025 I'm somewhat obsessed with randomised testing. AFAIK, I'm the first consultant to do Deterministic Simulation Testing for a client. But when I am approached about implementing DST we quickly realize their existing codebase isn't ready for it; DST requires significant...
9 months ago
- Peekaboo 2.0 ditches the MCP-only approach for a CLI-first architecture, because CLIs are the universal interface that both humans and AI agents can actually use effectively...
10 months ago
- A quick tip on how I use repo2txt and Google AI Studio to understand new codebases. Gemini's 1M token context window is perfect for asking questions about code....
- I hate unrecognizable URLs. If I want to go back to a specific document or page, I should be able to type the name of it in the address bar and find it in my browser history. Notion is particularly good at this, and v0 was particularly bad at it (for a while), so this is what I...
- One of my pet peeves with testing in web development is mocking. So many devs tend to be purists who insist that the unit under test should be the only thing being tested, and that's why they mock everything. In projects that use Prisma or any other ORM, developers mock the ORM...
- TypeScript's type system can play DOOM. Surely we can make it do something useful for our projects too, right?...
- I quite enjoyed this talk. Some of the technical details went over my head (I don’t know what “split 16-bit mask into two 8-bit LTUs” means) but I could still follow the underlying point. First off, Andreas has a great story at the beginning about how he has a friend with a...
11 months ago
- Sometimes you have chunks of code you need to sync. For instance, in your backend you might have some validation that you want to sync with the UI. So you write: // Please keep in sync with api/routes/create_session.py! and a corresponding: # Please keep in sync with...
- Struggling with TypeScript config objects that silently accept typos or destroy useful autocomplete? If you've defined settings for React, Node, CLIs, or any JavaScript application, you know the pain. In the next five minutes, you'll learn two powerful TypeScript keywords - as...
- I recently stumbled upon the term "vibe coding" through TikTok videos. It refers to using AI tools to generate code and drag-and-drop automation tools to handle business logic in apps. This trend leaves me with mixed feelings. While it's impressive to see people rapidly creating...
12 months ago
- One of the highlight features of Neovim 0.11 is the simplified LSP setup. My needs are pretty basic, so I moved things off the nvim-lspconfig to my configuration folder, uninstalled the plugin, and almost everything works like a charm. If you use plenty of LSPs and you...
about 1 year ago
- Building a package manager with a fast install step....
Rows per page