Thomas Cheesman

Thomas Cheesman · Grande Prairie, Alberta · remote

I run a nonprofit’s website, and I hold it to a written standard.

I have run the website for a volunteer nonprofit housing society since 2023, and built three more sites from scratch, each a different design. I set the objectives, design the thing, and then build it with help writing by AI. After seventeen years managing cooks, a team of AI is the straightforward part; knowing how to tell it is not.

I am looking for remote work running a nonprofit’s website and digital operations. What working with me looks like.

See the projects Get in touch

The build ledgerEach column is one numbered handoff, the file that passes this site’s work from one session to the next, oldest on the left. Each line is an item a handoff left open, running from the handoff that opened it to the one that closed it, in bands by workstream. Lines still open run to the right edge; dotted ones are parked on purpose or waiting on me. The bottom band, traps, has one line per mistake a session wrote down for the next: from the handoff that recorded it to the one that retired it or moved it into code, with a dot at each session where it helped.00100300500700901101301501701902102302502702903103303503703904104311 Sep161819202122242526272829301 Oct234689PLANCOPYDESIGNPROJECTSA11YINFRADOMAINTRAPS The build ledgerEach row is one numbered handoff, the file that passes this site’s work from one session to the next, oldest at the top. Each line is an item a handoff left open, running from the handoff that opened it to the one that closed it, in bands by workstream. Lines still open run to the bottom edge; dotted ones are parked on purpose or waiting on me. The right-hand band, traps, has one line per mistake a session wrote down for the next: from the handoff that recorded it to the one that retired it or moved it into code, with a dot at each session where it helped.00100200300400500600700800901001101201301401501601701801902002102202302402502602702802903003103203303403503603703803904004104204311 Sep12161819202122242526272829301 Oct234689PLANCOPYDESIGNPROJECTSA11YINFRADOMAINTRAPS

001 From a standing start to a live site on tc-ventures.ca.

002 I read the copy that was already public and ruled on every block; all four pages were rewritten.

003 A voice pass, a second résumé rebuild and the contact page. The rewrite before it was confirmed live, byte for byte.

004 Copy fixes from my own corrections, a third résumé pass, a new home-page lede, and scouting data for a graph demo.

005 I chose where the graph demo goes and that it is 3D; it was built and tested locally.

006 I annotated the previous handoff and handed it back; every ruling in it was acted on the same day.

007 The first real deploy: pushed to GitHub, built by Cloudflare, verified serving.

008 A real favicon, and two new project write-ups: the Back Quarter and the Desk and the Drawer.

009 The previous session’s work taken live and verified; two more project write-ups, and the four sites written up as four briefs.

010 A short clean-up: small open items closed, and one correction on my personal site. Nothing here changed.

011 Mostly other sites: a crawl audit of the rare-disease site, and two sites moved behind Cloudflare. Here, only the résumé changed.

012 Cleared what could be closed without my input: markup fixes on the rare-disease site, and a keyboard path through the graph. Verified live.

013 The plan to take this site from skeleton to showcase, written and approved.

014 The design system and the case-study template, built on one page with placeholder copy.

015 An audit and a phased plan. Phase 0 shipped: clean addresses, security headers, and the home page rewritten from my rulings.

016 The receipts inventory ruled, the truth rules written, and the first case study live: the housing society’s site.

017 This site’s own case study live, and a Projects sub-menu on every page.

018 The method page live, with my own headline and lede.

019 I moved the case studies ahead of this ledger. The influence graph’s case study live.

020 The rare-disease site’s case study live, after a schema fix on that site and a second look at its host fault.

021 Receipts for the last two case studies ruled; their copy drafted, then paused at my word for a decision about the Back Quarter.

022 The Back Quarter copy ruled, then work on my personal site: the 3D world on computers only, and three layout fixes.

023 The last two case studies live, after a re-trace against the code found the Desk’s description out of date. All six are done.

024 This ledger: I ruled the proposal and every line on it, and a script draws it from the handoffs.

025 A Display panel for motion, theme, contrast and text size, built into the site. I ruled the plan and the panel’s words.

026 A layout pass: the pages now reflow for readers who enlarge the text, and the www address works. I ruled each fix and set up the address myself.

027 The motion: the ledger draws itself in, a slider steps through the handoffs, and a case study’s name can grow into its heading. I ruled the slider’s words and how it shows the past.

