Retail · Website + ordering app + staff app
Duvale Conveniência
Duvale site and apps: customers order in the app and pay on delivery, and staff run shift checklists on their phones.

- Client
- Convenience store in Carlos Chagas
- Where
- Carlos Chagas, MG, Brazil
- Technology
- React Native · Expo · TypeScript · Expo Router · TanStack Query · Zustand · NativeWind · PostgreSQL · Supabase (self hosted) · pg_cron · pgTAP · Deno
- Status
- Live · duvale.app.br
- Development
- André Gomes · NexiaLabs
In short
Duvale Conveniência is a convenience store in Carlos Chagas, Minas Gerais, Brazil. André Gomes, at NexiaLabs, built the duvale.app.br website, the ordering app with payment on delivery, in the final stage of store publication, the operations center and Duvale Checklist, the staff app published on Google Play, where the manager builds each shift checklist and the team answers with photos, even offline. All in React Native with Expo and PostgreSQL with row level security, on a self managed Hostinger server.
The client
Duvale is a neighborhood convenience store with counter service that wanted to sell by delivery too, without depending on a third party app. A convenience store runs a fixed routine per shift: opening, stock checks, cleaning, closing. At Duvale that routine depended on paper and on someone remembering to follow up. Without being in the store, the manager had no way to know what was done, by whom and when. Internal notices got lost in chat groups, with no way to tell who had read them.
The challenge
The app would be used at the counter, on basic phones, under bright light and with unstable internet. The manager needed to change a checklist without calling a developer. An item answered no needed a justification, and an item that asks for proof needed a photo, without burning through the store's data plan. And each employee could only see their own work, never a coworker's runs or history.
What was built
The site presents the store, shows the catalog straight from the app and explains how to order: customers pick in the app, give name, phone and address without creating an account and pay at the door, in cash, Pix or card. For the staff, andré built an Android app with two areas, manager and employee. The manager builds the checklist in the app's editor, picks each item's type, drags to reorder, sets who runs it by role or by person and previews it before publishing. Employees see the day's checklists by shift, with a deadline and progress bar; the camera opens directly when an item needs a photo, and the image is shrunk before upload. Offline, answers wait in an on device queue with a visible notice and upload by themselves when the network returns. Separation between stores and between people is enforced in the database, by an access policy on every table.
What the system does
- Store website with a catalog updated straight from the app and a step by step on how to order.
- Ordering without sign up and payment only on delivery, with the total shown before confirming.
- Operations center with orders, catalog and dashboard in one place.
- Checklist editor inside the app, with yes or no, text, number, choice and photo items.
- Daily checklists split by shift, with a deadline and a progress bar.
- Mandatory justification when an item is answered no, with an alert for the manager.
- Works offline and syncs by itself when the connection returns.
- Manager dashboard with completed, pending and late runs, and who still owes work this shift.
- Internal notices by push notification, to the whole store, a role or specific people, with read and acknowledgment tracking.
- Export any period to CSV for Excel.
// For whoever reviews the code: architecture and decisions.
Under the hood
The app is React Native with Expo and Expo Router, one screen per file, reading and writing data through TanStack Query; session state and the offline queue live in Zustand with on device persistence. The backend is PostgreSQL with the Supabase stack running in Docker on a Hostinger VPS: a REST API over the database, authentication, photo storage and Deno functions to create users and send notices. Every table has a row level security policy per store and per person, covered by 29 pgTAP tests. A scheduled database job marks late checklists every 10 minutes, and the app does the same check on open in case the scheduler is missing.
Technical decisions
- Permissions are enforced in the database with row policies, not just in the UI, so no direct API call can reach another store's or another employee's data.
- Photos are resized to at most 1200 pixels wide and compressed on the device before upload, because the store has limited internet.
- Tailwind's default palette was removed and replaced with Duvale's scale, with an audit that compares every class used against the generated CSS, because a missing class fails silently.
- Automated check for missing Portuguese accents on screen text, because misspelled words pass every type check.
Does your business look like this one?
Fits stores, restaurants, gas stations and any business with shift routines that still rely on paper and verbal follow up.
Frequently asked questions
Who developed Duvale Conveniência?
Duvale Conveniência 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 Duvale Conveniência based?
Convenience store in Carlos Chagas. Carlos Chagas, MG, Brazil.
Which technologies were used to build Duvale Conveniência?
Duvale Conveniência uses React Native, Expo, TypeScript, Expo Router, TanStack Query, Zustand, NativeWind, PostgreSQL, Supabase (self hosted), pg_cron, pgTAP, and Deno.
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
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
Olá Amiga Bags
Handbag storefront with booking over WhatsApp and a panel that tracks stock, sales, installment credit and collections.
Women's handbag shop that sells over WhatsApp and on installment credit
See the project