Raw
Growuild · Personal handbook

How to make Claude better.

A living document I'll read at the start of every Claude session. Edit anything, add anything, and Claude inherits it. Stored locally in your browser; export as JSON when you want to back it up.

Live Last edited never ⌘E toggle edit · ⌘S force save

00TL;DR

The single page Claude should read first. Keep it under 200 words. Below: the longer index.

I'm Henry, founder of Growuild — a Singapore web design + ORM agency targeting SMBs. Building with Claude is most of how I work. Voice: editorial, restrained, premium. Hate generic AI-agency aesthetics (Inter, Space Grotesk, purple gradients). Love Fraunces, italic accents, Singapore-specific texture. Defaults: deploy to Cloudflare Pages, dark mode by default, mobile-first but desktop-cinematic, agency-craft skill discipline. Live projects: growuild.org (portfolio) · growuild-os (internal OS) · astra-skincare (D2C demo) · empire-food-catering (real client) · inkredibletattoosupply.com (real client). What I want from Claude: aggressive autonomy. Don't ask permission for things I've said before. Verify your own work with Playwright before reporting done. When you don't know, say so — don't fabricate.

01Active projects

What I'm building right now. Drop in URLs + one-liner status so Claude can pick up mid-thread.

- growuild.org — agency portfolio · live · 17 cards, Inkredible + Rose Gold KTV are real clients - growuild-os.pages.dev — internal OS · Supabase backend · setup status panel pending v2/v3 SQL - astra-skincare.pages.dev — D2C demo · molecules 3-chapter cinema + hero camera-orbit shipped - empire-food-catering.pages.dev — real client · awaiting $650 quote signoff - inkredibletattoosupply.com — real client · live, monthly retainer - rave-productions.pages.dev — bento services grid recently rebuilt Add new ones here when they start. Strike them out when they ship.

02Inspirations

Sites Claude can WebFetch + analyze before starting visual work. URLs only — Claude does the analysis.

- davidwhyte.com/experience — persistent canvas + per-line blur scrub - cosmos.studio — scroll-pinned camera-orbit hero - cydstumpel.nl — sticky-banner overlap, hero refuses to leave - lusion.co — DPR cap + pixel budget mobile pipeline - exoape.com — per-section video discipline - 14islands.com — Lenis desktop-only, hover-fine pointer gates - obsidianassembly.com — Nuxt + GSAP + SplitType - apple.com/iphone-17-pro — sticky chapters > ScrollTrigger.pin on mobile - growuild-inspirations.pages.dev — full curated list For ASTRA-tier work: paste the inspiration URL + tell Claude to spawn parallel agents to analyze before building.

03Style rules

Hard "always / never" rules. Claude should treat these as immutable for the brand.

NEVER: - Use Inter, Space Grotesk, DM Sans, Geist, Outfit (AI-agency stock fonts) - Generic purple gradient on white background - Stock illustrations as decoration - 5 colors at equal weight (always: dominant + accent) - Emojis in production UI (only if user explicitly asks) - Generic "premium dark cosmos" without a concept - Same component structure for both menu cards and blog cards - Trust the deployed site without Playwright verification ALWAYS: - Fraunces for editorial display + Inter Tight for body OR JetBrains Mono for metrics - One signature visual moment per site (the screenshot) - Section rhythm: alternating dark/cream, never wall of one color - Dark mode default, light mode optional - Mobile-first responsive, but desktop-cinematic for hero - Italic-accent in Fraunces for emphasis instead of bold - Tabular nums for numbers (font-feature-settings: "tnum") - Test all CRUD + scroll behaviors with Playwright before reporting done - Deploy to Cloudflare Pages, hand back the .pages.dev URL

04Code patterns I want

When Claude writes code for me, default to these shapes.

Stack defaults: - Vite + React + TypeScript for SPAs - Vanilla HTML+CSS+JS single-file for cinematic landing pages - Tailwind v4 with @theme tokens (not v3 config) - Motion (formerly Framer Motion) for React animation, not raw GSAP - GSAP + ScrollTrigger only for scroll-pinned scrub timelines - Lenis desktop-only (smoothTouch:false, gate on matchMedia("(pointer:fine)")) - Supabase for backend with VITE_SUPABASE_URL/ANON_KEY env vars Component patterns: - Glass primitive for surfaces (backdrop-filter blur) - Drawer for inline editing (Esc closes, lock body scroll) - Field for inline-editable text (saves on blur) - Kicker for section labels (uppercase, tracking-[0.32em]) - StatusPill for state indicators - KineticNumber for count-up rAF animations - Empty states: invitation, not "no data" Naming: - React components PascalCase, files PascalCase - CSS uses --color-ink for text (4 shades), --color-pane for surfaces - Section accents: cyan strategy, amber content, magenta clients, lime missions, lavender inspiration

05Mistakes you've made

Claude — don't repeat these. Add new ones as they happen.

- Over-aggressive regex deleting good cards alongside flagged ones (growuild.org cleanup). Always preview substring matches before bulk replacement. - HTML-tag-broken matches missed on rename — Chen & Associates vs Chen <span>&</span> Associates. Always do a full grep after rename, not just pattern match. - Renamed cards but never created new CF projects — left dead links pointing to heartlands-cards.pages.dev etc. Either rename underlying site OR keep card pointing to existing project. - Deployed without verification — wrong scroll positions in tests led me to declare chapters 2/3 broken when they actually worked. - Translate(-50%,-50%) baked into spin keyframes shifted rings off-center. Cleanup unused keyframes after deleting components. - Framer motion's transform on motion.div clobbers inline style.transform — wrap motion.div inside positioning div, not the other way around. - Used trademark-conflicting names without IPOS check — FORGE Fitness incident. Always check Singapore IPOS before fictional brand naming. - Forgot user said "real client" when nuking sites in trademark cleanup. Verify list of real-vs-demo clients before destructive ops.

06Workflow preferences

How I want Claude to actually behave during work.

Autonomy: - Take initiative. Don't ask "do you want me to fix this" — fix it. - Verify your own work before reporting "done". Headless Playwright at multiple viewports. - When in doubt about scope, ask ONE focused question, not five. - Don't over-narrate. Show the result. Skill use: - Always announce skill choice BEFORE writing client-facing code (HARD RULE in memory). - Use codex for design forks (architecture, "this vs that"). - Use agency-craft + distinctive-frontend for premium agency builds. - Use scroll-story for cinematic landing pages. Build/deploy: - Always deploy to Cloudflare Pages on completion. - Hand back the .pages.dev URL as part of "done". - For React SPAs, include _redirects: /* /index.html 200. Communication: - Singapore English: dollar amounts in SGD, addresses in SG style. - Don't use emojis in writing unless I do first. - When listing trade-offs, use a table. - Keep summary "what shipped" at top, "what's pending" at bottom.

How Claude reads this

At the start of any new conversation, paste this command. Claude will fetch the handbook + absorb it before doing anything.

WebFetch https://growuild-handbook.pages.dev/?raw=1 — read the handbook end-to-end (markdown), then ask me what I want to work on.

Tip: each section above has a copy raw link button — gives Claude a URL like ?raw=1&section=rules for ~80% lighter context when only one section is relevant.

Saving…