---
title: "ridwaanhall.com"
url: "https://ridwaanhall.com/projects/ridwaanhallcom"
markdown: "https://ridwaanhall.com/projects/ridwaanhallcom.md"
summary: "This site: a portfolio and blog on Next.js 16 with an admin, Markdown versions of every page and a CV generated from the About page."
---

# ridwaanhall.com

> This site: a portfolio and blog on Next.js 16 with an admin, Markdown versions of every page and a CV generated from the About page.

- Category: Portfolio
- Status: Development In Progress
- Started: March 16, 2025
- Built with: Next.js, React, TypeScript, TailwindCSS, Supabase, Drizzle ORM, GSAP, Auth.js, PostgreSQL, Vercel
- Live: https://ridwaanhall.com
- Source: https://github.com/ridwaanhall/ridwaanhall-com

## About

### The problem

A developer portfolio goes stale as soon as it is hard to edit, and a CV kept separately is always one change behind. I also wanted the site to be readable by AI agents, not just people.

### The approach

I built this site on Next.js 16 with React 19, TypeScript and Tailwind CSS v4. Content lives in Supabase Postgres through Drizzle, with media in Supabase Storage and sign-in through Auth.js.

- A declarative admin with per-screen permissions, drafts and scheduled publishing.
- A Markdown version of every page, plus llms.txt for language models.
- A CV at /cv.pdf generated from the same data as the About page, laid out for applicant tracking systems.
- A dashboard with live WakaTime and GitHub data.

### The result

ridwaanhall.com is the single source of truth for my work: one edit updates the page, its Markdown twin and the CV together. The design uses eight greys and no accent colour, so the work itself carries the colour.

## Features

- **Declarative Admin**: Every screen is a descriptor, with per-screen permissions, drafts and scheduling.
- **Markdown Twins**: Every page is also available as Markdown, indexed in llms.txt.
- **Generated CV**: A PDF built from the About page, written for applicant tracking systems.
- **Live Dashboard**: Coding activity from WakaTime and GitHub, read live.
- **Comments and Guestbook**: Sign in with Google or GitHub to comment, with rate limits and moderation.
- **Grayscale Design**: Eight greys, dark by default, with colour left to the work.

## Tags

flexforge, nextjs, Nextjs16 Portfolio, Portfolio, Portfolio Website, Tailwind Portfolio, vercel

## Elsewhere

- This page for people: https://ridwaanhall.com/projects/ridwaanhallcom
- Index of every page as Markdown: [llms.txt](https://ridwaanhall.com/llms.txt)
