Skip to content
All work In-Progress

Octadots

The site for Octadots, the AI-automation service PRAGMACS sells to operations teams. A single page that explains the offer in plain terms, with real-time 3D scenes, a contact form that runs on a Cloudflare Worker, and legal pages, all built and deployed end to end.

Oct 2026
Launched
None, all drawn in code
3D models downloaded
None
Browser storage
Engagement
Own venture
My role
Designer and developer at PRAGMACS
Timeline
Oct 2026
Built with
TypeScript · Vite · three.js
  • TypeScript
  • Vite
  • three.js
  • GSAP
  • Cloudflare Workers

What it is

Octadots is the name PRAGMACS, my agency, uses for one offer: we design, build and run AI agents for the operations team at a 20 to 200 person company. Lead follow-up, ticket triage, invoice chasing, onboarding, the weekly report. Not a self-serve product; the call to action is a 30-minute call.

The site had to do two jobs at once. It had to look like a studio that is serious about craft, and it had to be clear enough that a finance manager who has never heard of an “agent” understands what they would be buying and what the first step costs them.

Selling a service, not a platform

A platform pitch (a product name, a demo button, “one layer for your entire business”) doesn’t fit a service you book by phone. So the copy is written around who the buyer is and what changes for them:

  • Four named jobs. “The Old Way” shows copy-paste admin, leads that go cold, one inbox with no triage, and unpaid invoices, each with what an agent does in their place.
  • A process, not a promise. Audit, pilot, then ongoing support only if the pilot paid off. Each step is quoted per project, and the page says so.
  • Security in plain words. Access scopes, human approval for anything sensitive such as a refund or a payment, an activity log, and providers named in writing before a pilot.
  • No invented proof. There are no pilot results to show yet, so the three stat slots state commitments instead of results: a reply within one business day, a 30-minute discovery call, no fixed fees. A measured result goes in only when a client’s numbers and their permission exist.

Real-time 3D that doesn’t weigh the page down

The hero mark, the Old Way scene, the Flowmind tile cluster, the agent devices and the workflow shapes are all three.js. The mark is eight extruded pieces generated from the logo’s own geometry, and the textures are drawn on canvases at load, so no 3D model or texture file is downloaded for any of it.

The cost of that much 3D on one page is paid in how it renders:

  • One shared renderer. A single hidden WebGL context draws every view and copies the result into an in-flow canvas, so one context serves the whole page.
  • Only what is on screen. A view renders only while it is visible and either moving or changed. Phones get lighter geometry and a lower pixel ratio.
  • Scroll-driven. Lenis and GSAP ScrollTrigger pin The Old Way and scrub its loop as you scroll, with an autoplay fallback on touch.
  • A flat fallback. If WebGL is unavailable, the 3D views swap for plain CSS ones and the page still reads in full.

A contact form that is defended on the server

The form posts to a Cloudflare Worker that serves the static site and owns /api/*. The Worker checks a signed, single-use time token, a honeypot, the request origin, per-address and per-IP caps, duplicate and link limits, an allowlist for the area field and a body size cap before it hands anything to the mail service. The page itself keeps nothing in the browser: no cookies, no local storage, which is what its privacy policy says and what the code does.

Where it stands

Live since 10 October 2026. It is a new service with no client results to publish yet, and the page says as much by not pretending otherwise. The next work is a live end-to-end test of the enquiry form and a scroll check of the pinned sections on real phones.