ALEXPYLES
Full-StackBackend

Blue Carp ERP

Production ERP system for a Thai electronics distributor, replacing a spreadsheet-based sales process.

Blue Carp ERP dashboard with pipeline and revenue metrics
Blue Carp ERP pipeline board with RFQ, quote, PO, and DO stages
Blue Carp ERP RFQ detail view
Blue Carp ERP printable quotation document

01 // The_Problem

A Thai electronics distributor needed its sales paperwork — RFQ through invoice — to stop living in disconnected spreadsheets and start living in one system where every document traces back to the one before it.

02 // Stack

Next.js 15React 19TypeScriptSupabasePostgreSQL

03 // Key_Decisions

  • Single connected document chain — RFQ → Quotation → Purchase Order → Delivery Order → Invoice — where each stage is generated from the one before it, not re-entered.
  • Auto-generated, collision-safe document numbers via PostgreSQL triggers rather than application-layer counters — correct under concurrent writes.
  • Server Actions architecture instead of a separate REST/GraphQL API layer — a deliberate Next.js 15 pattern choice.
  • Strict TypeScript end-to-end on a real client codebase, not a greenfield demo.

04 // Summary

Replaced a Thai electronics distributor's spreadsheet-based sales process with a single connected document chain — RFQ to quotation to purchase order to delivery order to invoice — where each document generates the next instead of being re-typed. Document numbers are assigned by PostgreSQL triggers, so the system stays correct under concurrent use. Built solo on Next.js 15 and Supabase; live in daily production use.