CTCarl Tracy
A challenge

Something falls through this page that is not noise. Catch it and it opens somewhere.

Clue: The Net, 1995. The rest is in the code — view source.

Manchester, UK · available for small projects

I build websites thatload fast and saywhat they mean.

A property company's site, a tool that locks a password away until a date I chose, and a lookup table for a game I play too much. Small things, finished properly. Each one below has a live preview — look around before you decide whether to open it.

See the work

4 projects ·3 live

Selected work

Four things, each with its reasoning attached.

Look around — 4 screens

  • Bodrum Property Group: Hero — the founder's photo replaced a stock image early on, and the page got noticeably more credible for it.
    Hero — the founder's photo replaced a stock image early on, and the page got noticeably more credible for it.
  • Bodrum Property Group: The Back to Back strategy section, added once it was clear visitors needed the model explained before the numbers meant anything.
    The Back to Back strategy section, added once it was clear visitors needed the model explained before the numbers meant anything.
  • Bodrum Property Group: Past Properties. Started as placeholders, then real photographs at real prices.
    Past Properties. Started as placeholders, then real photographs at real prices.
  • Bodrum Property Group: Contact — a Formspree endpoint, so the static site takes enquiries without a backend.
    Contact — a Formspree endpoint, so the static site takes enquiries without a backend.
01Live

Bodrum Property Group

A property investor's shopfront, built as one file.

A Manchester property investment company needed a site that looked established on day one and could be edited by hand a year later. It is a single HTML file on shared hosting — no CMS, no build step, nothing to patch.

Year
2026
Role
Design and build
Client
Ceyhan Sarac, Bodrum Property Group
  • HTML
  • CSS
  • Vanilla JS
  • Formspree
  • GoDaddy

Look around — 4 screens

  • Time-Lock Vault: Sealing a vault — enter a secret or generate one, then set the date it becomes openable.
    Sealing a vault — enter a secret or generate one, then set the date it becomes openable.
  • Time-Lock Vault: The trust-model box. Moved out of a collapsed panel and made red, because nobody was reading it where it was.
    The trust-model box. Moved out of a collapsed panel and made red, because nobody was reading it where it was.
  • Time-Lock Vault: Ladder mode — gaps of 1,2,3,4,5,6 days then 7 forever. The sum is exactly three weeks, so every release lands on the same weekday.
    Ladder mode — gaps of 1,2,3,4,5,6 days then 7 forever. The sum is exactly three weeks, so every release lands on the same weekday.
  • Time-Lock Vault: Opening a cipher from a backup email, and the log that tracks the gap between openings rather than a streak.
    Opening a cipher from a backup email, and the log that tracks the gap between openings rather than a streak.
02Live

Time-Lock Vault

A password you cannot get back until the date you chose.

Encrypts a secret against a future round of the drand randomness beacon, so the key to open it does not exist anywhere until that date arrives. No server, no account, no override — including for me. Built to moderate my own Steam habit; in daily use since August.

Year
2026
Role
Concept, design and build
  • HTML
  • tlock-js
  • drand
  • esbuild
  • localStorage

Look around — 3 screens

  • Rivals S9 Team-Up Lookup: The hero picker. Tap whoever your teammates locked in.
    The hero picker. Tap whoever your teammates locked in.
  • Rivals S9 Team-Up Lookup: Tap three teammates and the red panel answers it — every ability unlocked, and which hero has to equip each one.
    Tap three teammates and the red panel answers it — every ability unlocked, and which hero has to equip each one.
  • Rivals S9 Team-Up Lookup: Below that, the full season 9 reference, filterable down to just your mains.
    Below that, the full season 9 reference, filterable down to just your mains.
03Live

Rivals S9 Team-Up Lookup

A lookup table for a thing I was tired of looking up.

Marvel Rivals hides its team-up abilities behind a menu you cannot open during hero select, which is the only moment you need them. This is a single page that answers the question in about two seconds: tap who your team picked, see what unlocks and who has to equip it.

Year
2026
Role
Everything
  • HTML
  • CSS
  • Vanilla JS
  • localStorage
not deployed yet

In progress — no preview yet

04In progress

Home Barber

Next up — a booking-shaped site for cutting hair at home.

A site for home barbering: what the service is, what it costs, and a way to book a slot without a phone call. Not started yet — this page exists so the thinking has somewhere to go before the building does.

Year
2026
Role
Design and build
  • Astro
  • TBC

Approach

I build by recursive improvement.

Ever-increasing functionality, style, ease of use and quality of life — each pass building on the last one rather than replacing it. The order below is not decorative. Functionality is the key; the other three are what you layer onto something that already works.

  1. 01

    Functionality

    This is the one that matters. Every pass has to leave something that does more than it did before — otherwise it is not a pass, it is redecoration. Nothing below gets traded against this one.

    Everything else builds on this
  2. 02

    Style

    Applied to a thing that already works, never instead of one. The Bodrum stat figures were gold on light because gold was the brand colour; they went navy because nobody could read them. Style that costs legibility is not style.

  3. 03

    Ease of use

    The Time-Lock Vault's safety note was written, correct, and sitting inside a collapsed panel nobody opens. Moving it changed no logic and made it work for the first time. If people cannot find it, it is not there.

  4. 04

    Quality of life

    The last layer, and the one that decides whether something gets used a year later. Remembering your mains between games. Not needing a login. Opening by double-click because there is no build step to run first.

The refinement timeline on every project page is what this looks like in practice — not a changelog bolted on afterwards, but the record of each pass and what it replaced.