How Trackmint Is Built & Shipped — the complete guide
Everything about how this product gets made: who does what, the tech stack, every environment, every key and token, and the exact journey code takes from an idea to your iPhone. Written so anyone can follow it.
1. Who does what (the team model)
You (Barry) are the product owner: you describe features in plain words and make decisions. Claude (Cowork/Claude Code) is the designer AND the engineer: it designs the screens, writes the code, tests it, and ships it. Claude is also a worker inside the product (the AI employee on the board). Content tools (Higgsfield for video, this doc library for text) are the marketing department, also run by Claude under your approval. There is no human engineering team — that’s the point, and the story.
2. The tech stack (what it’s made of)
One codebase, four products. The app is written in
TypeScript using React Native + Expo —
write the screens once, and the SAME code becomes the iPhone app, the
Android app, and the web app. Firebase is the backend:
Auth (login accounts) and Firestore
(the database — one record per workspace, plus the
config/billing control record). There is deliberately
no server of our own — the app talks straight to
Firebase, which is why hosting costs $0 today. Git
records every change (13+ commits); pushing to GitHub
(waiting on your token) adds cloud backup and opens the door to
automatic CI later. Quality is guarded by the QA suite:
15 robot-driven workflows / 94 checks that replay real business
scenarios against every build.
3. The pipeline — how code becomes an app (the diagram)
In words: you describe → Claude writes React Native
code and tests it → git commit → two outputs from the same code: (a)
expo export produces the web app, copied
to your website; (b) EAS Build (Expo’s cloud build
farm) compiles the real iPhone app on Apple hardware in the cloud, signs
it with your certificates, and auto-submits to
TestFlight. From TestFlight, promoting to the public
App Store is a button in App Store Connect (add screenshots +
description, submit for Apple review). Android takes path (b) too — the
same EAS command with --platform android makes an APK now,
an AAB for the Play Store later (doc 36).
4. The environments (where things live)
- Claude’s cloud workspace — where code is written and the QA suite + video generator run. Ephemeral; everything important is committed to git.
- Your VPS (Hostinger, apex.socialtokens.site) — serves the website + docs + videos + admin console + web app; also the machine that runs EAS build/submit commands (it holds the signing credentials).
- EAS cloud (expo.dev, account
bazdev0001) — Expo’s build farm; compiles iOS/Android, stores the Android keystore. - Apple App Store Connect — receives builds, runs TestFlight, and (later) the public App Store listing.
- Firebase project
trackmint-a8604(Spark plan, $0) — Auth + Firestore. This is production data. - Your iPhone / any Android phone — TestFlight app + APK installs.
5. Every key & token (what unlocks what)
| Credential | What it unlocks | Where it lives |
|---|---|---|
| EXPO_TOKEN | Runs EAS builds/submits without logging in | VPS (passed inline to each build command) |
| Apple ASC API key (.p8, ID K3DJLR35C6 + issuer ID) | Auto-submitting builds to TestFlight | Path configured in eas.json (submit profile) |
| iOS distribution cert + provisioning profile | Signing the iPhone app | Managed by EAS (“local credentials”) |
| Android keystore | Signing the Android app | Generated & stored by EAS |
| Firebase web config (apiKey etc.) | Lets the app find your Firebase project — public by design, NOT a secret | Inside the app code |
| Firestore security rules | The real security: who may read/write what | Firebase Console (owner-only writes to config) |
| Firebase service-account key | The admin & agent CLIs (bypasses all rules) | ⚠️ NOT YET CREATED — you generate it (Console → Service accounts) |
| GitHub Personal Access Token | Pushing the 13 commits to a TrackMint repo | ⚠️ NOT YET PROVIDED |
| Higgsfield API key (ID 02bb2287-…) | AI video generation for marketing | Recorded; needs its paired secret to use |
| Google Play service-account JSON | Automated Play Store submissions | Later — after you create the Play Console account |
Rule of thumb: the Firebase web config is safe to publish; everything else in this table is a secret — never commit any of them (the repo’s .gitignore already blocks the key filenames).
6. The admin tool — how it’s delivered (decision)
Your instinct was right: it’s now a web app — the
Admin Console at /admin.html on your
website. Sign in with your owner account and you get the billing master
switch, tier prices, trial length, vertical pricing, and the paywall
message — usable from any browser, nothing to install, and safe:
database rules mean only YOUR account’s writes are accepted (anyone else
who finds the page gets “denied”). It is NOT a separate App Store
product — that would be slower to update and overkill for one operator.
The CLI (trackmint-admin.js, doc 30) stays
as the deep tool for what browser rules rightly can’t allow: managing
OTHER users (create/delete/passwords) and editing other people’s
workspace records — that needs the service-account key. So: web
console for everyday control, CLI for surgery. Both exist
today.
7. Release checklist (the routine, every version)
Code + tsc clean → 94-check QA suite green → web export
→ deploy website/webapp → eas build --auto-submit (iOS;
Android APK on demand) → verify “uploaded to App Store Connect” in the
build log → commit → update docs. This exact routine has shipped builds
7 through 15.