Skip to main content
Elimane BADeveloper
FREN
← WorkCase study 03 / 11

03

Kasly

Point-of-sale software

Point-of-sale (POS) software for a shop: checkout, stock, sales and reports. In production since October 2026.

Role
Backend Developer
Disciplines
Web / Backend
Stack
  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • NextAuth
  • PostgreSQL
  • Supabase
  • Prisma
  • Zod
  • Vercel
Links
Open the app ↗
Kasly dashboard: today's sales, stock status and recent sales
KaslyFig. 01
Kasly — visual 2
KaslyFig. 02

01 / The problem

A shop needs to check out quickly, track its stock in real time and know what it sells — without a network error or a double click ever creating a duplicate sale.

02 / The solution

A complete point-of-sale app: checkout, product and category catalog, stock movements (in, out, adjustment, sale, return), sales history, dashboard and reports, user management and shop settings. Payments by cash, Wave, Orange Money, card or mixed.

03 / Architecture

Architecture

Next.js (App Router), React, TypeScript and Tailwind CSS for both the interface and the APIs; NextAuth (username, bcrypt password, JWT sessions); PostgreSQL on Supabase through Prisma; Zod validation; hosted on Vercel. Tables live in a private schema with two restricted PostgreSQL roles and row-level security (RLS), with no access for Supabase's public API.

04 / Technical challenges

Technical challenges

  1. 01Sales in serializable transactions: one checkout reference creates exactly one sale, even when retried
  2. 02Three roles (admin, manager, cashier) whose changes apply from the very next request
  3. 03Database isolation inside a shared Supabase project, with non-superuser PostgreSQL roles

05 / Highlights

Highlights

  1. 01Duplicate-free checkout thanks to serializable transactions
  2. 02Stock tracked through movements, reports and dashboard
  3. 03Admin, manager and cashier roles

06 / Results

Results

  1. 01In production at kasly.odacestudio.com since October 17, 2026
  2. 02Integration tests on a temporary PostgreSQL database and an end-to-end test in production
  3. 03Brand identity designed alongside: logo, color palette and app icon

Lesson learned

“On a point-of-sale system, the reliability of a sale matters more than anything else: guaranteeing that a checkout is never recorded twice shaped the whole data layer.”

Next project04

APROSI Tickets →

Have a similar project in mind?

Get in touch →