Personal access codesEvery recipient gets their own code. Revoking one investor takes under a minute and never disturbs anyone else.
Zero investor frictionOne code, typed once, remembered for 30 days. No sign-ups, no email verification loops.
Named analytics“Blue Harbor spent 11 minutes on the deck and downloaded the model” — not “someone visited.”
How it works
Investor opens linkyourco.com/deck
→
Edge gateBranded unlock page checks the code — codes live only in one env var, never in source
→
Two cookiesA hashed access token, plus a readable name + 4-char ref (never the code itself)
→
Your HTML deckServed as-is — slides, data room, downloads
→
AnalyticsPageviews, time on page, documents opened, slides viewed — all attributed by name
The 4-char ref — e.g. XK9P — joins every analytics event back to your access registry, so you always know who is who.
The build — six steps, about an hour
1
Structure the repo.Deck, data room, and downloadable files under clearly gated paths; assets referenced absolutely.
2
Drop in the gate.One middleware.js file at the project root. Brand the unlock page to match your deck.
3
Issue codes & registry.Codes like ACME-7Q2F-XK9P, one per recipient, logged in a simple Notion database.
4
Wire analytics.A self-gating PostHog script — public pages are never tracked, unlocked viewers fully are.
5
Deploy on Vercel.Push to GitHub, import, set one env var, point your subdomain. Private pages stay noindexed.
6
Verify before sending.A nine-point checklist: gate, wrong code, revocation, gated PDFs, attribution — all proven first.
Why it's trustworthy
- Codes never appear in source. The repo stays clean; secrets live in one environment variable.
- Hashed, HttpOnly cookies. Page scripts can't read the access token, and it can't be reversed into a code.
- Fails closed. A misconfigured deploy shows a 503 — never an open door.
- Instant, surgical revocation. Remove one code, redeploy: that viewer's code and existing cookie both die.
- The gate page carries zero tracking. An access code can never leak into an analytics event.
What it is — and isn't. This is investor-grade access control, not DRM. A determined recipient can still screenshot or share what they can see. For a fundraise, that's the right trade: friction stays near zero and you keep full visibility of who's engaging.
Stack:
Plain HTMLVercelPostHogNotion
— all free tiers