<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: WilcoKruijer</title><link>https://news.ycombinator.com/user?id=WilcoKruijer</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 10 Apr 2026 14:49:24 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=WilcoKruijer" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by WilcoKruijer in "S3 Files"]]></title><description><![CDATA[
<p>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.</p>
]]></description><pubDate>Wed, 08 Apr 2026 07:56:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47686853</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=47686853</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47686853</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Dropping Cloudflare for Bunny.net"]]></title><description><![CDATA[
<p>They have Durable Objects which should be enough for most use cases (it’s SQLite with no limitations). Have you tried that?</p>
]]></description><pubDate>Tue, 07 Apr 2026 15:01:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47676481</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=47676481</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47676481</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Can AI agents build real Stripe integrations? We built a benchmark to find out"]]></title><description><![CDATA[
<p>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.<p>Agents grind until the integration works in the happy path, but the devil is in the details as always.</p>
]]></description><pubDate>Thu, 05 Mar 2026 09:55:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47259759</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=47259759</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47259759</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Apple Studio Display and Studio Display XDR"]]></title><description><![CDATA[
<p>> Studio Display XDR replaces Pro Display XDR<p>How does a 5k display replace a 6k display? Are they giving up on 6k? Disappointing.</p>
]]></description><pubDate>Tue, 03 Mar 2026 14:51:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47233252</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=47233252</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47233252</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Beyond agentic coding"]]></title><description><![CDATA[
<p>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.</p>
]]></description><pubDate>Sun, 08 Feb 2026 16:21:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46935680</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46935680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46935680</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Beyond agentic coding"]]></title><description><![CDATA[
<p>> 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<p>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.<p>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.</p>
]]></description><pubDate>Sun, 08 Feb 2026 11:44:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=46933433</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46933433</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46933433</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "GPT-5.3-Codex"]]></title><description><![CDATA[
<p>Yes, you’re right for 4.5 and 5.2. Hence they’re focusing on improving the opposite thing and thus are actually converging.</p>
]]></description><pubDate>Thu, 05 Feb 2026 21:11:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46905385</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46905385</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46905385</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Company as Code"]]></title><description><![CDATA[
<p>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.<p>[0] <a href="https://thalo.rejot.dev/blog/plain-text-knowledge-management">https://thalo.rejot.dev/blog/plain-text-knowledge-management</a></p>
]]></description><pubDate>Thu, 05 Feb 2026 15:02:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=46900384</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46900384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46900384</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Ask HN: Do you also "hoard" notes/links but struggle to turn them into actions?"]]></title><description><![CDATA[
<p>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].<p>[0] <a href="https://thalo.rejot.dev/blog/plain-text-knowledge-management">https://thalo.rejot.dev/blog/plain-text-knowledge-management</a></p>
]]></description><pubDate>Sat, 31 Jan 2026 08:27:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46834630</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46834630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46834630</guid></item><item><title><![CDATA[A knowledge management system inspired by plain-text accounting]]></title><description><![CDATA[
<p>Article URL: <a href="https://thalo.rejot.dev/blog/plain-text-knowledge-management">https://thalo.rejot.dev/blog/plain-text-knowledge-management</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46807154">https://news.ycombinator.com/item?id=46807154</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 29 Jan 2026 08:04:10 +0000</pubDate><link>https://thalo.rejot.dev/blog/plain-text-knowledge-management</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46807154</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46807154</guid></item><item><title><![CDATA[Show HN: Thalo – A "programming" language for structured knowledge]]></title><description><![CDATA[
<p>Hi HN, I've been building Thalo, a plain-text format for structured knowledge. It's designed to be human-readable and version-controlled, while giving tools and AI just enough structure to work with it. It's inspired by plain-text accounting tools such as Beancount.<p>The format is simple: you define your entities (e.g. opinions, book reviews, facts) including type definitions for metadata fields. Then you write entries that the CLI validates against your schema. The value is the feedback loop: LLMs can easily extract information from unstructured text, but they need validation to make the data high quality. Thalo's "compiler" provides these rules.<p>Example:<p><pre><code>  2026-01-08T14:30Z create book-review "Designing Data-Intensive Applications" ^ddia #book 
    rating: "5" 
    author: "Martin Kleppmann"

    # Summary
    The definitive guide to distributed systems and data architecture. Dense but essential.
</code></pre>
(In this example, ^ddia is a stable link identifier that can be used to reference this entry)<p>It's really up to the user how to use it. Some ways I'm using it:<p>- End of day journaling: blurt out thoughts, let AI extract insights, facts.<p>- Organizing my knowledge: using previous "content" I've written (blog posts, websites, my CV) to extract insights.<p>- Processing commits I've made to keep a living record of my work.<p>Because it's all plain-text, it allows you to open your knowledge base in any text editor or in Claude Code to do agentic search and analysis. I hooked up a simple Telegram bot to answer questions.<p>The tooling includes a CLI for validation, an LSP with completions and go-to-definition, a VS Code extension, and a Prettier plugin. There's also a simple scripting API that allows you to loop over entries and use the visitor pattern to traverse your knowledge base or write new rules.<p>I'd love to hear what use cases people come up with. Let me know what you think!<p>- Code (MIT): <a href="https://github.com/rejot-dev/thalo" rel="nofollow">https://github.com/rejot-dev/thalo</a><p>- Landing Page: <a href="https://thalo.rejot.dev">https://thalo.rejot.dev</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46730382">https://news.ycombinator.com/item?id=46730382</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 23 Jan 2026 09:29:42 +0000</pubDate><link>https://github.com/rejot-dev/thalo</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46730382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46730382</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Tree-sitter vs. Language Servers"]]></title><description><![CDATA[
<p>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.<p>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.<p>You can see why having just the AST might not be enough for syntax highlighting.<p>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.</p>
]]></description><pubDate>Thu, 22 Jan 2026 18:32:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46723294</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46723294</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46723294</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "EU–INC – A new pan-European legal entity"]]></title><description><![CDATA[
<p>Isn't the notary there to take note of the shadiness of buying in cash and, if shady enough, abolish the transfer?</p>
]]></description><pubDate>Wed, 21 Jan 2026 20:44:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46711295</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46711295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46711295</guid></item><item><title><![CDATA[FoundationDB's versionstamps should be everywhere]]></title><description><![CDATA[
<p>Article URL: <a href="https://fragno.dev/blog/versionstamps">https://fragno.dev/blog/versionstamps</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46706808">https://news.ycombinator.com/item?id=46706808</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 21 Jan 2026 15:14:49 +0000</pubDate><link>https://fragno.dev/blog/versionstamps</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46706808</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46706808</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Ask HN: How are you doing RAG locally?"]]></title><description><![CDATA[
<p>There are actions that don't require cursor position, like document/workspace symbols, that could be useful.</p>
]]></description><pubDate>Thu, 15 Jan 2026 15:42:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46634123</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46634123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46634123</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "OLED, Not for Me"]]></title><description><![CDATA[
<p>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.<p>With all that said, I would still recommend it over anything not retina.</p>
]]></description><pubDate>Sat, 10 Jan 2026 19:56:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46569330</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46569330</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46569330</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "OLED, Not for Me"]]></title><description><![CDATA[
<p>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”.</p>
]]></description><pubDate>Sat, 10 Jan 2026 13:18:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46565496</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46565496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46565496</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Ask HN: What's your preferred digital payment method?"]]></title><description><![CDATA[
<p>What are you referring to when you say SEPA? Like Direct Debit / Credit Transfers initiated over FINTS or EBICS?</p>
]]></description><pubDate>Sat, 10 Jan 2026 13:04:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46565373</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46565373</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46565373</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Ask HN: What's your preferred digital payment method?"]]></title><description><![CDATA[
<p>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.</p>
]]></description><pubDate>Sat, 10 Jan 2026 13:03:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46565367</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46565367</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46565367</guid></item><item><title><![CDATA[New comment by WilcoKruijer in "Ask HN: What's a standard way for apps to request text completion as a service?"]]></title><description><![CDATA[
<p>MCP has a feature called sampling which does this, but this might not be too useful for your context. [0]<p>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.<p>[0] <a href="https://modelcontextprotocol.io/specification/2025-06-18/client/sampling" rel="nofollow">https://modelcontextprotocol.io/specification/2025-06-18/cli...</a></p>
]]></description><pubDate>Sat, 10 Jan 2026 12:53:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46565296</link><dc:creator>WilcoKruijer</dc:creator><comments>https://news.ycombinator.com/item?id=46565296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46565296</guid></item></channel></rss>