Case study / Self-initiated work
Building Drimini's first website.
We needed a credible public front door before we had client logos, case studies, or a finished company around it. So we made the constraints visible and treated the website as the first piece of proof.
- Project
- Drimini's own website
- Status
- Live and operated
- Released
- October 2026
- Stack
- Astro, TypeScript, Cloudflare Pages, D1
The constraint
Build trust without pretending trust already existed.
The primary reader is a CTO considering an external team for difficult work. At launch, Drimini had no customer results, approved team roster, service packages, or finished visual identity to lean on. The site had to explain the offer clearly while refusing the usual shortcuts: fake scale, decorative AI claims, invented proof, or a contact form that went nowhere.
The working loop
Frame. Build. Harden.
- 01 / Frame
Make the decision surface small.
We fixed one reader, one primary action, three capability areas, and a direct voice. Static delivery, no analytics, and no CMS kept the technical surface proportional to a small launch site.
- 02 / Build
Ship the whole path, not a facade.
Astro produces a JavaScript-free homepage. The contact route uses a narrow same-origin function, Turnstile, server-side validation, and D1 storage. A local authenticated command handles inbox review; there is no public admin surface.
- 03 / Harden
Test the risks the site actually has.
The backend fails closed when storage or spam protection is missing. Automated checks cover submission behavior, the inbox lifecycle, narrow layouts, page weight, and WCAG 2.2 AA-detectable issues. A human submission was exercised from receipt through permanent deletion.
Decisions left visible
Small does not mean vague.
No client-side application shell
The homepage needs content and navigation, so it ships no browser JavaScript.
No automatic email pipeline
Enquiries land in D1. A person reviews them and replies through the existing mailbox.
No public admin page
Inbox access stays behind authenticated Cloudflare tooling instead of creating another attack surface.
No invented maturity
The provisional logo, missing client proof, and remaining company decisions stay labeled as such.
Current outcome
A live, owned starting point.
The site is live at drimini.com. Its enquiry path has been verified end to end, its operating routine has an owner, and its automated behavior and accessibility checks run before release.
What this does not prove: client results, market demand, or how the system behaves at a scale it has not reached. Those require future evidence.