Gabriel Oghie
Back to Projects

B2B Marketplace (In Development)

AnchorShip NL - Marine Engine & Parts Marketplace

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Drizzle ORM
  • PostgreSQL (Neon)
  • Framer Motion

Overview

A Next.js frontend for AnchorShip NL, a B2B marketplace for complete marine diesel engines and spare parts spanning major marine brands - Wartsila, MAN, MaK, Deutz and Caterpillar.

Problem

Marine engine and spare-parts buyers need to search a large, brand-spanning catalog by part number, SKU or OEM number and get accurate matches quickly, while sellers need a straightforward way to manage stock listings.

Solution

A catalog-driven marketplace with dedicated parts and engines browsing routes, part-number search across SKU, title, subtitle and OEM-number fields, and a single-admin CRUD console for creating, editing and deleting stock listings.

Key Features

  • Catalog browsing across dedicated engines and spare-parts routes
  • Part-number search by SKU, title, subtitle and OEM number, with fuzzy matching in progress
  • Admin CRUD console for stock listings
  • HMAC-signed session cookies for single-admin authentication
  • Image management via Cloudinary

Technology Stack

  • Next.js 14
  • TypeScript
  • Tailwind CSS
  • Framer Motion
  • Drizzle ORM
  • Neon PostgreSQL
  • Cloudinary
  • GitHub Actions CI

Architecture

Next.js frontend -> Drizzle ORM -> Neon PostgreSQL, with Cloudinary handling product imagery and a single-admin auth layer protecting the CRUD console.

Database

PostgreSQL on Neon, accessed through Drizzle ORM.

API / Backend

Next.js route handlers serve catalog, search and admin CRUD operations directly against the database via Drizzle.

Authentication & Authorization

Single-admin, credential-based login with HMAC-signed session cookies protecting the admin console.

Security

Session auth is HMAC-signed, but the project's own README notes that Row-Level Security and a planned Stack Auth integration are not yet complete - noted here rather than presented as finished.

Challenges

Building fast, typo-tolerant part-number search across SKU, title, subtitle and OEM-number fields for a catalog spanning multiple engine brands.

What I Learned

Not documented yet - see the project source for the current implementation.

Future Improvements

Enabling fuzzy search matching, adding Row-Level Security, and completing the Stack Auth integration - all noted directly in the project's own README as in-progress work.

Live Demo

No public live demo for this project yet.

GitHub

github.com/oghenenoghie/anchorshipnll_frontend

Building production-ready software, one system at a time.