Working with Codex / ChatGPT
The hoodie stays: turning my mascot into a reusable Codex skill
A generated character only becomes an identity when it survives the next prompt. I turned one navy-hoodie mascot, two successful references and a --manga switch into a small reusable Codex skill.
11 Sep 2026
·
5 min read
Building this site in public
Systems in Motion: a visual identity of my own
A new identity for my portfolio, writing, and independent products: graphite, electric blue, and a moving Z inspired by event-driven systems. The design choices, reusable article templates, and engineering constraints behind it.
9 Sep 2026
·
5 min read
Security and privacy, in practice
A fourth host on the same jar: taking my kanban board off localhost
My kanban board had no authentication at all and handed its entire database to any caller. Putting it on focus.zakaria.lu meant a fourth host on the jar that was already running - plus a disclosure bug caught in review, and one cookie dot that 500'd every sign-in.
30 Jul 2026
·
8 min read
Building this site in public
Verifying a domain in Google Search Console — the DNS TXT gotcha
A Domain property covers your apex and every subdomain from a single DNS TXT record — if you place it right. Here is the split-field mistake that fails the first verify, and the one command that catches it before you click.
17 Jun 2026
·
4 min read
Building this site in public
llms.txt: robots.txt for the age of AI agents
AI agents are a new kind of reader, and they don't want your rendered HTML. llms.txt is a tiny Markdown convention that hands them a clean index instead. Here's what it is, why it matters now, and how I wired it into my own Spring Boot site, with one URL path serving two different files by host.
14 Jun 2026
·
5 min read
Building this site in public
One Spring Boot jar, two hosts: a gated SPA and a public blog
How I added a public, server-rendered blog to a login-gated CV site without a second app or container — one jar, two hostnames, and a host-dispatch filter.
14 Jun 2026
·
3 min read