Blog

Notes about architecture, product and operations written from real projects. Publish generates this index from each post, date, summary and tags so the first choice is the category.

8 articles Render and Publish Shared rendering, library/service decisions, publishing, privacy and published diagrams. 14 articles Platform and Services Reusable primitives, product-aware services, live registry and operational context inside each surface. 9 articles Ultimate Porra A real pool app evolving through data, admin, voting, bonuses, live state, games and access. 5 articles Security and Operations Edge protection, hardening, multi-tenant email, 2FA and public boundaries before inviting users.

Latest Entries

2026-06-29 A knockout vote can no longer stop at 90 minutes

Ultimate Porra stopped treating a knockout prediction like a scoreline with hidden extras. Once advancement depends on penalties, scorer identity, and visible scoring breakdown, the vote has to model the full path of the match.

2026-06-28 Official sync can no longer be a blind reimport

Ultimate Porra stopped treating official tournament changes like a reimport that simply lands on top of the product. Once votes and leaderboards exist, sync needs scope, memory, and reversibility.

2026-06-27 The official state can no longer be a browser guess

Ultimate Porra stopped reconstructing official truth inside the client. Standings, canonical team names, and correction history had to become explicit shared contracts.

Quick Paths

Blog Thread

flowchart LR render["Shared render"] --> publish["Publish"] publish --> platform["Platform"] platform --> ops["Operations"] platform --> product["Real product"] ops --> public["Public surface"] product --> live["Live product"]

The blog follows one line: reduce technical debt, turn repeated pieces into platform, and close operations, security and public experience when products start sharing infrastructure.

Article format

Each entry uses portable Markdown with diagrams, tables, alerts, columns and collapsible blocks. The goal is technical documentation, not a purely linear post.