build log
Weekly proof
of work.
What I shipped each week, what I learned, and what broke. No polish. Updated every Sunday.
5
weeks tracked
27
things shipped
weekly
updated
W22 2026May 26 – Jun 1
● IN PROGRESS// shipped
→Built AI Prompt Library — 15 GTM prompts across 5 categories, copy-to-clipboard, expandable cards
→Automated Beehiiv newsletter sync script (fetch-posts.js, wired into build)
→Renamed /knowledge to /glossary across site and nav
→Rewrote About page story section — less CV, more narrative
→Fixed blog page Beehiiv subscribe form pointing to wrong URL
→Launched /builds/ai-prompts — removed 'coming soon' status
// learned
Shawn's site wins because of obsessive specificity and daily proof of work — not design. Numbers beat aesthetics every time.
W21 2026May 19 – May 25
✓ DONE// shipped
→Built 6 compare pages (Clay vs Apollo, HeyReach vs Expandi, Zapier vs n8n vs Make, Instantly vs Smartlead, HubSpot vs GoHighLevel, Apollo vs LinkedIn Sales Nav)
→Launched /builds/clay — 7 Clay table templates with descriptions and stack tags
→Launched /builds/n8n — 8 n8n workflow JSONs, all downloadable
→Built /projects page with deployed apps and open source tools
→Set up Formspree on contact form and Beehiiv on subscribe form
→Created Beehiiv newsletter — build-logrishiraj.beehiiv.com
// learned
Compare pages are the fastest SEO play for a GTM site — high intent, low competition, easy to write if you actually use the tools.
W20 2026May 12 – May 18
✓ DONE// shipped
→Complete site rebuild in Next.js 15 + TypeScript + Framer Motion
→Built /glossary — 47 GTM terms with search + category filters
→Built /blog with live feed (LinkedIn, GitHub, newsletter tabs)
→Built /about with timeline, stack panel, credentials
→Added mobile nav, dark header, announcement bar
→OG image and sitemap live
// learned
Next.js App Router is fast to work with once you stop fighting it. framer-motion viewport animations add a lot for minimal effort.
W18–19 2026Apr 28 – May 11
✓ DONE// shipped
→SaravaSales Notetaker: migrated SQLite to PostgreSQL on Railway
→Added ffmpeg to nixpacks config for large recording transcription (>24MB)
→Fixed n8n webhook — skip when primary_pain is empty to stop blank Notion rows
→Added call summary fallback to n8n when BANT fields are sparse
→Removed hs_call_body garbage transcript fallback in HubSpot router
// learned
SQLite works fine locally but breaks the moment you have concurrent writes from a background poller. Postgres was overdue.
W16–17 2026Apr 14 – Apr 27
✓ DONE// shipped
→Built OutreachOS — unified dashboard for Smartlead + HeyReach campaigns
→DeepAccount v1 — paste a URL, get ICP fit score, buyer personas, cold opener
→Pipeline AI — paste CSV, get AI lead scores + personalised email drafts
→Spoke at GTM Daily Office Hours — Claude Code for GTM engineers
// learned
Building three tools in two weeks is possible when you reuse the same FastAPI + React pattern. The hard part is always the prompt, not the plumbing.