028 The method loop traces itself, a page-change motion that Chrome was dropping is fixed, and one claim on the method page now says only what the record shows. I ruled each change.

029 A small fix: on a slow connection, this ledger no longer shows in full for a moment before it draws itself in.

030 This ledger’s last layer: a band of traps, the mistakes each session wrote down for the next, drawn from the handoffs themselves. I ruled the plan, the matching and the words.

031 The engineering pass: every page now has a weight limit and is tested against automated accessibility rules, the case studies carry structured data and their own link previews, and each deploy is checked file by file. I ruled each step.

032 This site’s case study now gives its own page weights and accessibility results, measured by script and dated, and the engineering pass is finished. I ruled the words.

033 A short close: this ledger caught up with the last handoff, and what comes next was left for me to choose.

034 This ledger now opens the home page, drawn in 3D behind the headline, and a small cleanup went live with it. I ruled each step and the words.

035 The case studies now open on their own pictures, which carry across from the Projects page, and their section numbers drift in teal. I ruled each look, asked for the gradient, and set two weight ceilings.

036 The page changes, the carried pictures and the opening pictures now move enough to see, and the header folds into a monogram and a smoked-glass Menu button as you scroll. I asked for each, ruled the looks, and set the new page-weight ceilings.

037 The folded header now sits on a square bar that turns to face the pointer, lit like sunshine or moonlight, and the menu items at the top of a page are pills. I asked for each change and ruled the look.

038 The folded name now ends in a clean TC, the menu button no longer wobbles, the checks look at the site in my own Chrome too, and the next design pass is proposed. I spotted the stacked letters, ruled each change and doubled the page-weight ceilings.

039 Scrolling the home page now flies through this ledger gate by gate, each with its line, and the Display panel's changes now sweep and wipe across the page. I ruled each look and chose video next.

040 The case studies now open on recordings of the work, the farm drive moving with the scroll, and pages change through spreading ink. I cut the particles and the moving headline on sight.

041 The case studies now open on sharp recordings that sweep into place and play once, the Back Quarter's plays on the Projects page too, and the method loop slowed and its menu steadied. I spotted the blurry video, recorded new clips and ruled each look.

042 A full audit of the site and its repo, written up as a plan in three phases. I asked for it, made the repo private and had two private documents taken out of it.

043 The receipts this site cites now live on it, with private details removed, and the build ledger closes here. I ruled each receipt and every line of new copy, and called the ledger finished.

