Notes on building real systems
Plain, practical writing on websites, platforms, and automation for businesses in Saudi Arabia.
When to choose edge computing and when not to
The edge is not a faster server, it is a different execution model with different constraints. These are the constraints I actually hit, and when they work in your favour.
ProjectsDo not marry your architecture to one model provider
I ran the same agent system on two different model families. The goal was not saving cost, it was proving the design does not collapse if the provider changes.
ProjectsHuman approval before anything reaches the customer
The decision that most affected client trust in an automated system was not technical: everything going out passes a person first. This is how I built it so it does not become a bottleneck.
ProjectsA circuit breaker for the AI gateway
When the model gateway stops responding, a naive system keeps retrying, slowing everything and burning quota. A breaker stops early and recovers gradually.
ProjectsA validator that rejects any output without a source
The only approach that worked for me against hallucination in a production system was not prompt engineering. It was a layer that rejects any item without a traceable source.
ProjectsMulti-agent systems in production: split by responsibility, not by task
Most agent systems are split by task, which produces a layer of complexity with no benefit. The split that worked for me was by responsibility: who owns the decision, and who owns the channel.
ProjectsA private offer page instead of an attachment: what you gain
A private link tells you what an attachment cannot: whether it was opened, when, and how often. That turns your follow-up from a guess into a decision.
ProjectsTurning a vague client request into an executable scope
"I want a website" is not a plan. This is how I turn an open request into a written scope the client approves and the system records, so the argument ends before it starts.
ProjectsVisual testing that measures the DOM instead of comparing screenshots
Every guide suggests comparing screenshots. I tried it and left it, and built a check that measures the elements instead. The result: no baseline images to maintain, no flaky tests, and it catches failures screenshots cannot.
ProjectsA signed contract locks, and editing it returns it to draft
The most dangerous state in any contract system is not forgery. It is the text changing after the client agreed to it, without the client knowing. This is the rule that prevents it.
ProjectsAn audit trail the application cannot rewrite
An audit log protected by application code falls with the first bug. Moving the protection into the database took three lines, and the guarantee now survives the application being entirely wrong.
ProjectsA complete business system on Cloudflare D1: five services, one database
From a visitor opening a page to a signed contract and a scheduled instalment, across five services sharing one SQLite database at the edge. The architecture, what I chose, what I rejected, and what it cost.