Webster.dev

Portfolio OS for a Tri-AI operating loop.

Webster Toh — coach and systems builder in Singapore. Open for 1:1 training and small automation work. Public intake is a GitHub issue.

Claude plans, Perplexity validates, and Cursor executes against a shared Notion source of truth.

Public identity

Webster Toh — coach and systems builder.

Repository-safe facts only. No client names, course pricing, private brands, or unpublished case studies.

  1. 01 · Coach

    Gymnastics coaching and personal training in Singapore. Client names and private schedules stay off this site.

  2. 02 · Builder

    Ships automation systems and this public Portfolio OS through a Tri-AI operating loop.

  3. 03 · Singapore

    Based in Singapore. Public copy stays limited to repository-safe facts until Claude approves more.

Who this is for

Singapore coaching and small systems work.

A fit filter so the public issue stays useful. If the work is a shop, an unpublished brand, or a private schedule, it does not belong on this page.

  1. 01 · Singapore 1:1

    Personal training and gymnastics coaching in Singapore. No calendar, prices, or gym names on this page.

  2. 02 · Small systems

    Automation and operating-system work that can use this public repository as proof. Not a shop or private dashboard.

  3. 03 · Not this page

    Unpublished brands, shops, client lists, and private schedules stay off the public site. Use a GitHub issue, not email.

Work with me

Currently open for coaching and systems work.

Public lanes only. Private shops, course funnels, and unpublished brands stay in Notion until Claude approves a public brief.

  1. 01 · Coaching

    Open for 1:1 personal training and gymnastics coaching in Singapore. Booking links stay off this page until a public calendar exists.

  2. 02 · Systems

    Open for small automation and operating-system work. This repository is the public proof, not a shop or private dashboard.

  3. 03 · Public only

    No unpublished brands, prices, or client lists here. The public intake is a GitHub issue on this repository until a contact form is approved.

How to start

Public intake is a GitHub issue.

No personal email, shop checkout, or unpublished brands on this page. Open an issue on the public repository and wait for a reply there.

  1. 01 · Coaching

    Open a public GitHub issue titled Coaching. Say Singapore 1:1 training or gymnastics coaching. No calendar or prices on this page.

    Open a coaching issue
  2. 02 · Systems

    Open a public GitHub issue titled Systems. Point at this repository as the public proof. Shops and unpublished brands stay off this site.

    Open a systems issue
  3. 03 · Then wait

    Replies happen on the issue. No auto-deploy, no personal email, and no private dashboards from this page.

    View open issues

After you write

Replies stay on the issue.

Coaching is Singapore-based. Systems work is discussed on the same public issue. No auto-send, shop checkout, or unpublished brands.

  1. 01 · Singapore time

    Replies land on the GitHub issue in SGT (UTC+8). There is no auto-reply and no personal email from this page.

  2. 02 · Keep it public

    Do not put private schedules, medical notes, or unpublished brand names in the issue. Public intake stays public.

  3. 03 · What happens next

    Webster reads the issue and replies there. A calendar, deposit, or contact form is not on this site yet.

Operating loop

Three roles, one shared plan.

The public site stays factual: it describes the workflow, not invented personal claims.

  1. 01 · Claude

    Strategy, planning, and briefings

    Turns Notion context into priorities, questions, and next moves before execution starts.

  2. 02 · Perplexity

    Research and validation

    Checks assumptions, gathers external evidence, and keeps decisions grounded in current information.

  3. 03 · Cursor

    Execution

    Ships code, deploy automation, and repository improvements against the shared plan.

Delivery

How this site ships.

Public facts about the repository path only — no private client or course material.

  1. 01 · Build

    Next.js static export under site/, with root asset paths for the live custom-domain Pages host.

  2. 02 · Verify

    CI and the Pages deploy job run lint, typecheck, production-scoped audit, homepage smoke, Playwright axe, and a local perf budget before upload.

  3. 03 · Publish

    GitHub Pages receives site/out. A follow-on live verifier probes webstertoh.dev (and can hard-gate with npm run verify:live:portfolio).

Publish target

Where this publishes.

Repository-public facts from a live Pages check: the custom domain is the canonical host, asset paths are flattened for that host, and main still ships the starter until Portfolio OS merges.

  1. 01 · Live custom domain

    GitHub Pages already serves https://webstertoh.dev/ (github.io redirects there). Until Portfolio OS merges, that host still shows the create-next-app starter (re-checked 2026-09-02).

  2. 02 · Root asset paths

    Pages builds export at / (no /webster.dev basePath). Live check: /webster.dev/_next/… 404s on the custom domain; root /_next/… is required once Portfolio OS deploys. Smoke tests scan the whole export for basePath regressions.

  3. 03 · Verify after merge

    After deploy, npm run verify:live:portfolio (also a GitHub Action) checks Portfolio OS markers, root assets, trust files, stamped /status.json (git SHA), TLS/HSTS, custom-domain http→https, HTTP HTML upgrade fallback, github.io HTTPS preference, and optional www HTTP. The export ships a <head> HTTPS upgrade for apex/www while Enforce HTTPS is still off.

Open the live custom domainOpen the github.io Pages URL

Coordination

Where decisions live.

Public facts from the repository operating manuals — not private client, course, or pricing material.

  1. 01 · Notion decides

    Strategy Board priorities, briefs, and message-board handoffs stay in Notion — the Tri-AI source of truth.

  2. 02 · Repo mirrors

    SYSTEM.md and site/AGENTS.md mirror the operating manuals so agents can boot without guessing private context.

  3. 03 · Cursor executes

    Ambiguous work is marked blocked. Public copy stays limited to repository-safe facts until Claude approves more.

Read SYSTEM.mdRead site/AGENTS.md

Current focus

Build the portfolio foundation without inventing private claims.

  • Notion is the canonical source of truth.
  • Repository docs mirror the operating model for agents.
  • GitHub Actions exports the static Next.js site to GitHub Pages.