The build ledger shows how this site was built, one working session at a time. Time runs in numbered handoffs: the files that pass this site’s work from one session to the next. Each line is an item a handoff left open, running until the session that closed it. Teal lines are still open; dotted ones are parked on purpose or waiting on me. A script draws it from the handoffs themselves, and leaves out items about my other sites. Under the items are the traps, mistakes written down for the next session: dotted where a start is worked out from its count, a square end where a check now does the job, a bar where it was retired, a dot where it helped. How I work · How this site was built
The ledger as a list, one line per handoff
  1. handoff-001 From a standing start to a live site on tc-ventures.ca.
  2. handoff-002 I read the copy that was already public and ruled on every block; all four pages were rewritten.
  3. handoff-003 A voice pass, a second résumé rebuild and the contact page. The rewrite before it was confirmed live, byte for byte.
  4. handoff-004 Copy fixes from my own corrections, a third résumé pass, a new home-page lede, and scouting data for a graph demo.
  5. handoff-005 I chose where the graph demo goes and that it is 3D; it was built and tested locally.
  6. handoff-006 I annotated the previous handoff and handed it back; every ruling in it was acted on the same day.
  7. handoff-007 The first real deploy: pushed to GitHub, built by Cloudflare, verified serving.
  8. handoff-008 A real favicon, and two new project write-ups: the Back Quarter and the Desk and the Drawer.
  9. handoff-009 The previous session’s work taken live and verified; two more project write-ups, and the four sites written up as four briefs.
  10. handoff-010 A short clean-up: small open items closed, and one correction on my personal site. Nothing here changed.
  11. handoff-011 Mostly other sites: a crawl audit of the rare-disease site, and two sites moved behind Cloudflare. Here, only the résumé changed.
  12. handoff-012 Cleared what could be closed without my input: markup fixes on the rare-disease site, and a keyboard path through the graph. Verified live.
  13. handoff-013 The plan to take this site from skeleton to showcase, written and approved.
  14. handoff-014 The design system and the case-study template, built on one page with placeholder copy.
  15. handoff-015 An audit and a phased plan. Phase 0 shipped: clean addresses, security headers, and the home page rewritten from my rulings.
  16. handoff-016 The receipts inventory ruled, the truth rules written, and the first case study live: the housing society’s site.
  17. handoff-017 This site’s own case study live, and a Projects sub-menu on every page.
  18. handoff-018 The method page live, with my own headline and lede.
  19. handoff-019 I moved the case studies ahead of this ledger. The influence graph’s case study live. Traps: 2 recorded.
  20. handoff-020 The rare-disease site’s case study live, after a schema fix on that site and a second look at its host fault. Traps: 6 recorded, 1 into code.
  21. handoff-021 Receipts for the last two case studies ruled; their copy drafted, then paused at my word for a decision about the Back Quarter. Traps: 5 recorded, 2 retired.
  22. handoff-022 The Back Quarter copy ruled, then work on my personal site: the 3D world on computers only, and three layout fixes. Traps: 4 recorded, 1 retired.
  23. handoff-023 The last two case studies live, after a re-trace against the code found the Desk’s description out of date. All six are done. Traps: 3 recorded, 1 into code, 2 retired.
  24. handoff-024 This ledger: I ruled the proposal and every line on it, and a script draws it from the handoffs. Traps: 2 recorded, 3 retired.
  25. handoff-025 A Display panel for motion, theme, contrast and text size, built into the site. I ruled the plan and the panel’s words. Traps: 3 recorded, 2 retired.
  26. handoff-026 A layout pass: the pages now reflow for readers who enlarge the text, and the www address works. I ruled each fix and set up the address myself. Traps: 1 recorded, 1 into code, 5 retired.
  27. handoff-027 The motion: the ledger draws itself in, a slider steps through the handoffs, and a case study’s name can grow into its heading. I ruled the slider’s words and how it shows the past. Traps: 3 recorded, 2 into code, 4 retired.
  28. handoff-028 The method loop traces itself, a page-change motion that Chrome was dropping is fixed, and one claim on the method page now says only what the record shows. I ruled each change. Traps: 2 recorded, 4 into code, 2 retired.
  29. handoff-029 A small fix: on a slow connection, this ledger no longer shows in full for a moment before it draws itself in. Traps: 1 recorded, 2 retired.
  30. handoff-030 This ledger’s last layer: a band of traps, the mistakes each session wrote down for the next, drawn from the handoffs themselves. I ruled the plan, the matching and the words. Traps: 1 recorded, 1 retired.
  31. handoff-031 The engineering pass: every page now has a weight limit and is tested against automated accessibility rules, the case studies carry structured data and their own link previews, and each deploy is checked file by file. I ruled each step. Traps: 5 recorded, 2 into code, 2 retired.
  32. handoff-032 This site’s case study now gives its own page weights and accessibility results, measured by script and dated, and the engineering pass is finished. I ruled the words. Traps: 3 retired.
  33. handoff-033 A short close: this ledger caught up with the last handoff, and what comes next was left for me to choose. Traps: 1 into code, 2 retired.
  34. handoff-034 This ledger now opens the home page, drawn in 3D behind the headline, and a small cleanup went live with it. I ruled each step and the words. Traps: 2 recorded, 3 retired.
  35. handoff-035 The case studies now open on their own pictures, which carry across from the Projects page, and their section numbers drift in teal. I ruled each look, asked for the gradient, and set two weight ceilings. Traps: 7 recorded, 1 retired.
  36. handoff-036 The page changes, the carried pictures and the opening pictures now move enough to see, and the header folds into a monogram and a smoked-glass Menu button as you scroll. I asked for each, ruled the looks, and set the new page-weight ceilings. Traps: 6 recorded, 1 retired.
  37. handoff-037 The folded header now sits on a square bar that turns to face the pointer, lit like sunshine or moonlight, and the menu items at the top of a page are pills. I asked for each change and ruled the look. Traps: 3 recorded, 4 retired.
  38. handoff-038 The folded name now ends in a clean TC, the menu button no longer wobbles, the checks look at the site in my own Chrome too, and the next design pass is proposed. I spotted the stacked letters, ruled each change and doubled the page-weight ceilings. Traps: 4 recorded, 2 into code.
  39. handoff-039 Scrolling the home page now flies through this ledger gate by gate, each with its line, and the Display panel's changes now sweep and wipe across the page. I ruled each look and chose video next. Traps: 8 recorded.
  40. handoff-040 The case studies now open on recordings of the work, the farm drive moving with the scroll, and pages change through spreading ink. I cut the particles and the moving headline on sight. Traps: 6 recorded, 1 retired.
  41. handoff-041 The case studies now open on sharp recordings that sweep into place and play once, the Back Quarter's plays on the Projects page too, and the method loop slowed and its menu steadied. I spotted the blurry video, recorded new clips and ruled each look. Traps: 5 recorded, 1 into code, 2 retired.
  42. handoff-042 A full audit of the site and its repo, written up as a plan in three phases. I asked for it, made the repo private and had two private documents taken out of it. Traps: 7 recorded, 5 retired.
  43. handoff-043 The receipts this site cites now live on it, with private details removed, and the build ledger closes here. I ruled each receipt and every line of new copy, and called the ledger finished. Traps: 6 recorded, 1 retired.

