Mobile application · iOS and Android
An application for astrological compatibility
Client — JJ Risinājumi.
We built a Flutter application that calculates a natal chart from birth data, compares it with other users and presents compatibility across eight dimensions. The product includes mutual connection requests, real-time chat, AI explanations, purchases and a separate admin panel.
Discuss an application
The brief
Connect complex calculations with a simple dating experience
A user enters only their birth date, time and city. The system resolves coordinates and timezone, calculates a natal chart, compares it with other profiles and returns an understandable result, while maintaining mutual consent before chat.
User journey
From birth data to a conversation
Registration
Account, profile and email verification.
Birth data
Date, exact time and city for the natal chart.
Compatibility search
Profiles scoring at least 50%, sorted by compatibility.
Pair profile
Overall score, primary signs and eight dimensions.
Connection request
The other person must accept before communication.
Real-time chat
Messages, read state, reactions and push notifications.
Calculation engine
The chart is calculated on the server, not guessed from a sun sign
Firebase Cloud Functions process birth place and time, build a full chart and calculate synastry for every pair. Results are stored for fast discovery.
City → coordinates
Google Maps geocoding with Nominatim fallback resolves coordinates and timezone.
Birth data → chart
Astronomy Engine calculates planets, houses, angles and aspects.
Two charts → compatibility
Weighted planet pairs and aspects produce the overall score.
Result → explanation
OpenAI creates a structured explanation in the selected language and caches it.
Astrological data
The calculation includes 12 celestial bodies and points
Placidus houses · conjunction · sextile · square · trine · opposition · quincunx
Compatibility model
One percentage expands into eight understandable perspectives
Sun and Moon
86%Venus
78%Mars
72%Communication
83%Emotional bond
89%Physical compatibility
75%Shared growth
68%Long-term potential
81%Mobile application
A complete product, not only a compatibility calculator
Profiles and photos
Profile, birth data, bio and photo upload from gallery or camera.
Discovery
Profile grid, pagination, refresh and blocked-user filtering.
Mutual consent
Received, sent and accepted requests with clear states.
Real-time chat
Messages, unread counts, read receipts, reactions and conversation deletion.
Notifications
FCM reports messages and requests and opens the relevant screen.
User controls
Blocking, support, password reset and full account deletion.
Mutual connection
Chat opens only after both people agree
A user sends a connection request.
The request can be cancelled before response.
The recipient chooses whether to connect.
Only now can both people start a chat.
Performance
Heavy calculations are split into a fast start and background processing
After registration, the user first receives their chart and up to 20 initial matches. Remaining pairs are processed in the background, avoiding a long wait.
- 01Unique pair IDs prevent duplicates
- 02Valid existing results are not recalculated
- 03Writes run in batches of up to 500
- 04Birth-data changes expire results and AI text
- 05A safe fallback calculation handles delayed background triggers
Admin panel
Users, support, purchases and content in one place
Dashboard
Users, messages, purchases and revenue with time charts.
User management
Search, filters, profiles, blocking, deletion and purchase history.
Support
Statuses, full requests, user email and direct email replies.
Application settings
Analysis pricing and text, disclaimer, about content and contacts in three languages.
Paid feature
We built a one-time purchase flow for detailed pair analysis
The RevenueCat integration is prepared for App Store and Google Play products, with store-provided pricing, purchase restoration and pair-specific access stored in Firestore.
- One purchase for one pair analysis
- Store-provided Apple or Google price
- Duplicate purchase prevention
- Birth-time changes invalidate the previous analysis
- Copy can change from admin without a new release
Data and security
Access is defined separately for every Firestore collection
Authentication
Firebase Auth, required email verification and password recovery.
Private calculations
A natal chart belongs to its owner; compatibility is limited to the pair.
Protected chat
Only participants have access; blocked users receive no push.
File limits
Images only, up to 5 MB, writable by the owner.
Store preparation
iOS and Android builds, TestFlight and store materials
We prepared identifiers, icons, a signed Android AAB, TestFlight builds, App Store and Google Play copy, localization, screenshot overlays and review notes.
Technical solution
Technologies
Have a mobile app idea with complex server logic?
We can build the mobile interface, calculations, database, administration and prepare the product for iOS and Android.
Questions and answers
About AstroMatch development
Is compatibility based only on zodiac signs?
No. It uses birth date, time, coordinates, planets and other points, houses and aspects. The result is divided into eight dimensions.
Why does AI not calculate the percentage?
A deterministic synastry algorithm calculates the score. AI only explains the resulting data and cannot alter the score.
Does the app support multiple languages?
Yes. The interface, notifications, paid-feature copy and AI explanations support English, Russian and Latvian.