RideKit
Docs/Reference/Google Play — the RideKit demo apps

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.

  1. Google Cloud console → APIs & Services → Credentials → Create API key, name RideKit demo apps (Android).
  2. API restrictions: Maps SDK for Android only.
  3. Application restrictions: Android apps → add three entries, package name
    • SHA-1:
    • dev.ridekit.demo.rider, dev.ridekit.demo.driver, dev.ridekit.demo.fleet each 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.
  4. Put it in ~/.ridekit/demo-android.env as GOOGLE_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

  1. Create the Android-restricted Maps key (section above) → ~/.ridekit/demo-android.env.
  2. Build the three AABs (--version-code 1).
  3. Play Console: create the three apps, fill store listing + app content, upload each AAB to Internal testing first.
  4. Copy each app's App signing SHA-1 into the Maps key restriction.
  5. 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.
  6. Promote to Production. Review usually clears within a day for an organization account.
  7. Add the Play links to ridekit.dev (/demo page) and the CodeCanyon listing.

Later: iOS via TestFlight public links (App Store review rejects demo apps; TestFlight does not).

source: docs/marketing/play-store/README.md (ships identically in the product zip)