How this site is built

Last updated 9 November 2026

I build sites for a living, so this one is built the way I'd build yours. Here's what's under it.

The code

React 19 and TypeScript, built with Vite and styled with Tailwind CSS 4.

Every page is also written out as plain HTML when the site is built. It reads fine before any JavaScript runs, and search engines and AI assistants see the whole page, not an empty shell.

Where it lives

GitHub Pages hosts it. Cloudflare runs the address and the contact form, which checks you're a person with Turnstile before a message reaches me. Email runs on Google Workspace.

Speed

  • The fonts are hosted here, not borrowed from another site, and they don't hold up the first paint.
  • The moving wall on the home page waits until the page has drawn, and the 3D watch only loads when it's needed.
  • Speed is measured on real visits, not just in a lab test: every page reports its Core Web Vitals to my analytics.

Measurement you choose

Every visitor, wherever they are, picks how much this site measures: essential only, analytics without ads, or everything. Nothing from Google, Meta or Microsoft loads before that choice, and each loads only for what it was allowed. Google runs in its strictest consent mode, Clarity is told the choice, and the Meta Pixel waits for a yes to ads. Taking a yes back deletes the cookies it set.

Underneath runs the site's own anonymous count: pages, taps, how far people read and how long they stay, added up per day for each page and each ad, with no cookie and nothing that identifies anyone. So the site still knows which pages and ads work, even when someone says no to everything else.

The three buttons look the same on purpose: a weaker “no” is the dark pattern regulators fine. India's data protection rules ask for this kind of consent from May 2027; this site does it now. What you type in the contact form stays on your device until you press Send, and if you came from one of my ads, the form asks separately, with an unticked box, before Meta and Google are told about an enquiry. The privacy page lists everything.

For search engines and AI assistants

  • Every page carries structured data that Google can read.
  • The sitemap's dates only change when a page's words, links, images or data really change.
  • llms.txt gives AI assistants a plain-text map of the site.
  • The blog has an RSS feed.

Motion and 3D

If your device asks for less motion, the moving parts stay still.

The 3D watch runs on three.js, from a model prepared in Blender. Some blog covers are modelled and rendered in Blender too.

Want one like it?

This is the kind of work I take on. See what it costs on Work with me.

Start
something.

Based in India · IST (UTC+5:30) · Works remotely

Or write it here:

Which describes you?

Goes straight to my inbox, with the page you came from.

Your draft stays on this device until you send it. Until then I only see rough labels, like a budget range or a job search. Privacy

Prefer email? hello@smithmankar.co.in · LinkedIn