Retail · Management PWA with sync
Yanzim
Sales, stock and store credit system for a tobacco shop and snack bar, installable on the phone and able to keep selling offline.

- Client
- Sedinha Tabacaria e Lanchonete, a counter shop that sells a lot on store credit
- Where
- Brazil · used at the shop counter
- Technology
- HTML · CSS · JavaScript · PHP 8 · PDO · MySQL · Service Worker · PWA
- Status
- Private access · yanzim.nexialabs.com.br
- Development
- André Gomes · NexiaLabs
In short
Yanzim is the sales, stock and store credit system of Sedinha Tabacaria e Lanchonete, built by André Gomes at NexiaLabs. It runs as an installable app on phone and computer, saves every sale on the device first and then syncs it to a MySQL database on the hosting plan. It is written in plain HTML, CSS and JavaScript, with a PHP 8 API.
The client
Sedinha is a tobacco shop and snack bar that serves people over the counter, with neighborhood customers who buy now and pay later. Tracking store credit, stock and cash depended on notes and memory. The owner uses his phone during the day and the shop computer at other times. The connection at the shop is unstable, so any system that froze without signal would stop sales.
The challenge
The system had to record a sale in seconds, including installment store credit, and know who owes how much and since when. It had to work offline and still show the same data on phone and computer. It also could not require an application server or an extra monthly fee, because it runs on ordinary shared hosting. And installments had to add up exactly to the sale total, with no stray cents.
What was built
André built an installable web app that works on the device first and on the server second. Each sale is saved instantly in the browser and enters a queue that uploads to MySQL as soon as there is a connection, and every minute the app pulls what changed on the other device. The point of sale accepts cash, pix, debit, credit and store credit with a down payment and up to six installments, and warns when a sale exceeds the customer limit. Collection messages and receipts come out ready for WhatsApp. The first version kept everything in the browser only, and the business rules were isolated in a single file precisely so storage could be swapped for an API without touching the screens.
What the system does
- Dashboard with daily sales, credit receivable, overdue installments, a 14 day chart and low stock products.
- Point of sale with search, category filter, discount, custom items and five payment methods.
- Store credit with down payment, up to six installments, limit warnings and full or partial payment.
- A single customer payment is spread automatically over the oldest installments.
- Collection messages and receipts ready to send over WhatsApp.
- Cash book with automatic entries from sales and manual expenses and withdrawals.
- Reports on revenue, gross profit, margin, average ticket and best sellers, with CSV export.
- Login checked on the server, thirty day session and file backup.
// For whoever reviews the code: architecture and decisions.
Under the hood
The front end is plain HTML, CSS and JavaScript, with no framework and no build step, served as static files on Hostinger shared hosting. All business rules live in store.js, which keeps data in browser local storage; a cloud module sends changes to a PHP 8 API using PDO and MySQL, through a single entry point. In the database, the records table stores each item with two timestamps, the device one to resolve conflicts and the server one to know what still needs to be pulled, and deletions travel as tombstones. A network first service worker lets the app open without signal.
Technical decisions
- Write to the device first and sync later, so a sale never freezes when the connection drops.
- Sync per record with client and server timestamps, so two devices can edit different things without overwriting each other.
- Compute installments in cents, so they always add up to the sale total.
- bcrypt passwords, httponly and samesite strict cookie, a ten minute lockout after eight failures and a custom header required on every write.
Does your business look like this one?
Fits a grocery, tobacco shop, snack bar or any counter business that sells on credit and needs to know who owes what, without a paper notebook.
Frequently asked questions
Who developed Yanzim?
Yanzim was developed by André Gomes Andrade, a full stack developer from Carlos Chagas, Minas Gerais, Brazil, at NexiaLabs, from planning to launch.
Where is the client of Yanzim based?
Sedinha Tabacaria e Lanchonete, a counter shop that sells a lot on store credit. Brazil · used at the shop counter.
Which technologies were used to build Yanzim?
Yanzim uses HTML, CSS, JavaScript, PHP 8, PDO, MySQL, Service Worker, and PWA.
Can you build a similar project for my business?
Yes. Every project is custom built, with code and accounts in the client's name. The first step is a WhatsApp conversation at +55 (33) 98465 6356 to understand what you need.
More retail projects

Duvale Conveniência
Duvale site and apps: customers order in the app and pay on delivery, and staff run shift checklists on their phones.
Convenience store in Carlos Chagas
See the project
Private accessEspaço Pets
Pet shop system with a grooming schedule, a till with store credit and a link for owners to book on their own.
Pet grooming shop that also sells products over the counter
See the project
Hōma e Lojinha
Independent clothing store with WhatsApp ordering and a workshop system that handles production, stock and resellers.
Homa Confecções, an independent clothing workshop in the far south of Bahia that sells directly and through resellers
See the project