Back to home

▣ Projects

Things I've Built

A few things I've shipped, and one you can talk to.

WorryZap
Live

WorryZap

A safe space for children to externalise worries and feel lighter.

My daughter was inspired by the Worry Website in Jacqueline Wilson's book. She wanted something like it. So I built it. The whole design is built around one idea: once you put a worry outside yourself, it gets smaller.

Next.jsTypeScriptSupabasePostgreSQLTailwind CSS
Key decisions
  • Supabase row-level security — child data privacy wasn't optional for this audience
  • Community features over solo journaling — the book's premise was about sharing worries, not just recording them
  • Next.js for SSR — needed fast load times for a child-facing tool

Built and maintained solo since launch. End to end from schema design to production deployment.

AI Did This
Live

AI Did This

A SaaS platform built around real LLM integration, not demos.

I needed a real home for what I was learning about AI — not a GitHub repo, an actual product. AI Did This is a live SaaS with a custom prompt database, AI-generated blog content, and a complete Supabase backend.

Next.jsTypeScriptOpenAI APIGemini APISupabaseSanity CMS
Key decisions
  • Dual LLM integration (OpenAI + Gemini) — wanted to understand the differences in production, not just in theory
  • Supabase with row-level security over a custom auth layer — faster to ship correctly, easier to maintain
  • Sanity CMS for blog content — structured content that survives a design change

Live SaaS product. Built and maintained solo since launch.

Document Intelligence System
Live

Document Intelligence System

Upload a PDF. Ask it questions. Get real answers.

PDF extraction, AI-powered summarisation, and interactive Q&A with uploaded documents. This one came from needing a tool that didn't exist in a form I could actually use.

PythonFastAPIReactOpenAI API
Key decisions
  • FastAPI over Node for the backend — Python's PDF and ML ecosystem is better suited for this kind of work
  • React frontend separate from the API — clean separation made it easier to iterate on the UI without touching the processing logic

Built and deployed solo. Live on Vercel.

ShadowSelf
Live on Portfolio

ShadowSelf

An AI chatbot trained on my work and thinking.

Answers questions about my projects, approach, and experience. Built with a custom knowledge base and integrated directly into this portfolio as the chat widget.

Next.jsTypeScriptAI IntegrationKnowledge Base
Key decisions
  • A structured knowledge base keeps portfolio answers focused and predictable
  • The chatbot lives inside the portfolio instead of opening as a separate product

Live as the chat widget on this site.

Client Work

MasterMiles

Client project, brief to launch.

Frontend build delivered independently for a UK client. From requirements brief through to production deployment.

ReactJavaScriptCSSVercel

Delivered solo. Live and maintained by the client.

Hi! I'm ShadowSelf, Hafsa's AI Twin. Ask me anything! 👋