Quick start
the app in your browser.
Run the API on your computer and the app in Chrome in demo mode, with live market data and no accounts. Then look at the operator console with its sample data.
01Web demo with live data
You need Flutter and Node.js 22 (Requirements). Open two terminals in the source/ folder of the download (it holds app/, firebase/ and admin/).
- Start the APIIn the first terminal:
The log sayscd firebase/functions npm ci npm run dev:api # http://localhost:8787 - in-memory store, demo settings, keyless CoinGeckoCryptocurrency Tracker API (dev, demo mode) on http://localhost:8787/v1/markets. Open that address in a browser: you see live market data as JSON. - Start the appIn the second terminal:
Chrome opens the app.cd app flutter pub get flutter run -d chrome --dart-define=DEMO_MODE=true --dart-define=API_BASE_URL=http://localhost:8787
Explore the markets, open a coin, add coins to the watchlist, add an alert, look at the sample portfolio, the news and the market brief. Demo mode has no Firebase, so:
- your watchlist, portfolios, alerts and wallets are kept in the browser;
- the portfolio starts with a "Sample portfolio — demo data" you can delete;
- alerts are checked in the page on each price refresh and shown as a banner marked "Demo: on a phone this is a push notification";
- ads are simulated and labelled, purchases are simulated ("Demo — no charge"), affiliate links and sponsored items are labelled samples;
- the brief and coin reports are the labelled Automatic summary (no AI key).
The web build exists only as a demo. The real app targets Android and iOS; ads, store purchases, push and widgets do not run on the web. If port 8787 is busy, start the API with PORT=8788 npm run dev:api and use that port in API_BASE_URL.
02The console with sample data
In a third terminal:
cd admin
npm ci
ADMIN_DATA=sample ADMIN_SECRET_KEY=$(openssl rand -hex 32) npm start # http://localhost:8790/admin
The log prints a one-time setup code. Open http://localhost:8790/admin, choose Create the owner, enter the code, an e-mail and a password of 12 or more characters. You now see every settings section and product page with built-in sample data, labelled "Sample", and no Firebase at all. The sample has no revenue. Nothing you do here reaches an app.
03Or look at the hosted demo
The same demo is online: the app at cryptotracker-demo.mikodes.com and a read-only console at cryptotracker-demo.mikodes.com/admin.