Back to work
Full-stack·2026·InterStar Jumbo

Jumbo / InterStar

Full e-commerce and ERP system. Storefront returning soon after a compliance update.

Next.js 16React 19SupabasePostgreSQLGemini AITailwind v4RechartsSentry
Context
InterStar Jumbo is a retail toy chain. Before this build, the business lived across spreadsheets, a manual cash register, and no online presence. They needed a single system.
Timeline
12 weeks, solo
Role
Design, architecture, full implementation, deployment
Surfaces
Storefront · POS · Admin
Security
RLS + rate limiting
AI
Product scan & search
Inventory dashboard for InterStar Jumbo with product cards, stock counts, and live revenue totals in MKD.

What I built

  • A customer-facing storefront (Next.js 16, App Router) with product catalog, search, cart, checkout.
  • A cashier-facing POS surface with barcode input, stock validation, and receipts.
  • An admin dashboard covering orders, stock, customers, and analytics powered by Recharts.
  • An AI product scanner that identifies items from an uploaded photo using Google Gemini.
  • A unified Supabase backend with Postgres, Auth, and Storage.
New-item form with a photo upload area for AI product recognition, plus name, category, description, cost, price, and quantity fields.
Adding a new article: photo-based recognition with manual fallback.

Architecture

Frontend
Next.js 16React 19Tailwind v4Recharts
Backend
SupabasePostgreSQLRow-Level SecurityRate limiting
AI
Gemini 2.5 FlashVision inputStructured output
Ops
Vercel deploySentry error trackingEdge caching

Interesting decisions

Decision

Atomic stock transactions

Under concurrent purchases, naive stock decrement creates double-sells. All POS and storefront writes go through a Postgres function that locks, checks, decrements, and records in one transaction. No overselling, no drift.

Decision

Cyrillic ↔ Latin search transliteration

Macedonian customers search in Cyrillic. Product names are stored Latin-primary. Search normalizes both ways at query time so either script finds the right product, without duplicating the catalog.

Decision

AI scan as progressive enhancement

Scan is a convenience, not a dependency. The cashier can always fall back to barcode or manual search. Gemini calls are rate-limited per user and the scan UX degrades gracefully if the model returns low confidence.

Analytics screen with order count, processing/delivered/cancelled status cards, daily orders + revenue chart, and an order-status donut.
Operational analytics: orders, revenue, status mix, all from a single source of truth.

Result

Shipped end to end as a team of one. The POS clears a transaction under 300ms on the shop floor, inventory and admin analytics run from a single source of truth, and the catalog is managed in-house without an agency retainer.

Have a build like this in mind?