~/projects/jobkoi-com
JobKoi.com
A jobs & tuitions portal for Bangladesh, built to rank and load fast.
- Year
- 2025
- Role
- Developer & Maintainer
- Status
- Live
- Type
- Web Platform
stack — Astro.js 5 · Supabase · PostgreSQL · Tailwind CSS

JobKoi is a bilingual job and tuition board for Bangladesh — a space where incumbents ship heavy, slow, ad-choked experiences and job seekers mostly browse on 3G.
The product goal was simple to say and hard to do: a listings portal that ranks in search, loads instantly on cheap phones, and stays cheap to run at Bangladeshi traffic levels.
The problem
Job boards live or die by SEO and speed. Every wasted kilobyte is a lost ranking, and every sluggish page is a bounced seeker on mobile data. The portal also needed structured, fresh listings backed by a real database — without paying for a always-on server that mostly idles.
The build
Chose Astro 5 with server-side rendering so every listing page ships pre-rendered, crawlable HTML with zero JavaScript by default.
Interactivity (search, filters, pagination) is added through Astro islands — small hydrated corners of the page instead of a full SPA runtime.
View Transitions keep navigation feeling instant between list and detail pages without client-side routing weight.
Supabase (PostgreSQL) stores jobs, tuitions and categories, queried with indexed filters and full-text search.
Tailwind CSS with a mobile-first layout system; performance budget enforced so LCP stays sub-second on 3G-class devices.
What it does
SEO-first architecture
Server-rendered semantic HTML, canonical URLs, sitemaps and structured data so every listing is fully indexable.
Zero-JS listings
Category, city and detail pages ship no framework runtime — just HTML and CSS that render instantly on any device.
Islands interactivity
Search, filters and pagination hydrate as isolated islands, keeping interactivity without a full SPA tax.
Supabase data layer
PostgreSQL with indexed full-text search over jobs and tuitions, plus row-level security for admin writes.
Outcome
- 0 KB
- JS by default
- <1s
- Target LCP
- Supabase
- Data layer
- Astro 5
- Framework