English · Português
Small business owners can use Alt to list their products and:
- Get an online page with their product catalog.
- Receive orders via WhatsApp.
- Configure delivery methods and payment options
- Do all of this with no fees.
Upcoming features:
- Physical Store Mode to display the catalog (and receive orders) for in-person customers.
- Dynamic Delivery Fee for a fair delivery fee calculation.
- Communities: for local groups to share their products.
Visit Refazenda, our sample store, and explore all the features available on the platform.
Alt's services are entirely free, and we intend to keep it that way forever. We currently rely on services such as Firebase and Vercel to offer these features at no cost.
In the future, we plan to ship a self-hosted version, so users can run it (for free) on their own accounts (Firebase and Vercel/Netlify).
The main motivation behind this project is to help local communities, and we count on the generous contributions of designers and developers.
This project is a Vite SPA. It renders Alt Admin, the administration dashboard where customers configure the available features, and also Alt Menu, the part of the system that renders each business's pages.
Here is a series of Alt Talks introducing the Alt application from a more technical angle and explaining some of the system modules:
- #001 - Running the project for the first time
- #002 - Authentication Module
- #003 - Opening Hours
- #004 - Assembly Options
- #005 - Order Module
- #006 - Internationalization
-
We use Firebase as the authentication and database provider. For local development, you can use the Firebase Emulator, distributed by Firebase itself. If you prefer to create your own Firebase project, you can also use it by configuring the environment variables as shown in
.env.exemplo. -
To set up the Firebase Emulator, follow these steps. This step can take a while, but you only need to do it once. The Firebase CLI will download the emulators (written in Java) and, eventually, the JDK. That lets you run a local version of Firebase's Firestore database.
Copy .env.exemplo to .env.development (or .env.local) and fill in the values you need. Vite exposes only variables prefixed with VITE_:
| Variable | Purpose |
|---|---|
VITE_FIREBASE_* |
Firebase web app config |
VITE_HERE_* |
Here Maps (optional locally) |
VITE_SENTRY_DSN |
Sentry (optional locally) |
With the Firebase emulator running, the app is configured for local development without a production Firebase project.
- Clone the project with
git clone git@github.com:alt-zap/alt-zap.git. - Run
yarnat the project root to install dependencies. - Run
yarn emulatorsto start the Firebase emulator. - In another terminal tab, run
yarn dev(alias:yarn start) to start the Vite dev server on http://localhost:3000. - On the home page, sign in with your Google account. Complete your Alt registration.
- After that, you do not need to create a new business through the Onboarding flow. Right after filling in your details, if you are on
localhost, you will be redirected to the "Bar do Lucis" dashboard. On later logins, you may need to click the My Businesses link in the Menu to reach the Admin panel. - To view this Tenant's menu, open http://localhost:3000/bardolucis.
Make sure you access the service using the localhost host.
Other scripts: yarn build produces dist/ (Vite bundle). Run yarn typecheck for a full TypeScript check (legacy strict issues may still be reported). yarn test runs Jest; yarn storybook starts Storybook on port 9009.
- We already seed some initial data so you do not need to configure anything. You can inspect it in the Firebase Emulator UI (usually at http://localhost:4000).
- The location service currently uses the Here SDK, which requires API keys. You can create an account and configure your environment if you want, but it is not required.
- To make local development easier, there are conditions in the code that load mock data. For example, we would normally load
tenantsfor the logged-in user'suserId, but onlocalhostwe always resolve to the same id (mine).
Feel free to report bugs, ask questions, and share suggestions in the repository issues.
