|
| 1 | +**Jerod Santo:** |
| 2 | + |
| 3 | +What up, nerds? I'm Jerod and this is Changelog News for the week of Monday, December 15th, 2025. |
| 4 | + |
| 5 | +Can you believe this is already our _final_ newsletter of the year?! Thanks for reading (and listening) along in 2025! |
| 6 | + |
| 7 | +Just like the [prior](https://changelog.news/75) [two](https://changelog.news/125) years' finales, this issue diverges from our traditional fare. I've reviewed the 49 previous editions and picked (IMHO) the coolest code, best prose & my favorite episode of _The Changelog_ from each month. |
| 8 | + |
| 9 | +Enjoy! 💚 |
| 10 | + |
| 11 | +**Break:** |
| 12 | + |
| 13 | +**Jerod Santo:** |
| 14 | + |
| 15 | +In January: Big AI datacenter investments are big. People see Spotify's "ghost artists". DeepSeek-R1 shocks and awes. |
| 16 | + |
| 17 | +Coolest code is Printercow, which transforms any USB thermal printer into a networked, HTTP-powered API endpoint so any service can send print jobs to it. If that's not *cool* I don't know what is... |
| 18 | + |
| 19 | +Best prose goes to [It’s time to bring back personal computing](https://www.vintagecomputing.com/index.php/archives/3292/the-pc-is-dead-its-time-to-make-computing-personal-again). Benj Edwards deftly describes how “surveillance capitalism and DRM turned home tech from friend to foe” by asking a litany of rhetorical questions about the past. I didn't know it at the time, but this article started a theme of coverage for us that continues to this day. |
| 20 | + |
| 21 | +And my favorite episode in January: [From open source to acquired](https://changelog.fm/625) with Ashley Jeffs. I *almost* picked Elecia White on [the world of embedded systems](https://changelog.fm/624), but hearing Ashley Jeffs' journey building and selling Benthos to Redpanda was just too much fun. The guy's a character! |
| 22 | + |
| 23 | +**Break:** |
| 24 | + |
| 25 | +**Jerod Santo:** |
| 26 | + |
| 27 | +Next up, February: The DeepSeek freakout subsides. The JavaScript trademark war heats up. Microsoft does topoconductors. |
| 28 | + |
| 29 | +Coolest code is touch grass. Rhys Kentish wanted to change the habit of reaching for his phone in the morning and doomscrolling away an hour, so he built an app to help him do just that. I didn't install it, but the fact that he made it... [I respect that](https://youtu.be/wWjJVriFL_o?t=48). |
| 30 | + |
| 31 | +Best prose: [AI is stifling tech adoption](https://vale.rocks/posts/ai-is-stifling-tech-adoption). Another trend this year was AI agents choosing tools on our behalf, which Declan Chidlow called early on: |
| 32 | + |
| 33 | +> the advent and integration of AI models into the workflows of developers has stifled the adoption of new and potentially superior technologies due to training data cutoffs and system prompt influence. |
| 34 | +
|
| 35 | +And my fav episode: [Discovering discovery coding](https://changelog.am/80) |
| 36 | + |
| 37 | +Fire up a REPL, grab your favorite Stephen King novel, and hold on to the seat of your pants! Jimmy Miller returns to reveal why, at least for some of us, discovery coding is where it’s at. |
| 38 | + |
| 39 | +**Break:** |
| 40 | + |
| 41 | +**Jerod Santo:** |
| 42 | + |
| 43 | +In March: Vibe coding is the buzzword de jour. Everyone is talking about MCP. TypeScript goes Go. |
| 44 | + |
| 45 | +Coolest code: XPipe. If you connect to a lot of remote machines often, Xpipe looks like an excellent way to organize the chaos. It’s cross-platform, has complete SSH support, and full-on file system management with lots of bells & whistles. |
| 46 | + |
| 47 | +Best prose: [Our interfaces have lost their senses](https://wattenberger.com/thoughts/our-interfaces-have-lost-their-senses). Amelia Wattenberger didn't merely write an absolute *banger*, she created a work of art. |
| 48 | + |
| 49 | +> All day, we poke, swipe, and scroll through flat, silent screens. But we’re more than just eyes and a pointer finger. We think with our hands, our ears, our bodies. |
| 50 | +> |
| 51 | +> The future of computing is being designed right now. Can we build something richer—something that moves with us, speaks our language, and molds to our bodies? |
| 52 | +
|
| 53 | +and favorite pod: [Antirez returns to Redis!](https://changelog.fm/631) |
| 54 | + |
| 55 | +Any day you get to sit down and pick the brain of Redis creator, Salvatore Sanfilippo, is a very good day, indeed. |
| 56 | + |
| 57 | +**Break:** |
| 58 | + |
| 59 | +**Jerod Santo:** |
| 60 | + |
| 61 | +Here comes April. Hackers weaponize coding agents. Google's A2A rivals MCP. Changelog Beats throws an After Party. |
| 62 | + |
| 63 | +Coolest code is Nerdlog. a fast, remote-first, multi-host TUI log viewer with timeline histogram and no central server. Loosely inspired by Graylog/Kibana, but without the bloat. Pretty much no setup needed, either. |
| 64 | + |
| 65 | +Best prose: How to build and agent, in which Thorsten Ball proves that it's not that hard to build a fully functioning, code-editing agent by walking us through the process, step by step. This post was so good it *forced* us to have Thorsten [on the show](https://changelog.fm/648) again. |
| 66 | + |
| 67 | +And favorite pod: Hello, Matworld! Every podcast we make with Mat Ryer gets crazy, but this one where Mat decided we should "each get to make up a new world where we invent a new gadget & declare a new rule" was over the top nuts. (Mat is scheduled to return to Changelog & Friends in early January, btw!) |
| 68 | + |
| 69 | +**Break:** |
| 70 | + |
| 71 | +**Jerod Santo:** |
| 72 | + |
| 73 | +That brings us to May. WSL is open source. Zed gets agentic. Entry-level jobs get wiped out. |
| 74 | + |
| 75 | +Coolest code goes to Internet Artifacts. Neal Agarwal (from neal.fun) has put together a virtual museum of Internet Artifacts, including a map of ARPANET, the first spam email, the first smiley, the first mp3, the first online pizza delivery website (which was probably earlier than you’re thinking), and much more. |
| 76 | + |
| 77 | +Best prose is I'd rather read a prompt. Clayton Ramsey, a PhD student studying C.S. at Rice University, grades students’ assignments and regularly sees ChatGPT copy pasta. So, he wrote this article as a plea to everyone (not just his students, ALL of us): |
| 78 | + |
| 79 | +> **Don’t let a computer write for you**! I say this not for reasons of intellectual honesty, or for the spirit of fairness. I say this because I believe that your original thoughts are far more interesting, meaningful, and valuable than whatever a large language model can transform them into. |
| 80 | +
|
| 81 | +And my favorite pod: [Dull, dirty or dangerous](https://changelog.am/94) |
| 82 | + |
| 83 | +We sit down with Scott Hanselman at Microsoft Build 2025 to discuss open sourcing all the things, cool stuff Windows can do, where we want (and don’t want) AI to fit into our lives, building arcade cabinets, and so much more. |
| 84 | + |
| 85 | +**Break:** |
| 86 | + |
| 87 | +**Jerod Santo:** |
| 88 | + |
| 89 | +In June. Apple redesigns it all. Vitess is coming to Postgres. Mikeal Rogers passes away. |
| 90 | + |
| 91 | +Coolest code: [Claude Code Usage Monitor](https://github.com/Maciek-roboblog/Claude-Code-Usage-Monitor) |
| 92 | + |
| 93 | +A beautiful real-time terminal monitoring tool for Claude AI token usage with advanced analytics, machine learning-based predictions, and Rich UI. Track your token consumption, burn rate, cost analysis, and get intelligent predictions about session limits. |
| 94 | + |
| 95 | +Best prose: [Write to escape your default setting](https://kupajo.com/write-to-escape-your-default-setting/) |
| 96 | + |
| 97 | +Writing is hard. Painful, even. In the past, I’ve likened publishing an essay to birthing a child. They’re both laborious journeys mired in contractions, heavy breathing, and occasional screams. My wife, who birthed six healthy children (!) on our behalf, finds the analogy lacking. She deserves to! I’d come up with a better one, but writing is hard. |
| 98 | + |
| 99 | +I guess my point is, sometimes we need motivation to do hard things. If you need some reasons to write, this post’s for you. |
| 100 | + |
| 101 | +and favorite pod: [Adventures in babysitting coding agents](https://changelog.am/96) |
| 102 | + |
| 103 | +Steve Yegge joins us fresh off a vibe coding bender so productive, he wrote a book about it. Steve tells us why he believes the IDE is dead, why babysitting AI agents is more fun than coding, when vibe coding might take over the enterprise, how software devs should approach coding agents, and what it all means for society. |
| 104 | + |
| 105 | +**Break:** |
| 106 | + |
| 107 | +**Jerod Santo:** |
| 108 | + |
| 109 | +It's now time for Sponsored News! |
| 110 | + |
| 111 | +[Your LLM is recommending VARCHAR(255). That's a problem.](https://www.tigerdata.com/blog/five-features-tiger-cli-you-arent-using-but-should) |
| 112 | + |
| 113 | +AI coding assistants are great at scaffolding apps, but they're quietly creating Postgres technical debt. `VARCHAR(255)` instead of `TEXT`. `SERIAL` instead of `BIGINT GENERATED ALWAYS AS IDENTITY`. Missing foreign key indexes. `TIMESTAMP` instead of `TIMESTAMPTZ`. These mistakes pass tests but become expensive problems at scale. |
| 114 | + |
| 115 | +Tiger Data's approach to "Agentic Postgres" tackles this head-on with three key pieces: a CLI, an MCP server, and Agent Skills. The MCP server lets Claude Code, Cursor, and other AI assistants manage your databases directly. No more context switching between terminal, browser, and IDE just to check a connection string or run a query. The real magic is in the Agent Skills: opinionated guidance modules written by senior engineers that automatically teach your AI best practices for schema design, migrations, and optimization. |
| 116 | + |
| 117 | +The killer feature? Documentation search. Their MCP server enables semantic search across PostgreSQL versions 14-18 and TimescaleDB docs, grounding AI decisions in version-specific expert docs rather than training data with outdated cutoffs. No more AI suggesting features that don't exist in your Postgres version. |
| 118 | + |
| 119 | +They've also built database forking and zero-copy clones for testing migrations or spinning up staging environments. You only pay for changed blocks, making it practical to fork production for every feature branch. |
| 120 | + |
| 121 | +Check out the post at tigerdata.com/blog, or follow the direct link in the newsletter. |
| 122 | + |
| 123 | + |
| 124 | +**Break:** |
| 125 | + |
| 126 | +**Jerod Santo:** |
| 127 | + |
| 128 | +July. Intel is in serious trouble. A human bests OpenAI's best coding model. We do a live show in Denver. |
| 129 | + |
| 130 | +Coolest code: [Job Worth Calculator](https://worthjob.zippland.com) |
| 131 | + |
| 132 | +Is your job worth the grind? This Job Worth Calculator calculates a Job Value Rating based on salary, work hours, commute time, environment, and more. |
| 133 | + |
| 134 | +Best prose: [The Game Genie Generation](https://tedium.co/2025/07/21/the-game-genie-generation) |
| 135 | + |
| 136 | +Ernie Smith refreshed his 2015 piece on Game Genie in honor of its 35th (!) anniversary. I loved everything about this piece, but I am also in the core demographic for Game Genie nostalgia, so YMMV. |
| 137 | + |
| 138 | +> July 1990, a full 35 years ago, was supposed to be the coming-out party for one of the best accessories ever created for the Nintendo Entertainment System. It made games easier, sure, but it also made them more interesting. It presented a new way of thinking about the games that you brought home. But Nintendo didn’t like it—and the company sued. That device eventually emerged, and despite the legal battle, it became a defining part of what made the NES great. |
| 139 | +
|
| 140 | +and my favorite pod: [Try harder. Ultrathink!](https://changelog.am/102) Nick Nisi joins us to discuss all the Windsurf drama, his new agentic lifestyle, whether or not he’s actually more productive, the new paper that says he maybe isn’t more productive, the reckoning he sees coming, and why we might be the last generation of code monkeys |
| 141 | + |
| 142 | +**Break:** |
| 143 | + |
| 144 | +**Jerod Santo:** |
| 145 | + |
| 146 | +In August. GitHub says farewell to having a CEO. Omarchy 2.0 takes off. Intel gets bailed out (by US taxpayers). |
| 147 | + |
| 148 | +Coolest code: OverType. a rich markdown editor that’s really just a textarea. The author calls it an “under-engineered solution.” I call it a breath of fresh-air. It works by rendering a preview pane behind the textarea and keeping the two elements perfectly aligned. |
| 149 | + |
| 150 | +Best prose goes to: [Enough (the math in the headlines)](https://benn.substack.com/p/enough) |
| 151 | + |
| 152 | +Benn Stancil *does the math* on the gobsmacking amount of money floating around Silicon Valley these days and how everyone *does the math* to see how much everyone else is worth. Benn concludes: |
| 153 | + |
| 154 | +> We don’t do the math to measure ourselves; we do the math to compare ourselves. |
| 155 | +
|
| 156 | +and my favorite pod in August: [Kaizen! Pipely is LIVE](https://changelog.am/105). Gerhard calls Kaizen 20, ‘The One Where We Meet’. Rightfully so. It’s also the one where we eat, hike, chat, and launch Pipely live on stage with friends. This was a highlight of the year for me, for sure. |
| 157 | + |
| 158 | +**Break:** |
| 159 | + |
| 160 | +**Jerod Santo:** |
| 161 | + |
| 162 | +Next up, September. Ruby drama percolates. Asciinema gets rewritten in Rust. AI coding claims don't add up. |
| 163 | + |
| 164 | +Coolest code: [VIM Master](https://github.com/renzorlive/vimmaster) |
| 165 | + |
| 166 | +This in-browser game teaches core Vim motions and editing commands through short, focused levels. |
| 167 | + |
| 168 | +Best prose: [Just enough automation](https://bevel.work/blog/just-enough-automation/) |
| 169 | + |
| 170 | +I used to try to automate everything. Eventually, I learned there are some things that just aren't worth it. But where exactly is that line? Zach Gates tried to quantify it. After a few iterations, he came up with this: Long term value equals value of the task times number of iterations of the task minus the effort of automating the task minus maintenance costs - documentation costs - mistake costs plus or minus any long term effects. |
| 171 | + |
| 172 | +Favorite pod: [Inside Oxide](https://changelog.am/110) |
| 173 | + |
| 174 | +Bryan Cantrill and Steve Tuck, the co-founders of Oxide, are on the pod live (to tape) from the stage at OxCon. Adam and I were invited to Oxide’s annual internal conference to meet the people and to hear the stories of what makes Oxide a truly special place to work right now. The best part was this on-stage discussion with Bryan and Steve. |
| 175 | + |
| 176 | +**Break:** |
| 177 | + |
| 178 | +**Jerod Santo:** |
| 179 | + |
| 180 | +It's October. npm is under siege. AWS brings the web down with it. AI writes too many articles. |
| 181 | + |
| 182 | +Coolest code: [Claudesidian](https://github.com/heyitsnoah/claudesidian) |
| 183 | + |
| 184 | +A pre-configured Obsidian vault structure that’s designed to work seamlessly with Claude Code as an “AI-powered second brain.” Obsidian and Claude Code: two great tastes that are even better together. |
| 185 | + |
| 186 | +Best prose: The Oatmeal’s Matthew Inman says [Let’s talk about AI art]([A cartoonist's review of ai art - the oatmeal](https://theoatmeal.com/comics/ai_art)) |
| 187 | + |
| 188 | + |
| 189 | +> When I consume art, it evokes a feeling. Good, bad, neutral – whatever. When I consume AI art, it also evokes a feeling. Good, bad, neutral – whatever. Until I found out that it’s AI art. |
| 190 | +> |
| 191 | +> Then I feel deflated, grossed out, and maybe a little bit bored. |
| 192 | +
|
| 193 | +I've hemmed and hawed about AI art, but I'm starting to think the right approach is to adapt my stance on other AI tools: |
| 194 | + |
| 195 | +> Use AI to *help you* think, **not** to think for you. |
| 196 | +
|
| 197 | +To the wonderful world of art and creative expression: |
| 198 | + |
| 199 | +> Use AI to *help you* make art, **not** to make art for you. |
| 200 | +
|
| 201 | +and favorite pod: [There will be bleeps](https://changelog.am/113) |
| 202 | + |
| 203 | +Mike McQuaid and Justin Searls join me in the wake of the RubyGems debacle to discuss what happened, what it says about money in open source, what sustainability really means for our community, making a career out of open source (or not), and more. Bleep! |
| 204 | + |
| 205 | +**Break:** |
| 206 | + |
| 207 | +**Jerod Santo:** |
| 208 | + |
| 209 | +In November. The alive internet theory lives. FDE is a growing role. Cloudflare brings the web down with it. |
| 210 | + |
| 211 | +Coolest code: [Continuum 93]([Continuum 93 by enthusiast guy](https://enthusiastguy.itch.io/continuum93)) |
| 212 | + |
| 213 | +> Continuum 93 is an emulator of a classic retro computer that never existed before and is designed for retro games programming in native assembly code. |
| 214 | +
|
| 215 | +Continuum 93 was recently open sourced, runs on “Windows, Mac, Linux, all 64 bit Raspberry Pi and Steam Deck”, and is created by a guy whose handle is “Enthusiast Guy”, so you know it's good. |
| 216 | + |
| 217 | +Best prose: [The overlooked power of URLs](https://alfy.blog/2025/10/31/your-url-is-your-state.html) |
| 218 | + |
| 219 | +URLs can do so much, but we don’t always use them to their full potential. In this article, Ahmad explains how URLs are even more than UI. They’re **state containers**. |
| 220 | + |
| 221 | +> We’ve built increasingly sophisticated state management libraries like Redux, MobX, Zustand, Recoil and others. They all have their place but sometimes the best solution is the one that’s been there all along. |
| 222 | +
|
| 223 | +and my favorite pod in November: [DO repeat yourself!](https://changelog.fm/666) |
| 224 | + |
| 225 | +Sean Goedecke joins us to discuss why he believes software engineers need to be involved in the politics of their organization, how to avoid worry driven development, what is “good taste” in software engineering, where agentic coding will take our industry, why getting the main thing right is so important, and how to get your blog to the top of Hacker News. |
| 226 | + |
| 227 | +**Break:** |
| 228 | + |
| 229 | +**Jerod Santo:** |
| 230 | + |
| 231 | +Lastly, December. Zig moves off GitHub. Werner Vogels predicts the future. Bun joins Anthropic. |
| 232 | + |
| 233 | +Coolest code: [Stacktower](https://stacktower.io) |
| 234 | + |
| 235 | +This is what happens when you take an XKCD joke too literally. |
| 236 | + |
| 237 | +> I’d seen it dozens of times, but for whatever reason, I looked at it differently this time. It’s not just a joke about fragile infrastructure, it’s actually a better way to visualize dependencies! |
| 238 | +
|
| 239 | +Best prose: [Vanilla CSS is all you need](https://www.zolkos.com/2025/12/03/vanilla-css-is-all-you-need) |
| 240 | + |
| 241 | +Rob Zolkos does a deep-dive into three apps from 37Signals that eschew modern build tools: |
| 242 | + |
| 243 | +> I cracked open the source code for Campfire, Writebook, and Fizzy and traced the evolution of their CSS architecture. What started as curiosity became genuine surprise. These are not just consistent patterns. They are improving patterns. Each release builds on the last, adopting progressively more modern CSS features while maintaining the same nobuild philosophy. |
| 244 | +
|
| 245 | +and my favorite episode in December (thus far): [The inner workings of Wikipedia](https://changelog.fm/668) |
| 246 | + |
| 247 | +We hear how Wikipedia actually works from long-time Wikipedian, Bill Beutler! |
| 248 | + |
| 249 | +**Break:** |
| 250 | + |
| 251 | +**Jerod Santo:** |
| 252 | + |
| 253 | +That's the news for this year! I hope you enjoyed the 49 issues/episodes we brought to you each Monday. |
| 254 | + |
| 255 | +We're always tinkering, and year was no exception. In 2025 we started a [video version](https://www.youtube.com/playlist?list=PLCzseuA9sYrcUrYCMN-uy6Dnz1_ByLT1o), added the *Developer's Dictionary* column (my favs: [graybeard](https://cdn.changelog.com/news/138-graybeard.png), [law of demeter](https://cdn.changelog.com/news/164-law-of-demeter.png), [moore's law](https://cdn.changelog.com/news/135-moores-law.png)), and experimented with Classifieds (a success, but won't be weekly). |
| 256 | + |
| 257 | +Please leave a comment and let us know what you like, what you dislike, and what we could do better next year. |
0 commit comments