HNHacker News
TopNewBestAskShowJobs

WilcoKruijer

188 karma · joined February 1, 2020

https://x.com/WilcoKr/

Working on https://fragno.dev

submissionscomments
WilcoKruijer··on Ask HN: Is there any way to use workflow to control Harness?
The “ultra code” implementation of workflows in both Codex and Claude Code just don’t feel that good to me. They’re super implicit, with no clear overview of what’s going on. I’m working in this space to create a harness/platform where all workflows are automatically visualised and observable. This is really working for me.
WilcoKruijer··on Solving the 1+N Query Problem
I really believe that every engineer writing queries (even SQL) should read the FoundationDB data modeling guide [0]. It really gives an appreciation of what smart choice of primary key can do to query efficiency. With some de-normalization, joins aren’t even needed for performance.

Postgres has supported query pipelining for a long time. In my opinion, most queries should be written in such a way that sequential queries don’t have any data dependencies on the previous query at all. This speeds up applications by huge amounts.

[0] https://apple.github.io/foundationdb/data-modeling.html

WilcoKruijer··on Code-native generation of highly programmable 3D assets (2026)
This looks super interesting. I'm trying out the hosted app using "bring your own key", I've added an OpenAI key but it doesn't seem to let me generate a 3d model. It's still saying I need credits. Is this expected?
WilcoKruijer··on Benchmarking Opus 5 on SlopCodeBench
I hope the big labs will start using this benchmark in their RL pipelines. Reducing complexity in generated code should be the number 1 priority, in my opinion. The holy grail for me is models implementing features while reducing LoC (i.e., choosing the right abstractions).

What is also nice about this benchmark is that it can be used to iterate on prompts/skills for reducing code complexity.

WilcoKruijer··on You only need the frontier model for one single edit
I’ve seen people have success figuring out model reasoning by adding a required `reasoning` parameter to tool calls. Might be worth experimenting with this for the `write` tool call in a coding agent harness.
WilcoKruijer··on Don't trust large context windows
I built a very small personal extension for Pi [1] that gives me a /last command. It clears the entire session, only retaining the agent's last output message. This allows me to do manual "compaction". Basically I tell the agent something like "state the plan as discussed with references to files that should be edited", and call /last, then tell it to implement.

[1] https://pi.dev/

WilcoKruijer··on Eric Schmidt speech about AI booed during graduation
I find this a weird comment. Isn't this the same kind of out of touch? I could write:

> Kind of goes to show how out of touch and insular the Hackernews commenter sphere can be. Almost everyone I interact with in reality loves LLMs and their touted trajectory.

And it would hold mostly true for me. This goes to show we should all be aware of our respective bubbles.

WilcoKruijer··on Ask HN: What are you working on (non-AI)?
I'm working on a toolkit for building "full-stack" libraries. I.e. libraries that bundle frontend hooks, backend routes, and a database schema into a single package.

On top of this I built a library for email that listens to Resend webhooks and stores the email (with thread information) directly in the user’s database. This is a more complete package than what Resend themselves could provide with their backend-only library.

https://github.com/rejot-dev/fragno https://fragno.dev/fragments/resend

WilcoKruijer··on Idempotency is easy until the second request is different
I really hate the POST verb for RESTish APIs because it cannot be idempotent without implementing an idempotency layer. Other verbs are naturally idempotent. Has anyone tried foregoing POST routes entirely? Theoretically you can let the client generate an ID and have it request a PUT route to create new entities. This would give you a tiny amount of extra complexity on the client, but make the server simpler as a trade-off.
WilcoKruijer··on From Supabase to Clerk to Better Auth
You could almost call the comparison between Clerk and Better Auth unfair. One is a service and one is a library, apples to oranges. Any third-party service integrated into a stack is a liability, libraries as well, but to a lesser degree. It’s about time for more services to be replaced by libraries. Better Auth really shows how to do that imo, it’s a library that integrates on the frontend, backend, and database. This is why it’s so good.
WilcoKruijer··on All elementary functions from a single binary operator
From the paper:

> Everyone learns many mathematical operations in school: fractions, roots, logarithms, and trigonometric functions (+, −, ×, /, sqrt, sin, cos, log, …), each with its own rules and a dedicated button on a scientific calculator. Higher mathematics reveals that many of these are redundant: for example, trigonometric ones reduce to the complex exponential. How far can this reduction go? We show that it goes all the way: a single operation, eml(x, y), replaces every one of them. A calculator with just two buttons, EML and the digit 1, can compute everything a full scientific calculator does. This is not a mere mathematical trick. Because one repeatable element suffices, mathematical expressions become uniform circuits, much like electronics built from identical transistors, opening new ways to encoding, evaluating, and discovering formulas across scientific computing.

WilcoKruijer··on S3 Files
Mounting S3 buckets seemed like a great way to make stateless applications stateful for a while, which sounds appealing, especially for agent-like workloads. Handling conflicts like this means you really have to approach the mounted bucket as separate stateful thing. Seems like a mismatch to me.
WilcoKruijer··on Dropping Cloudflare for Bunny.net
They have Durable Objects which should be enough for most use cases (it’s SQLite with no limitations). Have you tried that?
WilcoKruijer··on Can AI agents build real Stripe integrations? We built a benchmark to find out
I've seen that agents can build real, working, Stripe integrations. But not necessarily correct ones. I've seen it do non-idempotent database operations in webhook handlers and also call Stripe APIs as a side-effect in synchronous flows.

