Supermais
The Atende Mais supermarket on your phone, with in-store prices and stock.
Delivery app for the Atende Mais supermarket chain in Anápolis, Brazil, with a catalog fed by the store's ERP, charging only for what was picked and a panel for the store team.

- Client
- Atende Mais
- Year
- 2024-2026
- My role
- Development of the app, the store panel, the ERP integration and payments; store releases.
- Platforms
- iOS, Android
In action
Worth calling out
Catalog from the ERP
Prices, deals and stock updated throughout the day, without wiping the team's edits.
Fair charging
Customers pay only for what was picked: a missing item is never charged.
Store panel
Staff and managers follow every order in the store's own panel.
Generated API client
The app talks to the API through generated hooks that stay in sync with the backend.
The problem
The Atende Mais chain wanted to sell through a phone app without maintaining a second catalog. Prices, daily deals and stock already live in the store's ERP, and they change several times a day.
The app had to reflect that without running over the team, who sometimes adjust a product's name, photo or deal by hand. And payments had to handle a supermarket's daily reality: out-of-stock items, substitutions, quantities adjusted while picking.
The solution
Supermais is the chain's delivery app, for iOS and Android. Customers browse categories, deals and new arrivals, search for products, build recurring shopping lists, pick their address on a map and pay with a saved card, Google Pay or a coupon. The catalog can be browsed without signing in.
On the other side, the store runs everything from its own panel: the operator panel, with an order board and table, order details and printing, and a management panel. Every status change becomes a notification in the customer's app.
How it works
The catalog is updated from the store's ERP several times a day, and the edits the team makes by hand survive the next update. The app's stock already accounts for the day's online sales.
At checkout, the final amount is only charged when the order is ready, based on what was actually picked. If an item was missing, the customer pays only for what they get.
The app uses Expo with Expo Router and NativeWind, and its API access is generated from the backend documentation. It asks for an update when the installed version falls behind, and app and backend share the same types.
My role
I've worked on Supermais since 2024 and today I take care of the whole monorepo: the app, the store panel, the ERP integration, payments and the App Store and Google Play releases.
A closer look
Built with
- React Native
- Expo
- TypeScript
- NativeWind
- React Query