Google Play — the RideKit demo apps
The three apps RideKit publishes under its own developer account so that buyers
can try the product on a real phone. They are DEMO builds of the product apps:
same code, built with EXPO_PUBLIC_DEMO_MODE=1, pointed at the public demo
server, with an amber "DEMO" strip on every screen and a sign-in hint that
explains the demo login. Nothing here ships to a buyer.
| Listing title (≤30 chars) | Package | App | Category |
|---|---|---|---|
| RideKit Demo | dev.ridekit.demo.rider |
mobile/rider |
Maps & Navigation |
| RideKit Demo Driver | dev.ridekit.demo.driver |
mobile/driver |
Maps & Navigation |
| RideKit Demo Fleet | dev.ridekit.demo.fleet |
mobile/partner |
Business |
Package names are permanent once published. They are deliberately NOT the
product defaults (dev.ridekit.rider …) so a buyer who forgets to rebrand is
not blocked by our listings, and so "demo" is visible in the id.
Building
# signing: ~/.ridekit/upload.env (RIDEKIT_UPLOAD_*), created once with keytool — BACK IT UP
# Maps key: ~/.ridekit/demo-android.env → GOOGLE_MAPS_API_KEY=<Android-restricted key>
mobile/scripts/build-store-aab.sh rider --demo --apk --version-code 1
mobile/scripts/build-store-aab.sh driver --demo --apk --version-code 1
mobile/scripts/build-store-aab.sh partner --demo --apk --version-code 1
# → mobile/build/<app>/dev.ridekit.demo.<x>-1.0.0-1.aab (+ .apk for sideload/QA, + .sha256)
Every upload needs a higher --version-code. The script restores android/
to the committed state afterwards and fails if git still sees a change there.
Upload key: alias ridekit-upload, SHA-1
E1:17:52:73:34:CD:15:58:EC:D3:ED:72:5A:D4:0A:98:21:C0:47:BE
(~/.ridekit/upload.keystore, password in ~/.ridekit/upload.env). Play App
Signing (Google-managed signing key) is the right choice at app creation.
Google Maps key — do this BEFORE the first upload
The backend's key is a server key; the apps need their own, restricted to these apps, or an extracted key can be abused on our bill.
- Google Cloud console → APIs & Services → Credentials → Create API key,
name
RideKit demo apps (Android). - API restrictions: Maps SDK for Android only.
- Application restrictions: Android apps → add three entries, package name
- SHA-1:
dev.ridekit.demo.rider,dev.ridekit.demo.driver,dev.ridekit.demo.fleeteach with the upload-key SHA-1 above (lets sideloaded QA builds work), and- the same three packages again with the App signing key SHA-1 that Play Console shows after the first upload (Release → Setup → App signing). Without this, maps are blank on devices that install from Play.
- Put it in
~/.ridekit/demo-android.envasGOOGLE_MAPS_API_KEY=…and rebuild. Never commit it.
Play Console — per app
Create app: name from the table, "App", "Free", the declarations below. Organization account → no 20-tester/14-day gate; a first review typically clears in a few hours to a few days.
Store listing
- App icon:
assets/<app>/icon-512.png· Feature graphic:assets/<app>/feature-1024x500.png - Phone screenshots: 7–8 per app, 1080×2400, from
docs/media/(list in the kit folder~/Desktop/RideKit-Play-Kit/<app>/screenshots/). - Short and full descriptions: below.
- Contact email:
ridekitdev@gmail.com· Website:https://ridekit.dev - Privacy policy:
https://ridekit.dev/legal/privacy(has a section for the demo apps)
App content
| Declaration | Answer |
|---|---|
| Privacy policy | https://ridekit.dev/legal/privacy |
| Ads | No ads |
| App access | "All or some functionality is restricted" → instructions below |
| Content rating (IARC) | Utility/productivity; no violence, sexual content, gambling, drugs, user-to-user chat outside a trip; → Everyone |
| Target audience | 18 and over |
| News app | No |
| COVID-19 contact tracing / status | No |
| Data safety | tables below |
| Government app | No |
| Financial features | None (demo; test-mode wallet, no real money) |
| Health | None |
| Account deletion | in-app (Settings → Delete account) and https://api.ridekit.dev/api/account/deletion/web |
App access instructions (paste as-is)
This is a demonstration of the RideKit ride-hailing source product on a demo server. Sign in with ANY mobile number; no SMS is sent — the 6-digit code is filled in automatically on the code screen (the master code 000000 also works). Rider demo: any number. Driver demo: any number (a new driver lands in onboarding; to see an approved driver with trips use +91 97550 00001). Fleet demo: +91 95550 00101 (sample fleet owner "Sharma Travels"), code 000000. Data is sample data and is reset periodically.
Driver app only — Location permissions declaration (Policy → App content → Sensitive app permissions → Location)
- Feature: live trip tracking for a ride-hailing driver.
- Why background: while a driver is on an accepted trip they navigate in a maps app, so ours is in the background; the rider and the dispatcher must keep seeing the car move. Tracking starts on trip accept and stops on trip completion or cancellation. Foreground service with a persistent notification ("… — on a trip · Sharing your live location with your rider").
- Prominent disclosure: shown in-app before the system prompt
(
mobile/driver/src/lib/bg-location.ts), with Allow / Not now; a decline leaves the trip on foreground-only pings. - Video:
~/Desktop/RideKit-Play-Kit/driver/background-location.mp4(upload to Drive or YouTube unlisted and paste the link) — shows the disclosure, the system prompt, the trip running with the app minimised and the notification.
Data safety (Policy → App content → Data safety)
Common answers: data is encrypted in transit (HTTPS) — Yes; users can request deletion — Yes (URL above); no data shared with third parties; no data used for advertising; not committed to Families policy.
| Data type | Rider | Driver | Fleet | Purpose | Optional? |
|---|---|---|---|---|---|
| Name | collected | collected | collected | Account management, app functionality | optional |
| Phone number | collected | collected | collected | Account management (sign-in) | required |
| Approximate + precise location | collected (in use) | collected (in use + background on a trip) | no | App functionality | required for rides |
| Photos (documents) | no | collected | no | App functionality (driver documents) | optional |
| Other user-generated content (ratings, chat) | collected | collected | no | App functionality | optional |
| App interactions / crash logs | no | no | no | — | — |
"Ephemeral processing" applies to nothing; everything above is stored on the demo server until it is reset.
Listing copy
RideKit Demo (rider)
Short description (≤80):
Try the RideKit rider app: book, track and pay for demo rides. Sample data.
Full description:
DEMO APP — not a taxi service. This is the rider app of RideKit, a ride-hailing platform sold as source code (ridekit.dev). It runs against a public demo server with sample data so you can try the real product on your own phone before buying it. No real rides, no real charges.
Sign in with any mobile number — no SMS is sent, the code is filled in for you.
What you can try: • Book a ride: pickup, drop, vehicle class, fare estimate, promo codes • Watch a demo driver accept and drive to you on the live map • Chat and call masking during a trip, SOS, trip sharing • Wallet top-up (test mode), cash, card, UPI options • Parcels, rentals and intercity bookings, scheduled rides • 14 languages incl. Hindi, Arabic (RTL), Spanish, Portuguese
RideKit ships the rider app, driver app, fleet-owner app, admin console and backend as one source package with documentation, tests and a license key you can verify offline. Details, pricing and the admin demo: https://ridekit.dev
Demo data is reset from time to time. Privacy: https://ridekit.dev/legal/privacy
RideKit Demo Driver
Short description:
Try the RideKit driver app: go online, take demo offers, drive, earn. Sample data.
Full description:
DEMO APP — not a taxi service. This is the driver app of RideKit, a ride-hailing platform sold as source code (ridekit.dev), running against a public demo server with sample data. No real trips, no real earnings.
Sign in with any mobile number — no SMS is sent, the code is filled in for you. A new number starts at driver onboarding (documents, vehicle). To see an approved driver, use +91 97550 00001.
What you can try: • Go online, receive a ride offer with a countdown, accept • Navigate to pickup, start and complete a demo trip, rate the rider • Live location sharing with the rider while you navigate (foreground service; you approve it in-app first) • Earnings, quests, heat map of demand, destination mode • Documents and vehicle management, withdrawals (test mode) • 14 languages incl. Hindi, Arabic (RTL), Spanish, Portuguese
RideKit ships the rider app, driver app, fleet-owner app, admin console and backend as one source package. Details and pricing: https://ridekit.dev
Demo data is reset from time to time. Privacy: https://ridekit.dev/legal/privacy
RideKit Demo Fleet
Short description:
Try the RideKit fleet-owner app: drivers, cars, trips and payouts. Sample data.
Full description:
DEMO APP — not a taxi service. This is the fleet-owner app of RideKit, a ride-hailing platform sold as source code (ridekit.dev), running against a public demo server with sample data.
Sign in as the sample fleet owner: +91 95550 00101, code 000000. Any other number signs in too and shows the fleet application flow.
What you can try: • Overview of the fleet: active drivers, trips today, revenue • Drivers: invite, assign vehicles, lease or revenue-share terms, documents • Vehicles: add, retire, see utilisation • Trips and earnings with settlement breakdowns, payouts (test mode)
The app asks for no phone permissions at all. RideKit ships the rider app, driver app, this fleet app, the admin console and the backend as one source package. Details and pricing: https://ridekit.dev
Demo data is reset from time to time. Privacy: https://ridekit.dev/legal/privacy
Release notes (all three, first release):
First public demo build. Sample data on a demo server; sign in with any number, no SMS is sent.
Order of operations
- Create the Android-restricted Maps key (section above) →
~/.ridekit/demo-android.env. - Build the three AABs (
--version-code 1). - Play Console: create the three apps, fill store listing + app content, upload each AAB to Internal testing first.
- Copy each app's App signing SHA-1 into the Maps key restriction.
- Install from the internal-testing link on a real phone; check maps render, demo strip shows, sign-in works, driver trip runs with the app minimised.
- Promote to Production. Review usually clears within a day for an organization account.
- Add the Play links to ridekit.dev (
/demopage) and the CodeCanyon listing.
Later: iOS via TestFlight public links (App Store review rejects demo apps; TestFlight does not).