
This comprehensive tutorial will walk you through building a Lyft-style rideshare app using Adalo's no-code platform. While some features like real-time GPS tracking require workarounds, you'll create a functional app with driver-rider matching, payment processing, and trip booking capabilities.
Prerequisites and Initial Setup
Step 1: Create Your Adalo Account
- Go to Adalo.com and sign up
- Choose a paid plan — publishing to the app stores requires one. See Pricing
- Click "Create New App"
- Choose "Mobile App" (essential for location features)
- Name your app (e.g., "RideClone")
- Select "Start from Scratch"
Step 2: Configure App Settings
- Choose a primary color (pink for Lyft-style)
- Select modern, clean theme
- Pick professional font
- Enable location permissions in app settings
- Click "Continue" to enter editor
Setting Up the Database
Step 3: Enhance the Users Collection
- Click Database icon in left sidebar
- Select the default "Users" collection
- Add these properties (click "+ Add Property"):
- Role (Text) - Values: "Driver", "Rider", "Both"
- Driver Status (Text) - Values: "Available", "Busy", "Offline"
- Current Location (Location)
- Profile Picture (Image)
- Phone Verified (True/False - default: false)
- Driver License (Image)
- Background Check (Text) - Values: "Pending", "Approved", "Rejected"
- Rating Average (Number - default: 5.0)
- Total Trips (Number - default: 0)
- Stripe Account ID (Text)
Learn more about the Users collection
Step 4: Create Vehicles Collection
- Click "+ Add Collection"
- Name it "Vehicles"
- Add properties:
- Make (Text)
- Model (Text)
- Year (Number)
- Color (Text)
- License Plate (Text)
- Vehicle Type (Text) - Values: "Standard", "Premium", "Luxury"
- Insurance Document (Image)
- Is Active (True/False - default: true)
Step 5: Create Trips Collection
- Click "+ Add Collection"
- Name it "Trips"
- Add properties:
- Pickup Location (Location)
- Destination Location (Location)
- Trip Status (Text) - Values: "Requested", "Accepted", "In Progress", "Completed", "Cancelled"
- Fare Amount (Number)
- Distance Miles (Number)
- Trip Duration (Number) - in minutes
- Pickup Time (Date & Time)
- Start Time (Date & Time)
- End Time (Date & Time)
- Special Instructions (Text)
- Payment Status (Text) - Values: "Pending", "Completed", "Failed"
- Surge Multiplier (Number - default: 1.0)
Step 6: Create Ratings Collection
- Click "+ Add Collection"
- Name it "Ratings"
- Add properties:
- Stars (Number - 1 to 5)
- Comment (Text - check "Multiline")
- Rating Type (Text) - Values: "Driver", "Rider"
- Created At (Date & Time - Automatic)
Step 7: Create Messages Collection
- Click "+ Add Collection"
- Name it "Messages"
- Add properties:
- Message Text (Text)
- Sent At (Date & Time - Automatic)
- Is Read (True/False - default: false)
Step 8: Set Up Relationships
- In Vehicles:
- Add "Owner" → Users (Many to One)
- In Trips:
- Add "Rider" → Users (Many to One)
- Add "Driver" → Users (Many to One)
- Add "Vehicle Used" → Vehicles (Many to One)
- In Ratings:
- Add "Trip" → Trips (Many to One)
- Add "Reviewer" → Users (Many to One)
- Add "Reviewed User" → Users (Many to One)
- In Messages:
- Add "Trip" → Trips (Many to One)
- Add "Sender" → Users (Many to One)
- Add "Recipient" → Users (Many to One)
Building User Authentication
Step 9: Create Role Selection Screen
- Add new screen "Choose Role"
- Make it appear after user signup
- Add two Button components:
- "I want to drive" - Updates User → Role to "Driver"
- "I need a ride" - Updates User → Role to "Rider"
- Add Toggle for "Both" option
- Navigate to appropriate home screen based on selection
Step 10: Build Phone Verification
- Add new screen "Phone Verification"
- Add Text Input for phone number
- Add Button "Send Code"
- Create a Custom Action to send & verify SMS codes (Adalo doesn’t natively verify phone numbers). See Custom Actions
- Add verification code input screen
- Update User → Phone Verified on success
Step 11: Create Driver Verification Screen
- Add new screen "Driver Verification"
- Add Form component with fields:
- License upload (Image Picker)
- Insurance document (Image Picker)
- Vehicle information (Text Inputs)
- On form submit:
- Create Vehicle record
- Update User → Background Check to "Pending"
- Send admin notification for review
Installing Essential Components
Step 12: Install Location Components
- Go to Component Marketplace
- Install free Maps component
- (Optional) Add PragmaFlow GeoLocation to improve on-screen GPS accuracy for pickup/ETA screens. Get it from the Marketplace
- Configure Google Maps API key in app settings
- Enable location permissions prompt
Step 13: Install Payment Components
- Install Stripe Connect (Marketplace) — rider-to-driver payouts require Connect. See Marketplace Payments
- Configure Connect in the Adalo component (per the guide above)
- Configure platform fee percentage (e.g., 20%)
- (If not yet added) Install Stripe Connect (Marketplace)
Step 14: Install Communication Components
- Install Chat component for messaging
- Use Adalo Push Notifications — native and maintained. See Push notifications
- Configure iOS/Android push credentials (per the Adalo guide)
- Set up notification triggers
Building the Rider Experience
Step 15: Create Rider Home Screen
- Add new screen "Rider Home"
- Add Maps component (full screen):
- Set location to User → Current Location
- Show nearby available drivers as markers
- Add "Where to?" search bar at bottom
- Add Button "Request Ride"
Step 16: Build Trip Request Flow
- Add new screen "Request Trip"
- Add Form with pickup/destination inputs:
- Use Address Autocomplete for locations
- Display pickup and destination on map
- Calculate distance using: MILES(Pickup Lat, Pickup Lon, Dest Lat, Dest Lon)
- Display fare estimate: Base_Fare + (Distance * Rate_Per_Mile) * Surge_Multiplier
- Add vehicle type selection (Standard, Premium, Luxury)
Step 17: Create Driver Selection Screen
- Add new screen "Choose Driver"
- Add Custom List filtered by:
- Role = "Driver"
- Driver Status = "Available"
- Distance formula: MILES(Current Location, User Location) < 5
- Sort by distance from pickup location
- Display driver cards showing:
- Profile picture and name
- Vehicle information
- Rating and total trips
- Distance away and ETA
Step 18: Build Trip Tracking Screen
- Add new screen "Track Trip"
- Add Maps component with:
- Driver location (refreshes while the screen is open; use a Timer ~15–30s)
- Pickup and destination markers
- Route line between points
- Add status indicators:
- "Driver is X minutes away"
- "Driver has arrived"
- "Trip in progress"
- Add a Timer to trigger on-screen refresh (background updates aren’t native)
Building the Driver Experience
Step 19: Create Driver Dashboard
- Add new screen "Driver Home"
- Add status toggle: Available/Offline
- Add Maps component showing driver's location
- Display daily earnings and trip count
- Add "Go Online" button that updates Driver Status
Step 20: Build Trip Request Notifications
- Add new screen "Incoming Request"
- Show trip details:
- Pickup location and destination
- Estimated fare and distance
- Rider information and rating
- Add timer countdown (60 seconds to respond)
- Add "Accept" and "Decline" buttons:
- Accept: Update Trip → Driver, change status to "Accepted"
- Decline: Remove request from driver's queue
Step 21: Create Navigation to Rider
- Add new screen "Navigate to Pickup"
- Display Maps with route to pickup location
- Add "Arrived" button:
- Updates Trip Status to "Driver Arrived"
- Sends notification to rider
- Add "Start Trip" button (appears after arrival):
- Records Start Time
- Changes status to "In Progress"
Step 22: Build Trip Completion Flow
- Add "End Trip" button to active trip screen
- On trip completion:
- Record End Time
- Calculate final fare with time and distance
- Update Trip Status to "Completed"
- Trigger payment processing
- Navigate to rating screen
Implementing Payment Processing
Step 23: Configure Stripe Connect
- Configure Stripe Connect using Adalo’s component guide — see Marketplace Payments
- Add Stripe Connect Account component to driver onboarding
- Guide drivers through:
- Bank account verification
- Tax information submission
- Identity verification
- Store Stripe account ID in Users → Stripe Account ID
Step 24: Process Trip Payments
- Add Stripe Connect Payment component to trip completion
- Configure payment splitting:
- Total amount from Trip → Fare Amount
- Platform fee deduction (configurable percentage)
- Remainder transferred to driver's account
- Update Trip → Payment Status on success
- Handle payment failures with retry mechanism
Step 25: Create Fare Calculation System
Set up base fare structure: Base_Fare + (Distance_Miles * Rate_Per_Mile) + (Duration_Minutes * Rate_Per_Minute) * Surge_Multiplier
- Create surge pricing logic:
- Time-based multipliers (rush hour, weekend)
- Demand-based adjustments
- Special event pricing
- Display fare estimates before booking
Adding Real-Time Features
Step 26: Implement Location Tracking
- Configure PragmaFlow GeoLocation component:
- Request foreground location only (continuous/background tracking isn’t native)
- Use a reasonable on-screen refresh cadence (e.g., ~15–30s)
- Reduce re-renders to conserve battery
- Create location update Custom Action:
- Updates User → Current Location
- Only runs when Driver Status = "Available" or trip active
- Use a Timer to refresh while in the foreground
Step 27: Build Trip Status Updates
- Add status update buttons throughout driver flow:
- "Arrived at pickup" - Notifies rider
- "Trip started" - Updates status, starts fare calculation
- "Trip completed" - Ends fare calculation, processes payment
- Each status change:
- Updates Trip Status
- Sends push notification to other party
- Refreshes UI for both rider and driver
Step 28: Create In-App Messaging
- Add Chat component to active trip screens
- Connect to Messages collection
- Filter messages by current trip
- Add quick message templates:
- "I'm here"
- "Running 5 minutes late"
- "Can't find you"
- Auto-delete messages after trip completion
Building Rating and Review System
Step 29: Create Post-Trip Rating Screen
- Trigger rating screen after trip completion
- Add Star Rating component (1-5 stars)
- Add comment Text Input (optional)
- Separate rating flows:
- Rider rates driver and vehicle
- Driver rates rider behavior
- Update average ratings in Users collection
Step 30: Display Rating Histories
- Add "My Ratings" screen to user profile
- Show Custom List of ratings:
- Filter by Reviewed User = Logged In User
- Display stars, comments, and dates
- Calculate and display:
- Overall average rating
- Total trips completed
- Recent feedback highlights
Adding Advanced Features
Step 31: Implement Dynamic Pricing
- Create surge pricing zones:
- Define geographic boundaries
- Set multiplier ranges (1.0x to 3.0x)
- Configure active time periods
- Check rider location against surge zones
- Display surge notification before booking
- Apply multiplier to final fare calculation
Step 32: Create Driver Analytics
- Build "Earnings" screen for drivers
- Display key metrics:
- Daily/weekly/monthly earnings
- Trip count and average fare
- Hours driven and total miles
- Rating trends over time
- Use Custom List with date range filters
- Calculate totals using SUM and AVERAGE formulas
Step 33: Add Trip Scheduling
- Create "Schedule Ride" option
- Add Date Picker and Time Picker components
- Store future trips with scheduled pickup times
- Use Custom Actions for both: real-time driver updates (e.g., Firebase) and scheduled notifications (e.g., a Zapier webhook)
- Set reminders 30 minutes before pickup
Working with Platform Limitations
Step 34: Handle Real-Time Constraints
Cannot Implement:
- True real-time GPS streaming
- Background location tracking
- WebSocket connections
- Instant database synchronization
Effective Workarounds:
- Timer Components (hidden) for periodic refreshes every 10-15 seconds
- Screen Navigation tricks to force data updates
- Push Notifications for instant status alerts
- PragmaFlow Components for enhanced real-time simulation
Step 35: Optimize Performance
- Limit driver search radius to reasonable distance (5-10 miles)
- Use pagination for trip history lists (20 items per page)
- Archive completed trips older than 90 days
- Minimize complex database queries during peak usage
- Implement data cleanup for better performance
Step 36: Integrate External APIs
- Google Distance Matrix API for accurate routing:
- Custom Action for driving distance/time
- More precise than straight-line calculations
- Essential for realistic fare estimates
- SMS provider via Custom Actions for messaging:
- Phone number verification
- SMS notifications backup
- Emergency contact features
- Background check provider via Custom Actions (Checkr example):
- Automated driver verification
- Webhook status updates
- Regulatory compliance
Testing and Launch Preparation
Step 37: Create Test Environment
- Set up multiple test accounts:
- Verified driver profiles
- Various rider personas
- Different vehicle types
- Test core user flows:
- Complete driver onboarding process
- Book and complete test rides
- Process payments end-to-end
- Verify rating and review system
Step 38: Performance Testing
- Test with sample data volumes:
- 100+ active drivers
- 1,000+ completed trips
- Various network conditions
- Monitor response times and identify bottlenecks
- Test location updates under load
- Verify payment processing reliability
Step 39: Configure App Store Settings
- Prepare store assets:
- App icons and screenshots
- Privacy policy for location data
- Terms of service
- Set up app analytics and crash reporting
- Configure customer support workflows
Additional Resources
Important Considerations
Cost Breakdown:
- Adalo plan — prices change; see Pricing
- Optional Marketplace components — costs vary by seller
- Stripe fees — see Stripe Pricing
- Google Maps API: Variable based on usage
Regulatory Requirements: Most jurisdictions require rideshare licenses, commercial insurance, and driver background checks. Research local compliance before launching.
Market Strategy: Adalo rideshare apps work best for niche markets rather than competing with Lyft directly. Consider small communities, scheduled transportation, or specific demographics where real-time limitations matter less.
This Lyft clone will provide core rideshare functionality within Adalo's technical constraints, serving as an effective foundation for market validation and concept testing.










