Engineering notes
Articles
We write up the problems we ran into while building our own products and how we solved them, with working code.
-
Turning hotel front-office data into management reports over a read-only connection
A practical way to build trustworthy hotel management reports with a read-only SQL user, nightly snapshots and exception robots, without touching the PMS.
Read the article → -
Making a Streamlit app visible to search engines: static pages and an ASGI layer
Streamlit renders in the browser, so crawlers see an empty shell. How static content pages, per-route metadata and real 404s fix that.
Read the article → -
Building a KVKK- and GDPR-friendly cookie banner with Consent Mode v2
A default denial that runs before any Google tag, versioned stored preferences and revocable consent: a step-by-step cookie banner.
Read the article → -
Allowing a single inline script under Content Security Policy with a sha256 hash
Permit one inline script without unsafe-inline: compute the hash on the server, add it to the header and lock it with a test.
Read the article → -
Deploying a Flask app on your own server with Coolify
Ship a small Flask app on your own server with a Dockerfile, gunicorn, a persistent volume, reverse-proxy headers and environment variables.
Read the article → -
A multilingual Flask site: URL prefixes, hreflang and the sitemap
Register one view under two URL rules, pick the language from a cookie or the browser, emit hreflang and canonical correctly and build the sitemap.
Read the article → -
Notifying search engines about new and changed pages with IndexNow
The key file, batch submission in a single request, which engines take part and why Google still needs a sitemap and Search Console.
Read the article → -
Adding membership to a static site with Supabase: RLS, keys and consent
Email and password accounts on a serverless site: row level security policies, which key may live in the browser and consent-gated sync.
Read the article → -
Guard tests with pytest in Flask projects: locking rules into code
Use an app factory, a temporary database and sitemap-walking tests to make brand, SEO and privacy rules permanent.
Read the article → -
Quality assurance for AI-assisted content: gates, independent checks and quarantine
Pass model output through structural gates, verify numeric answers with an independent solver and quarantine anything doubtful before publishing.
Read the article →