Marketing sites
Static HTML that renders before any script runs, a strict content policy (a list of rules for what a page may load and run) and structured data (code that tells search engines what a page is about) on every page. This site is one.
Websites & Apps
Marketing sites, web apps, native iOS and Android apps, APIs (ways for one program to use another) and data pipelines. We build them fast to load, strict about security and easy for the next developer to read. Then we hand over the repository (the code and its full history, kept in one place).
This page’s own structure, drawn at build from its HTML.
People read the top layer, crawlers follow the middle one and machines parse the bottom one.
14 headings · 53 links · 8 schema nodes
◆ BuildWhat we ship
Static HTML that renders before any script runs, a strict content policy (a list of rules for what a page may load and run) and structured data (code that tells search engines what a page is about) on every page. This site is one.
Customer portals, internal tools and dashboards. Quick to open, honest about loading, and clear about where every number came from.
iOS and Android from one Expo and React Native codebase. Logic that matters is shared with the web version and pinned by tests, so the phone and the website can’t disagree.
Serverless and edge functions (small programs a host runs only when they’re called), scheduled jobs and the APIs your front ends call. Every function checks who’s asking before it spends anything.
Daily jobs that fetch, check and store data. They record when each fact was true, and they fail loudly when a source changes shape.
Live readout
The readout below comes from your browser’s own performance APIs (the browser’s built-in tools for timing a page). We didn’t type any of the numbers. If your browser doesn’t report a metric, the field says so instead of guessing.
Shared logic
The investor app we built for ADJL Capital runs its underwriting engine on the phone. The engine files are the same ones the website runs, byte for byte, and tests hold both to the same answers.
Build guards
Every site we ship comes with checks that fail the build. Dead CSS, broken links, missing structured data, pages over budget and copy that claims what it can’t back up. Your team gets the checks along with the code.
✓ check-css
✓ check-links
✓ check-claims
✓ check-contact
✓ check-motion
✓ check-markers
✓ check-usage
✓ check-voice
✓ check-seo
✓ check-provenance
✓ check-budget
Handover
Everything needed to run it without us.
Proof
Each of these runs today.
Fair questions
Whatever fits the job. This site is Vite and plain TypeScript with no framework. The investor app is Expo and React Native. Backends run as serverless and edge functions. The scope explains each choice.
Yes. Most of the time the cheapest fix lives inside what you already have. We work in your repository, to your conventions, and leave it easier to change than we found it.
The handover is built so your own team can take it over. If you’d like us to stay on, that’s a separate written agreement with its own scope.
Start here
One paragraph is plenty. Tell us what you want built, the step that costs the most, or the page that should rank and doesn’t. If you know why the obvious fix hasn’t worked, say that too.
Daniel reads and answers these himself, usually within a day or two. No sequence, no drip, and nothing sold to anyone.