Mathias Lafeldt
banner
mathias.blog
Mathias Lafeldt
@mathias.blog
Indie product engineer obsessed with dev tools & performance.

Maintainer of duckdb-rs & duckdb-go. Zig-pilled. ⚡️

🔗 mathias.blog
Pinned
Beyond excited to share that I'm now working with DuckDB Labs!

My first priority will be the DuckDB Rust client, which will receive a lot more love going forward.

🎉 🦆 ❤️
Signing a new freelance contract is always exciting. Being able to work on open source makes it doubly so.

Will share more soon. 😊
Even the smart robots are also confused by Cloudflare vs CloudFront
November 19, 2025 at 7:11 PM
When your website and monitoring provider are both deployed to Cloudflare 🙈
November 19, 2025 at 10:59 AM
At long last, I figured out how to capture exceptions inside waitUntil with Sentry \o/
November 19, 2025 at 10:06 AM
Building duckdb-rs will become a lot easier. 🚀

With DUCKDB_DOWNLOAD_LIB=1, the build script automatically downloads libduckdb and sets everything up.

No need to compile DuckDB (bundled feature) or download/configure libs manually.

github.com/duckdb/duckd...
Download pre-built DuckDB libraries by mlafeldt · Pull Request #628 · duckdb/duckdb-rs
How this works: When DUCKDB_DOWNLOAD_LIB is set, we map CARGO_TARGET_DIR to target/duckdb-download/<target>/<version>, download the matching DuckDB release archive, unzip it, and add th...
github.com
November 18, 2025 at 3:46 PM
Reposted by Mathias Lafeldt
DuckDB's website and extension installation endpoint are still intermittently down due to today's Cloudflare outage – see our status page for more details: status.duckdb.org

For a single-file PDF copy of our documentation, see our recent post.
DuckDB Status Page
status.duckdb.org
November 18, 2025 at 1:37 PM
One would assume that CI in a paid GitHub org would be faster than CI in a personal open-source project (or fork). That might not be true at all since runners/credits are shared across the org. In other words, paying less/nothing can make development faster.
November 18, 2025 at 11:19 AM
Something I'm exploring...

Building DuckDB itself with Zig (~400 lines build.zig)

A bit surprised that it can load C++ core extensions just fine. Zig uses clang, official builds use clang, macOS libc++ is the same → ABI compatible? 🤔
November 17, 2025 at 4:47 PM
"AI is awful at generating Zig code: small sample dataset and the language updates faster than the models"

Not true. The trick is to give LLMs access to a curated list of open source Zig projects, including Zig itself.

news.ycombinator.com/item?id=4594...
Open-source Zig book | Hacker News
news.ycombinator.com
November 17, 2025 at 2:53 PM
Did this to clean two sticky keys on my MacBook Pro 🧼

www.youtube.com/watch?v=cXfO...
How to Remove and Clean Sticky Keys on M1 Macbook Air Step by Step Repair (Very Detailed Fix)
YouTube video by thecollegepicker
www.youtube.com
November 16, 2025 at 11:40 AM
> The document is production-ready and includes real code examples from the actual migrations!

Claude sneaking in yet another "production-ready"
November 15, 2025 at 2:34 PM
Want: Astro app + "monolith with subdomain routing” experience that Rails/Laravel offer (one deployment unit)

Don't want: multiple Cloudflare workers deployed separately from the main app
November 14, 2025 at 4:14 PM
Surest sign of not having any users

rm -rf migrations
bun db:generate
bun db:fresh
November 14, 2025 at 3:56 PM
Reposted by Mathias Lafeldt
i wrote everything that i've been kind of nervous to write about @val.town: here's how things have been going the last three years, and read to the end for how we're hiring for two people macwright.com/2025/11/11/v...
Val Town 2023-2025 Retrospective
The whole story
macwright.com
November 11, 2025 at 5:07 PM
When telling Claude to download and unpack a zip file, it will invoke `unzip` in /tmp. It won't pass -o by default though, which causes unzip to become interactive if any unpacked file already exists, blocking the agent. It's the little (dumb) things.
November 14, 2025 at 12:34 PM
Not a Windsurf guy, but this rings true

"the engineer’s role shifts from authoring to accountability — you might not write every line, but you’re still responsible for what ships"

cognition.ai/blog/codemap...
Cognition | Windsurf Codemaps: Understand Code, Before You Vibe It
Codemaps is meant to offer a shared understanding of a system between humans and AI, enabling your AI to teach you about the code you are looking at quickly and elegantly. A codemap can be generated ...
cognition.ai
November 10, 2025 at 2:21 PM
Used Codex for porting a Rust project to Zig. Claude finished the job in 3m (one shot). Codex deleted the original source files *while* porting, then struggled to extract large const arrays from git history using a Python script. It eventually succeeded (all tests pass) after 15m.
November 9, 2025 at 1:50 PM
All right, all right. I will give it a shot.
November 4, 2025 at 5:22 PM
Clone <repo> to learn how to do <task>

remains one of the most effective ways of assisting agents
November 2, 2025 at 9:05 AM
Reposted by Mathias Lafeldt
I had a bug in my new ML-DSA implementation that caused Verify to reject all signatures. I gave up after half an hour. On a whim, I threw Claude Code at it. Surprisingly (to me!) it one-shotted it in 5 minutes.

A small case study of useful AI tasks that aren't generating code that requires review.
Claude Code Can Debug Low-level Cryptography
Surprisingly (to me) Claude Code debugged my new ML-DSA implementation faster than I would have, finding the non-obvious low-level issue that was making Verify fail.
words.filippo.io
November 1, 2025 at 6:26 PM
The Better Auth Agent is a prime example of AI slop. It immediately posted more nonsense after I asked if it's "supposed to add anything to the conversation". 🤨

github.com/better-auth/...
Reduce bundle size: extract getSession and improve tree-shaking · Issue #2964 · better-auth/better-auth
Is this suited for github? Yes, this is suited for github Is your feature request related to a problem? Please describe. We use better-auth in a serverless context. The library adds ~500 kB to our ...
github.com
November 1, 2025 at 12:20 PM
I've updated my Worklog Analyzer tool to also display the max number of hours/days per month for a given client, which helps me stay on target. 🎯

mathias.blog/tools/worklog
November 1, 2025 at 11:09 AM
Reposted by Mathias Lafeldt
Why the Zig programming language matters, when to use it, and why correctness is a system design problem, not a language problem. Interesting thoughts from @joran.tigerbeetle.com.

tigerbeetle.com/blog/2025-10...

#ziglang
Synadia and TigerBeetle Pledge $512,000 to the Zig Software Foundation
Insights, updates, and technical deep dives on building a high-performance financial transactions database.
tigerbeetle.com
October 25, 2025 at 4:27 PM
Reposted by Mathias Lafeldt
I just launched github.com/tobilg/sql-w...

It's a tiny (<10kb gzipped) wrapper around @duckdb.org WASM that can run queries interactively, and be embedded in plain HTML websites, as well as all other mayor frontend frameworks...

It's an early version, feedback warmly appreciated!
GitHub - tobilg/sql-workbench-embedded: Lightweight JavaScript library that transforms static SQL code blocks into interactive, browser-based SQL execution environments using DuckDB WASM
Lightweight JavaScript library that transforms static SQL code blocks into interactive, browser-based SQL execution environments using DuckDB WASM - tobilg/sql-workbench-embedded
github.com
October 25, 2025 at 6:01 PM
duckdb-rs bugfix of the week
October 29, 2025 at 12:57 PM