Agents grind until the integration works in the happy path, but the devil is in the details as always.

WilcoKruijer··on Apple Studio Display and Studio Display XDR
> Studio Display XDR replaces Pro Display XDR

How does a 5k display replace a 6k display? Are they giving up on 6k? Disappointing.

WilcoKruijer··on Beyond agentic coding
I experimented with a command for atomic commits a while ago. It explicitly instructed the agent to review the diff and group related changes to produce a commit history where every HEAD state would work correctly. I tried to get it to use `git add -p`, but it never seemed to follow those instructions. Might be time for another go at this with a skill.
WilcoKruijer··on Beyond agentic coding
> You could take an editor session, a diff, or a pull request and automatically split it into a series of more focused commits that are easier for people to review. This is one of the cases where the AI can reduce human review labor

I feel this should be a bigger focus than it is. All the AI code review start up are mostly doing “hands off” code review. It’s just an agent reviewing everything.

Why not have an agent create a perfect “review plan” for human consumption? Split the review up in parts that can be individually (or independently) reviewed and then fixed by the coding agent. Have a proper ordering in files (GitHub shows files in a commit alphabetically, which is suboptimal), and hide boring details like function implementations that can be easily unit tested.

WilcoKruijer··on GPT-5.3-Codex
Yes, you’re right for 4.5 and 5.2. Hence they’re focusing on improving the opposite thing and thus are actually converging.
WilcoKruijer··on Company as Code
The DSL described in this post really resonates with me. I recently worked on a programming language that uses similar structures [0]. It lets the user define entities and their shape (Role, OrganisationalUnit, Person in this post) and entries for those entities. It contains a small scripting API that can be used to derive information from these "facts". Company as code could definitely be implemented on top of this.

[0] https://thalo.rejot.dev/blog/plain-text-knowledge-management

WilcoKruijer··on Ask HN: Do you also "hoard" notes/links but struggle to turn them into actions?
I’ve recently started using a similar process to what you’re describing. It basically involves writing/speaking to AI in an unstructured manner, and having it extract entries for my knowledge base based on a certain schema. I built a tool to validate the entries to the schema, giving the AI a feedback loop so it can automatically fix/improve the entries. It also supports linking. I use agentic search in both entering and finding knowledge. Links, categories and metadata help the AI tremendously in finding relevant snippets. I go into more detail in this blog post [0].

[0] https://thalo.rejot.dev/blog/plain-text-knowledge-management

WilcoKruijer··on Tree-sitter vs. Language Servers
In this context you could say that CST -> AST is a normalization process. A CST might contain whitespace and comments, an AST almost certainly won't.

An example: in a CST `1 + 0x1 ` might be represented differently than `1 + 1`, but they could be equivalent in the AST. The same could be true for syntax sugar: `let [x,y] = arr;` and `let x = arr[0]; let y = arr[1];` could be the same after AST normalization.

You can see why having just the AST might not be enough for syntax highlighting.

As a side project I've been working on a simple programming language, where I use tree-sitter for the CST, but first normalize it to an AST before I do semantic analysis such as verifying references.

WilcoKruijer··on EU–INC – A new pan-European legal entity
Isn't the notary there to take note of the shadiness of buying in cash and, if shady enough, abolish the transfer?
WilcoKruijer··on Ask HN: How are you doing RAG locally?
There are actions that don't require cursor position, like document/workspace symbols, that could be useful.
WilcoKruijer··on OLED, Not for Me
To be honest, it’s probably the worst 6k monitor out there, but I’m still enjoying it. I got it basically before any reviews were out and I initially thought I had a defective model. The matte coating is pretty bad, and the screen being darker near the edges is also very noticeable when you look for it. It’s also 60hz which is pretty disappointing.

With all that said, I would still recommend it over anything not retina.

WilcoKruijer··on OLED, Not for Me
Totally agree. I’ve been using the Asus ProArt PA32QCV (6k monitor) for the past few months, and it has been great for coding. It’s about 220 PPI, or what Apple calls “retina”.
WilcoKruijer··on Ask HN: What's your preferred digital payment method?
What are you referring to when you say SEPA? Like Direct Debit / Credit Transfers initiated over FINTS or EBICS?
WilcoKruijer··on Ask HN: What's your preferred digital payment method?
iDEAL is great from a usability perspective, but sadly offers no consumer protection at all. It’ll be interesting to see how WERO will take over from iDEAL and what extra features we’ll get.
WilcoKruijer··on Ask HN: What's a standard way for apps to request text completion as a service?
MCP has a feature called sampling which does this, but this might not be too useful for your context. [0]

In a project I’m working on I simply present some data and a prompt, the user can then pipe this into a LLM CLI such as Claude Code.

[0] https://modelcontextprotocol.io/specification/2025-06-18/cli...

WilcoKruijer··on Ask HN: What skills do you want to develop or improve in 2026?
I did the same last year and I’m having a lot of fun. Good luck!
WilcoKruijer··on Ask HN: What did you lose forever because you had no backup?
My old Twitter account: posts/following/followers. Not long before Elon Musk took over the company, I was prompted for my age in the app. I decided to comply and got banned. Apparently I was less than 13 years old when I created the account, and they retroactively ban for that. Mind you there was no law in my jurisdiction about using social media at a young age, at the time. Still sad about that.
Page 1 of 2Next →