Public
Like
pillChoice
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data β all from the browser, and deployed in milliseconds.
Viewing readonly version of main branch: v163View latest version
An interactive job application built entirely on Val Town, demonstrating growth engineering principles in action.
Live site: growth-engineer-application.val.run
This application uses the Matrix red pill / blue pill metaphor to let visitors choose their path:
- π΄ Red Pill - A tailored CV showing relevant experience and a concrete Week 1-2 plan
- π΅ Blue Pill - Behind the curtain: see the instrumentation, live event logs, and how it was built
- PostHog analytics with deliberate event tracking (no autocapture)
- SQLite event logging for page views and pill choices
- Scroll depth tracking at 25%, 50%, 75%, 100%
- Click tracking on all CTAs, links, and interactive elements
- Server-side handler on
/blueroute triggers webhooks and email notifications - Environment variables for
WEBHOOK_URL,NOTIFY_EMAIL_TO, andPOSTHOG_API_KEY
- Val Town - Hosting and runtime
- Hono - Lightweight router for API and page routes
- React - Client-side rendering via esm.sh imports
- SQLite - Val Town's built-in database for event storage
- Blob Storage - Images and CV served from Val Town blobs
- PostHog - Product analytics
pillChoice/
βββ index.ts # Hono server (entry point)
βββ frontend/
βββ index.html # HTML shell with PostHog snippet
βββ index.tsx # React app with all pages
βββ style.css # Styles with animations
| Event | Properties | Trigger |
|---|---|---|
page_view | page | Page load |
pill_choice | pill, click_source | Red/blue pill click |
scroll_depth | page, depth | 25/50/75/100% scroll |
experiment_hover | experiment_index, experiment_title | Hover on Week 1-2 cards |
cta_click | cta, page | Button clicks |
click_company_link | company | Company name clicks |
click_contact_link | link | Header contact links |
click_view_source | - | Footer source link |
matrix_intro_complete | page | Typewriter animation ends |
event_log_loaded | event_count | SQLite events fetched |
Set these in Val Town's environment variables:
POSTHOG_API_KEY- Your PostHog project API keyWEBHOOK_URL- (Optional) Webhook to call on blue pill visitsNOTIFY_EMAIL_TO- (Optional) Email to notify on blue pill visits
This project is designed to run on Val Town. To work on it:
- Fork the project on Val Town
- Edit files in the Val Town editor
- Changes deploy instantly
Images are stored in Val Town blob storage and served via /images/:name:
Andy_Wingrave_Growth_Engineer- Profile photoright_red_pill- Red pill hand imageleft_blue_pill- Blue pill hand imageCV- PDF resume
Upload blobs using the Val Town Blob Admin.
This isn't just a portfolio piece. It's a growth experiment built the way I'd build them at Val Town:
- Instrumentation from day one - Every interaction is tracked and queryable
- Automations ready - Webhooks and emails can trigger on any event
- Built in public - The source is visible and remixable
- Shipped in hours - From idea to deployed app in a single session
Built by Andy Wingrave Β· View Source