The work

  1. Live

    A housing society’s website

    The public site of a volunteer-run housing nonprofit, which I have built and run on my own since 2023, at no cost to the society.

    The society's Volunteer page: under the heading Volunteer With Us, a photo of hands around a young plant and the line Community-built housing begins with community action, then four figures: 40 years volunteer-led, a 100% volunteer board, 87 units and 7 committees.
  2. Live

    A rare-disease site, written by a patient

    Five plain-language guides to ultra-rare conditions, marked up so a search engine or an AI assistant can tell what each page is, who wrote it, and when it was last reviewed.

    Bare Your Rare's home page: the heading You're rare. You're not alone., a line on people with rare conditions sharing their own stories, the buttons My Story and Share Your Story, and the site's rainbow-striped zebra beside them.
  3. In active development

    The Economic Report Influence Graph

    A 3D map of where official numbers come from, where a line between two reports goes in only if a published document says it belongs there.

    Trace one city’s budget yourself
    The graph application: a dark canvas where spheres in several colours spread out on fine lines from one large white sphere, with a tight red cluster below it, a filter panel down the left side and layout controls down the right.
  4. Live

    A homepage you drive around

    The front page of my personal site is a quarter section of Peace Country farmland you drive around in a buggy. Drive up to most of its buildings and press Enter, and a page of the site opens. The ordinary menu still works if none of it loads.

    A low-polygon farmyard at night under a full moon, seen from behind an orange roll-caged buggy on the grass, a white dog at the near edge: ahead, a hay pile, twin grain bins and a brick windmill on the left, a red barn in the middle, and spruce all round.
  5. Live

    A menu that is a photograph of my desk

    My personal site has a second menu that is a photograph of my desk, and its footer is a drawer with a pinball table in it. The plain list of links is the default; the desk is there for anyone who asks.

    A photograph of a home-office desk used as a website menu: a wide curved monitor running a screensaver of falling green characters signed TC 'Ventures, a lit mechanical keyboard, a mug, a small stuffed toy, a rubber duck and a stack of books, with a small on-screen pill reading View as a plain list.

How I work

One

Specify before building

The specification is the work. I decide what “good” means, write the standard down where the next person can find it, and hold every change to it. My repositories carry protocols and playbooks because a standard that only lives in someone’s head drifts within a week.

Two

Evidence over assertion

On the influence graph the rule is no document, no edge: a dependency exists only if a published source says so in words I can quote. Leads I cannot source go to a dropped list with a reason. Every drawn line carries a grade for how well its citation actually supports it, and the grade is visible in the app.

Three

Verify by measuring

I check work against a clean rig rather than trusting that it looks right. A layout force I was about to ship turned out to have been calibrated against a measurement script with a bug in it. I caught that before it went out, threw out the calibration, and rebuilt it.

What I am looking for

Remote work running the website and digital operations for a nonprofit or a small organisation. I am also open to web development and accessibility roles. I am most useful where a small product needs someone to own it end to end — deciding what it should be, building it, and being accountable for whether it actually works.

I am comfortable being the only person on a thing, and comfortable being the one who says a result is not good enough yet. Open to work. More about the route I took here.