Essays about game development, thinking and books

Pricing model at the start of Feeds Fun monetization

Cover of the post (c) ChatGPT

Right after I started working on the pricing for Feeds Fun users, I realized I should do it in a blog post: it's almost the same amount of work, it's the ideologically right thing to do, and it should be interesting. Anyway, I was going to write an RFC — the question is purely about publicity. I'm also taking the opportunity to conduct a retrospective on the project for myself.

What is Feeds Fun

Feeds Fun is my news reader that uses LLM to tag each news item so users can create rules like elon-musk + mars => -100, nasa + mars => +100. That effectively allows filtering the news stream, cutting it down by 80-90% (my personal experience) — no black-box "personalization" algorithms like in Google or Facebook; everything is transparent and under your control.

So, meet a free-form essay on monetization of a B2C SaaS dependent on LLM — couldn't be more relevant :-D

Read more

Results of 2025 for me and my blog

Blog metrics for 2025.

Blog metrics for 2025.

The New Year is near, so it's time to sum up the results of the year. Let me tell you what I was doing in 2025, how my plans for the past year went, and what my plans are for the coming year.

Read more

LLM agents are still unfit for real-world tasks

AI agents show their work to a programmer (c) ChatGPT & Hieronymus Bosch.

AI agents show their work to a programmer (c) ChatGPT & Hieronymus Bosch.

This week, I tested LLMs on real tasks from my day-to-day programming. Again.

Read more

Want a cool open source project in your portfolio?

A plea to the universe for a humane auth proxy (c) ChatGPT & Hieronymus Bosch.

A plea to the universe for a humane auth proxy (c) ChatGPT & Hieronymus Bosch.

As a mid-journey summary of my struggles with OAuth2/OIDC, I can say this: I haven't seen such amount of abstraction leaks and half-baked implementations, as in modern open-source authentication proxies, for a very long time — if ever.

Sure, it's great that such proxies exist at all and that there's something to choose from. It's also clear that they were made by enterprise developers to cover their very specific enterprise pains — most likely as side projects alongside their main products. But still… damn.

If you ever wanted a cool open source project to show off in your portfolio, grab Rust or Go and build a small auth proxy with OIDC and OAuth2 support that simply works. Something not aimed at corporations with Kubernetes clusters, but at small companies and indie developers who need to quickly plug a functionality gap without touching their app code. The situation where you have to modify backend code just to make the proxy work is pure madness.

People will bow to you :-) Especially now, when OAuth2 has suddenly become even more essential, since it's required by the Model Context Protocol.

Read more

Ory's sketchy authentication architecture

Tiendil trying to understand how Ory works (c) ChatGPT & Hieronymus Bosch.

Tiendil trying to understand how Ory works (c) ChatGPT & Hieronymus Bosch.

I'm going to vent here — either that or shout into the void.

I've been diving into authentication a bit deeper than I wanted, and ran into the fact that what's borderline considered best practice now is having your auth proxy call out to external services to enrich the request with extra data for the backend.

For example, if you have an API that's available to both authenticated and anonymous users, Ory Oathkeeper (an auth proxy) can't add a header with the user ID: either you lock the API to authenticated users only, or you don't add the header.

The recommended "solution" is to create your own microservice (!): the proxy calls the microservice (for every request!), the microservice calls Ory Kratos (!) — the session store (among other things) — fetches the session, and returns a info for the proxy. In other words, to add one header, you chain two internal requests on every API call (or three, in theory Kratos can hit a database or cache).

That's absurd.

Read more