Personal site — blog, portfolio, and legacy courses page. Built with Next.js, deployed on Vercel.
Started as a courses landing page (toby.courses), evolved into a personal site for writing and showcasing projects. The blog is where I share what I'm building and learning. Posts are published via a CLI tool that calls the site's API — no CMS, no admin panel.
- Fork and import on Vercel
- Connect a PostgreSQL database (e.g. Neon via Vercel integration)
- Set
BLOG_API_KEYandBUTTONDOWN_API_KEYin Vercel environment variables - Run
prisma db pushto create the schema - Deploy
The build prerenders pages from the database, so the initial import build fails until the database is connected and the schema pushed — redeploy once steps 2–4 are done.
npm install
cp .env.example .env # fill in your values
npx prisma generate
npm run dev| Page | Path | Description |
|---|---|---|
| Home | / |
Hero + latest blog posts + newsletter subscribe |
| Blog | /blog |
All published posts |
| Post | /blog/[slug] |
Individual post with markdown rendering |
| Work | /work |
Portfolio of projects |
| Courses | /courses |
Legacy courses page (migrated from toby.courses) |
| About | /about |
About me |