Bilal Hassan, Islamabad Available for work

Websites and web apps, built to ship

I'm a 19-year-old developer in Islamabad. I build websites for businesses all over the world, and I make sure they load fast on a phone.

Scroll to build

How I built Kavoor

Kavoor is a perfume store I designed and built. Keep scrolling and you'll watch it go from an empty file to the live site.

  1. 1StructurePlain HTML first: every heading, link and button in the right order, before any design.
  2. 2LayoutThe grid, spacing and hierarchy, worked out at phone size first.
  3. 3StyleType, colour and the small details that make it look like Kavoor.
  4. 4MotionSmall movements that show what you can tap and what just happened.
  5. 5SpeedI trimmed the images, fonts and code until it scored 99 on Google's Lighthouse test for phones.
  6. 6LiveThat's the real kavoor.store (opens in a new tab), live now.

Steps 1 to 5 are a re-creation. The last frame is a screenshot of the real site.

Things I've built and shipped

Kavoor

A small-batch perfume store with bundles, gift bags, live promotions and WhatsApp checkout. It's lean and loads fast.

Designed and built solo · Online store · 99 on Lighthouse for phones · Live

Kavoor's homepage photo: two perfume bottles, Daymark and Rush Theory, on white linen.
kavoor.store

Momin by Ahmed

A fragrance store I built end to end, with collections for him, her and unisex, plus a cart, customer accounts and reviews.

Designed and built solo · Online store · Live

The Momin by Ahmed homepage on a laptop: the M logo above 'Premium perfumes in Pakistan' and an Explore collection button.

Invoice & Rental App

An internal web app for a family business. It turns entered data into invoice and rental slip PDFs and monthly spreadsheets, and reads photos of hand-filled rental slips with Gemini, so no one does the paperwork by hand.

Full-stack · Next.js and Supabase · Private, shown with sample data

The invoicing app's invoices screen: monthly spreadsheet downloads, a search box and invoice cards with their totals. Shown with sample data, personal details blurred.

Horizon

A web platform that gives career advisors a structured way to guide students. It's my biggest build so far, still in active development.

Full-stack · JavaScript · In progress

From my project graveyard: apps I built outside client work. None of them went public.

iOS and Android
Masjid Pro on two phones, in its Sand and Dark themes: salah times grouped by masjid and by prayer.

Masjid Pro

Each masjid's own salah times, kept current by its moderators. Add the masjids you pray at and see every schedule in one place.

ExpoReact NativeFirebaseTypeScript
iOS and Android
Labayik Allah on two phones: choosing a Hajj type, and a progress screen at 25 percent.

Labayik Allah

A step-by-step Hajj companion that covers all three types of Hajj: Tamattu', Qiran and Ifrad.

ExpoReact Native
Mobile and web
Eterna on two phones: today's prayers, and a calendar with Hijri and Gregorian dates side by side.

Eterna

An Islamic calendar with Hijri and Gregorian dates side by side, plus goals to track through the month.

ExpoNext.jsTurborepo
Web
WildScan's collection screen: a red fox, a blue tit, a monarch butterfly, a red squirrel and a toad, each with a rarity label.

WildScan

A real-life Pokémon. Photograph an animal in the wild, Gemini names the species, and your catch climbs a global leaderboard. Zoo photos don't count.

Next.jsGemini API
iOS and Android
Family Tracker on two phones: the list of circles, and the sign-in screen.

Family Tracker

A location tracker for family and friends that runs on a Mac mini at home, not on someone else's cloud.

ExpoNodePostgresMQTTDocker
iOS and Android
Rebus Party on a TV: a correct answer, with confetti over the puzzle.

Rebus Party

A party game of rebus puzzles, where pictures and letters spell out words and phrases.

ExpoReact Native

I tested 465 small-business websites in October.

8.9s

median time for the main content to appear on a phone

94%

scored under 90 on Google's mobile speed test

3.3MB

median homepage size, which eats into mobile data

And this page, on the device you're using right now:

fasttime to main content, measured live

Source: Google Lighthouse mobile test (a simulated mid-range phone on a slow 4G connection) on 465 small-business websites across 12 countries, 21 to 31 October 2026. The live number above is measured in your own browser, so it isn't the same test.

Bilal Hassan, freelance full-stack web developer based in Islamabad, in a black suit.
Bilal HassanIslamabad

I'm Bilal. I've spent the last couple of years learning to build for the web properly, and people already use what I've made: two online stores, an invoicing app a local business runs every day, and Horizon, which I'm still building.

I'm doing my A-Levels at IVYAN in Islamabad alongside freelance work. Before that I did my IGCSEs at Beaconhouse Margalla and got an A*, an A and four Bs.

Outside client work, I'm a co-founder of FoodBook (opens in a new tab), a restaurant guide for Islamabad where diners write the reviews and the app shows which of your bank cards gets you a discount. It's free on iPhone (opens the App Store in a new tab) and Android (opens Google Play in a new tab). I'm also an open source contributor: in November 2026 the owner of Hearth (opens in a new tab), a self-hosted family safety app, merged my fix (opens in a new tab) for three bugs in its iPhone map. I publish my own open source projects too, like Vitrine (opens in a new tab): it strips the bloatware out of Android TVs, speeds them up and gives them a lightweight home screen I built. On a budget TV with 1.3 GB of memory, it took free memory from 462 MB to 697 MB.

  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • React
  • Next.js
  • Node.js
  • Express
  • Expo and React Native
  • Firebase
  • Supabase
  • MySQL
  • PostgreSQL
  • Core Web Vitals
  • On-page SEO
  • GEO
  • Structured data
  • Git and GitHub