
This comprehensive tutorial will guide you through building a WhatsApp-style messaging app using Adalo's no-code platform. While Adalo has limitations for real-time messaging, we'll implement creative solutions to create a functional messaging app with individual chats, groups, media sharing, and more.
Prerequisites and Initial Setup
Step 1: Create Your Adalo Account
- Go to Adalo.com and sign up
- Click "Create New App"
- Choose "Mobile App" (essential for messaging features)
- Select "Start from Scratch"
- Name your app (e.g., "ChatApp")
Step 2: Configure App Theme
- Choose primary color (green for WhatsApp style)
- Select white background
- Pick a clean, readable font (like Open Sans)
- Set up responsive mobile settings
- Click "Continue" to enter editor
Building the Database Structure
Step 3: Enhance Users Collection
- Click Database icon in left sidebar
- Select default "Users" collection
- Add these properties (click "+ Add Property"):
- Phone Number (Text - unique)
- Display Name (Text)
- Profile Picture (Image)
- About/Status (Text)
- Last Seen (Date & Time)
- Online Status (True/False)
- Push Token (Text)
- Blocked Users (Relationship to Users - Many to Many)
Step 4: Create Conversations Collection
- Click "+ Add Collection"
- Name it "Conversations"
- Add properties:
- Type (Text) - Values: "individual", "group"
- Last Message (Text)
- Last Message Time (Date & Time)
- Unread Count (Number)
- Created At (Date & Time - Automatic)
- Group Name (Text)
- Group Icon (Image)
- Group Description (Text)
Step 5: Create Messages Collection
- Click "+ Add Collection"
- Name it "Messages"
- Add properties:
- Message Type (Text) - Values: "text", "image", "video", "audio", "document"
- Text Content (Text - Multiline)
- Media File (File)
- File Name (Text)
- File Size (Number)
- Created At (Date & Time - Automatic)
- Read (True/False - default: false)
- Read At (Date & Time)
- Delivered (True/False)
- Deleted (True/False)
Step 6: Create Participants Collection
- Click "+ Add Collection"
- Name it "Participants"
- Add properties:
- Joined At (Date & Time - Automatic)
- Role (Text) - Values: "member", "admin"
- Muted Until (Date & Time)
- Archived (True/False)
- Pinned (True/False)
Step 7: Create Status/Stories Collection
- Click "+ Add Collection"
- Name it "Status"
- Add properties:
- Content Type (Text) - Values: "text", "image", "video"
- Text Content (Text)
- Background Color (Text)
- Media File (File)
- Created At (Date & Time - Automatic)
- Expires At (Date & Time)
- Caption (Text)
Step 8: Create Status Views Collection
- Click "+ Add Collection"
- Name it "Status Views"
- Add properties:
- Viewed At (Date & Time - Automatic)
Step 9: Set Up Relationships
- In Messages:
- Sender → Users (Many to One)
- Conversation → Conversations (Many to One)
- Reply To → Messages (Many to One)
- In Participants:
- User → Users (Many to One)
- Conversation → Conversations (Many to One)
- In Conversations:
- Creator → Users (Many to One)
- In Status:
- Creator → Users (Many to One)
- In Status Views:
- Status → Status (Many to One)
- Viewer → Users (Many to One)
Installing Required Components
Step 10: Install Essential Components
From Marketplace:
- Audio Player - for voice messages
- File Picker - for document sharing
- Search for real-time chat options:
- PragmaFlow WebSocket Chat (paid)
- TalkJS Integration (requires coding)
How to add marketplace components
Step 11: Consider Third-Party Solutions
For better real-time features:
- PragmaFlow Components:
- Real-time chat component
- Microphone recorder (for voice notes)
- Timer components
- Templar Design Chat Template (most powerful pre-built solution)
Building the Chat List Screen
Step 12: Create Main Chats Screen
- Add new screen "Chats"
- Add App Bar:
- Title: "WhatsApp"
- Search icon (right)
- Menu icon (right)
- Add Tab Bar at top:
- Camera icon
- "CHATS" (active)
- "STATUS"
- "CALLS"
Step 13: Build Conversation List
- Add Custom List:
- Data: Conversations
- Filter: Current User is in Participants
- Sort: Last Message Time (Newest First)
- For each list item, display:
- Profile picture/Group icon (60x60 circle)
- Conversation name
- Last message preview
- Last message time
- Unread count badge (if > 0)
Step 14: Add Floating Action Button
- Add circular button (bottom right)
- Icon: Message/Chat bubble
- Action: Navigate to "New Chat" screen
- Position: Fixed to bottom right
Creating Individual Chat Interface
Step 15: Build Chat Screen
- Create new screen "Chat"
- Add custom App Bar:
- Back button
- User profile picture
- User name
- "Last seen" or "Online" status
- Video call icon
- Voice call icon
- Menu icon
Step 16: Design Message List
- Add Custom List for messages:
- Data: Messages
- Filter: Conversation = Current Conversation
- Sort: Created At (Oldest First)
- Use conditional formatting:
- Sent messages: Right aligned, green background
- Received messages: Left aligned, white background
- Show time below each message
Step 17: Create Message Input Bar
- Add horizontal group at bottom:
- Emoji icon
- Text Input (expandable)
- Attachment icon
- Camera icon
- Microphone icon (if no text)
- Send button (if text exists)
Step 18: Implement Send Functionality
- On Send button click:
- Create Message record
- Update Conversation last message
- Clear input field
- Scroll to bottom
- Add attachment menu:
- Document picker
- Camera
- Gallery
- Audio
- Location
- Contact
Building Group Chat Features
Step 19: Create New Group Screen
- Add screen "New Group"
- Add group info section:
- Image Picker for group icon
- Text Input for group name
- Text Input for description
- Add participant selection:
- Search bar
- Custom List of contacts
- Checkbox for each contact
- Selected participants chip list
Step 20: Build Group Info Screen
- Create "Group Info" screen
- Display:
- Group icon and name (editable for admins)
- Description
- Media/Links/Docs section
- Participants list with roles
- Add participants button
- Exit group button
Step 21: Implement Group Admin Features
- Add conditional actions based on role:
- Edit group info (admin only)
- Add/remove participants (admin only)
- Make admin option
- Remove from group option
- Group settings:
- Mute notifications
- Custom notifications
- Media visibility
Implementing Media Sharing
Step 22: Create Image/Video Viewer
- Add "Media Viewer" screen
- Add Image component (full screen)
- Add overlay with:
- Sender name and time
- Caption (if exists)
- Download button
- Forward button
- Back button
Step 23: Build Voice Message Feature
Note: Limited in Adalo, requires workarounds
- Option 1: Link to device recorder
- Option 2: Use PragmaFlow Microphone component
- Display using Audio Player:
- Show waveform visualization
- Duration display
- Play/pause controls
Step 24: Implement Document Sharing
- Use File Picker component
- Support file types:
- PDF, DOC, XLS
- Size limit: 50MB
- Display with:
- File icon
- File name
- File size
- Download action
Building Status/Stories Feature
Step 25: Create Status Tab
- On main screen, add Status section
- Add "My Status" row:
- User profile picture
- "Add status update" text
- Plus icon
- Add Custom List for contacts' statuses:
- Filter: Created > 24 hours ago
- Group by creator
- Show viewed/unviewed differently
Step 26: Build Status Creation
- Create "Add Status" screen
- Options:
- Text status with backgrounds
- Photo status with caption
- Video status (30 seconds max)
- Add privacy settings:
- My contacts
- My contacts except...
- Only share with...
Step 27: Create Status Viewer
- Add "View Status" screen
- Full-screen display
- Progress bar at top
- Auto-advance after 5 seconds
- Reply option at bottom
- Track views
Adding Communication Features
Step 28: Implement Voice/Video Calls
Limitation: No native support
- Options:
- Link to phone dialer
- Integrate third-party service
- Use marketplace video call component
- Create call logs in database
- Show in Calls tab
Step 29: Create Contact Integration
- Add "Contacts" screen
- Show app users from contacts
- Invite non-users option
- Sync with phone contacts (limited)
Step 30: Build Search Functionality
- Add "Search" screen
- Search through:
- Conversations
- Messages
- Contacts
- Display results by category
- Highlight search terms
Implementing Settings and Privacy
Step 31: Create Settings Screen
- Add profile section:
- Profile picture (editable)
- Name (editable)
- About (editable)
- Add settings options:
- Account
- Chats
- Notifications
- Storage and data
- Help
Step 32: Build Privacy Controls
- Last seen options:
- Everyone
- My contacts
- Nobody
- Profile photo visibility
- About visibility
- Read receipts toggle
- Blocked contacts management
Step 33: Configure Notifications
- Set up push notifications:
- New message alerts
- Group mentions
- Status updates
- In-app notification settings:
- Message preview
- Sound selection
- Vibration patterns
Optimizing Performance
Step 34: Handle Real-Time Limitations
Critical: Adalo doesn't support true real-time
- Workarounds:
- Add refresh button
- Pull-to-refresh action
- Auto-refresh timer (every 5-10 seconds)
- Use PragmaFlow WebSocket component
- Show "Connecting..." status
- Implement offline message queue
Step 35: Optimize Message Loading
- Limit initial load to 50 messages
- Add "Load earlier messages" button
- Implement pagination
- Cache recent conversations
- Compress media before upload
Testing and Deployment
Step 36: Test Core Features
- Message sending/receiving
- Group creation and management
- Media sharing
- Status updates
- Notification delivery
- Search functionality
- Performance with multiple chats
Step 37: Prepare for Launch
- Upgrade to Professional plan ($65/month minimum)
- Set up encryption notice (not E2E)
- Create privacy policy
- Add terms of service
- Implement reporting system
- Set up user support
Working with Platform Limitations
What's Not Possible:
- True real-time messaging (requires refresh)
- End-to-end encryption
- Native voice recording
- Video/voice calls (without third-party)
- Large file transfers (>50MB)
- Typing indicators
- Online/offline real-time status
Recommended Solutions:
- Use third-party components for real-time
- Implement manual refresh options
- External services for calls
- Compress media before upload
- Use webhooks for better notifications
Cost Breakdown
Monthly Costs:
- Starter ($45): Very limited
- Professional ($65): Minimum recommended
- Team ($200): For collaborative development
- Business ($250): Best performance
Additional Costs:
- PragmaFlow components: $20-50/month
- Real-time chat solutions: $50-200/month
- Storage for media files
- Third-party integrations
Additional Resources
- Adalo Chat Tutorial
- Group Messaging Feature
- Component Marketplace
- Database Best Practices
- What Adalo Can Do
Final Recommendations
This WhatsApp clone will provide core messaging functionality but with limitations:
- Focus on asynchronous messaging
- Implement manual refresh mechanisms
- Use third-party components for advanced features
- Consider hybrid approach for real-time needs
- Set user expectations about refresh requirements
For production use, consider:
- Investing in real-time components
- External API integration
- Custom component development
- Progressive web app approach for better performance
‍

Start Building With An App Template
Build your app fast with one of our pre-made app templates









