Projects
Client work first, then academic and personal builds. Select a project to preview it, then open the brief for my part, the result, and the limits.

DoGoodie Website
Full-Stack Web Developer (DoGoodie contract)
Launch website for the DoGoodie builder community and The $5 Impact Hack, with a secure challenge-intake API that writes to Google Sheets.
DoGoodie Website
Client Website / Static Site + Serverless API
Full-Stack Web Developer (DoGoodie contract)
Case summary
- Problem
- DoGoodie needed a launch website for its builder community and The $5 Impact Hack, plus a safe way for organizations to submit challenges straight into the team's spreadsheet.
- My part
- I built the whole site: the shared design system, every page, the challenge-intake API, analytics consent, tests, and deployment. DoGoodie provided the content and program direction. The same contract also covered the Ethical Capacity Lab website.
- Key decision
- The intake API writes to Google Sheets through Vercel OIDC and Workload Identity Federation instead of a service-account key, so there is no long-lived private key stored anywhere to leak.
- Result
- Live at dogoodiebuilders.com. Valid challenge submissions are written to the team's Google Sheet and trigger a Formspree notification.
- Evidence
- The live site. The code repository is private, so it is not linked here.
- Limits
- Content changes need a code edit and a redeploy because there is no CMS, and the intake form depends on Google Sheets and Formspree being available.
Gallery
Technical details
A multi-page public site for DoGoodie, a builder community using technology to reduce suffering. It covers the community, The $5 Impact Hack, builder profiles, proof of work, policies, and contact routes. The front end is dependency-free HTML, one shared CSS design system, and vanilla JavaScript, with the challenge status calculated from dates in Asia/Manila time. Organizations submit challenges through a single Vercel Function that validates input on the server and writes to Google Sheets using short-lived Vercel OIDC credentials, with no stored private key, then sends a Formspree notification.
Key Features
- ▸Multi-page static site with a shared CSS design system and vanilla JavaScript
- ▸Date-driven challenge status and timelines, calculated in Asia/Manila time
- ▸Challenge intake API with origin check, field allowlist, size and rate limits, and bot and idempotency controls
- ▸Google Sheets writes through Vercel OIDC and Workload Identity Federation, with no stored service-account key
- ▸Consent-gated Google Analytics 4 and a strict Content Security Policy
- ▸Node test suite, a site validator, and headless-browser QA across pages and viewports
Technologies
Links
Brief loaded
