Skip to content
← All projects

Full-Stack Web Application · Online Marketplace · Live

Building a Search-Friendly Classified Marketplace

Onadeyak.lk

Onadeyak.lk home page showing the search bar, category shortcuts and marketplace hero banner

Project overview

Onadeyak.lk is an online classified marketplace where people can browse and publish advertisements across categories such as vehicles, property, electronics, home and living, jobs and pets.

It is a substantial, real-world application: authenticated users, ad creation with images, category browsing, search, and a public-facing catalogue that has to be understood by search engines.

Business problem

A classifieds site only works if people can find it and find individual ads. Listings are created continuously by users, so every ad detail page needs to describe itself correctly to search engines, stay reachable through listings, and remain accessible to people using assistive technology.

My role and contribution

I worked on the application's development and technical improvements: marketplace features, integration with the Supabase database, deployment on Vercel, and a set of search engine optimization improvements.

Technology stack

Frontend
Next.js 14 (App Router)ReactTypeScriptTailwind CSS
Data and backend
Supabase (PostgreSQL, Auth)PrismaZod validation
Media and i18n
Cloudinary image storagenext-intl
Deployment
Vercel

Implementation approach

The application is built with the Next.js App Router and TypeScript, backed by Supabase PostgreSQL. Business logic sits in a service layer behind API routes, with request validation handled by Zod and ad images stored on Cloudinary.

Search visibility was treated as an engineering concern rather than an afterthought: each page type exposes its own metadata, canonical URL and structured data, and the sitemap is maintained alongside the content.

Engineering challenges and solutions

  1. 01

    Dynamic ad detail pages need to be understood by search engines.

    Solution: Implemented dynamic advertisement detail pages with page-level metadata and JSON-LD structured data describing each listing.

  2. 02

    The same content can be reached through several URLs, which risks duplicate or diluted pages.

    Solution: Improved page metadata and added canonical URLs so search engines know the preferred address for each page.

  3. 03

    Listings change constantly, so crawlers need an up-to-date map of the site.

    Solution: Managed XML sitemaps so new and changed pages can be discovered.

  4. 04

    Large sets of ads are slow and awkward to browse on a single page.

    Solution: Added pagination to advertisement listings.

  5. 05

    User-uploaded ad images are invisible to screen readers and image search without descriptions.

    Solution: Improved image accessibility with meaningful alternative text.