Independent · Designer and developer · Last commit 28 Oct 2026
TallWaifu
Site build (freelance / commission): a catalogue that gathers YouTube and Twitch media in one place, embedding it rather than hosting it.

WebFreelanceNext.jsTypeScriptPostgres
Overview
Tall Waifu is a SFW creator site, built as a commissioned freelance project. It gathers the creator's YouTube uploads and Twitch streams in one catalogue, with a commission page, a blog and support links. The site embeds media from YouTube and Twitch rather than hosting any itself.
The problem
An ASMR content creator wanted to extend her reach and needed a site to do it.
What I did
- Built a Next.js (App Router) site in a pnpm monorepo, split into a web app, a sync worker and shared config, database, sources and UI packages.
- Wrote a sync worker that pulls YouTube uploads every 15 minutes and Twitch VODs and clips every half hour, storing them in Postgres when a database is configured.
- Made the database optional. On Vercel the site runs without one and reads YouTube through Next's data cache, and every page works in both modes.
- Built the watch page (every YouTube upload, 15 per page), a live page with Twitch clips, and the blog.
- Added a commission page with pricing and a loyalty card. Commission payments go through the creator's Patreon links only, with no checkout on the site.
- Added privacy policy and commission terms pages, social links in the header and footer, and verification of Twitch EventSub signatures.
- Covered the logic with Vitest unit tests and Playwright end-to-end tests.
Stack
- TypeScript (strict), Next.js 16, React 19, Tailwind CSS 4
- Postgres with Drizzle ORM (optional), run locally with Docker Compose
- Node.js 22 worker using node-cron
- Zod, Vitest, Playwright, ESLint
- pnpm workspaces, deployed on Vercel
Outcome / impact
- The site is live at tallwaifu.com, with commits through 28 Oct 2026 (22 commits in the repo).
- The creator loved it and said it was perfect. It needed little to no direction because I worked from her existing branding.
Gallery

