Back to Built
LiveWebsites2025–2026

drshamiyah.com

My mentoring site. Booking, payments, intake forms, and a blog — built from scratch eight months after I wrote my first line of code.

I needed a proper home for the mentoring I do, and nothing off the shelf felt right. So I built it myself.

Next.jsTypeScriptStripeCal.comVercel

What it is

This is the site you're on. It's where I run my mentoring work — for medical students, junior doctors, and IMGs trying to get into and through UK training.

I wanted a real home for it. Not a CV in PDF form, not a Linktree, not a profile on someone else's platform. Somewhere that was mine, that I could change whenever I wanted.

What I built

Eight pages, and the machinery to run a small mentoring business behind them.

  • Pages: Home, My Story, Services, Thoughts (the blog), FAQ, Contact, Legal, and this Built page
  • A services list — application reviews, interview prep, career strategy, exam planning, research support
  • Booking per service through Cal.com, with payment taken by Stripe at the point of booking
  • Typed intake forms that sync answers into a Google Sheet so I have context before a call
  • A short quiz that points people to the service that actually fits them
  • A contact form that sends mail through Resend

Why I built it myself

I tried templates first. They all felt like templates — fine for someone else, wrong for this.

I also didn't want a pile of separate tools held together with tape: one thing for booking, another for payment, another for forms, all slightly out of step with each other.

And honestly, I only knew what the site needed to do because I'd sat across from applicants. You can't guess what matters to a nervous IMG three weeks before an interview. You have to have been in the room.

Stack

Next.js and TypeScript on Vercel. Stripe for payments, Cal.com for booking, the Google Sheets API to capture intake answers, Resend for the contact form, PostHog to see what people actually do, and Framer Motion for the bits that move.

Most of these I picked because they did one job well and got out of the way. A few I picked, regretted, and swapped.

What I learned

The hard part was never the code. It was deciding what the site should do at all — what to keep, what to drop, how someone moves from "curious" to "booked" without friction or confusion.

I rebuilt the booking flow twice. The first versions tried to do too much. In the end I let Cal.com handle payment as well, and everything got simpler the moment I stopped fighting it.

The thing I'm most glad I built is the part I almost left out: the blog. Thoughts ended up being where the actual mentoring happens at scale — one post reaches more people than I ever could one call at a time.