Write-up · Startup
MapivaMap-first social discovery
An app that opens on a map of what is happening around you, so finding people and things to do starts from where you are.
Co-founder and Dev Lead since August 2025 · beta planned for early 2027
Try the demo ↓Mapiva is a startup I co-founded, and the app is still in development. This page is my own write-up. The demo below is a concept illustration written fresh for this site, with synthetic people and events. It is not the app's code, and nothing in it comes from the app, its users or its brand.
The problem
Finding something to do nearby is harder than it sounds. Events are spread across different apps, pages and group chats, and most social apps are built around a feed of posts rather than a place. When you are new to a city, or just free for an afternoon, the question you actually have is what is happening near me right now. A list is a poor way to answer that. A map is a good one.
A map of people is also a privacy problem. Showing where someone is, even roughly, has to be designed with care from the first day rather than patched on later.
The idea
Mapiva is a mobile app for iOS and Android that helps people discover what is nearby and connect. The idea fits in three steps.
1
Start from the map
The app opens on a map of the area around you, not a feed. What is close by is what you see first.
2
See who and what is near
People and events show up as pins, so you can tell at a glance what is within reach this afternoon.
3
Connect
When something catches your eye, you can find out more and connect with the people behind it.
Privacy from the start
Privacy is part of the design from the start, and two choices shape it most.
- Age checks at sign-up, so the people on the map are old enough to be there.
- Approximate locations for other people's pins. You can see that someone is nearby without seeing exactly where they are.
One simple way to make a location approximate is to snap it to a grid. The map is divided into fixed squares, and a person's pin is drawn at the centre of the square they are in, never at their real position. The demo below works this way, so you can try different square sizes and see what changes.
The grid has to stay fixed. If each request added fresh random noise instead, someone patient could collect many readings and average them back to the real spot. A fixed grid gives the same answer every time, so there is nothing to average. Moving your own pin around does not help either, because the most it can tell you is which square a person is in.
This shows the idea only. It is not a description of how the app implements it.
Try it: who and what is nearby
Concept illustration, not the real system. Every person, event and time below is synthetic, generated in your browser from a fixed seed. The map is a simplified sketch of inner Melbourne drawn for this page, so streets, parks and the shoreline are approximate. Nothing is stored or sent anywhere.
It is a Saturday afternoon and you are near Carlton. Move your pin, change the search radius and watch the nearby list update. Then switch on the grid to see where people really are and where their pins are drawn.
Synthetic data · simplified map
Synthetic clock: Saturday, 2:00 pm
Click the map or use the arrow keys to move your pin. Hold Shift to move further. Press + or - to zoom.
- You
- Person, approximate
- Event
- Group of pins
- People in range
- 17
- Events in range
- 4
- People shown to
- 500 m
17 people and 4 events within 1.5 km of you, near Carlton. People are shown to the nearest 500 m square.
Nearby now21
near Carlton · 1.5 km
What the app would ask for
Illustrative only. A made-up endpoint showing the shape a nearby search could return for the view above. People come back with an approximate location and a rounded distance. Events happen at public places, so they come back with their exact location.
Request
GET /api/nearby?lat=-37.8001&lng=144.9671&radiusM=1500&kinds=people,events&page=1&pageSize=20Response
{
"status": 1,
"message": "Success",
"data": {
"items": [
{
"id": "evt-0002",
"kind": "event",
"title": "Chess in the park",
"location": {
"lat": -37.80115,
"lng": 144.96682
},
"distanceM": 120,
"startsAt": "2026-10-10T04:00:00Z",
"endsAt": "2026-10-10T06:00:00Z"
},
{
"id": "usr-0012",
"kind": "person",
"displayName": "Lou C.",
"approxLocation": {
"lat": -37.7978,
"lng": 144.9659,
"precisionM": 500
},
"approxDistanceM": 300,
"interests": [
"gardening",
"board-games"
]
}
],
"page": 1,
"pageSize": 20,
"total": 21
}
}Showing 2 of 21 items.
How it is built
- Role
- Co-founder and Dev Lead
- Since
- August 2025
- Team
- Small, part-time
- Next
- Beta in early 2027
- React Native
- Expo
- Django
- Rust
- PostgreSQL
- GitHub Actions
The app is built with Expo and React Native, so one codebase serves both iOS and Android. It runs on a backend built with Django and Rust over PostgreSQL, and changes ship through GitHub Actions.
My role
I co-founded Mapiva and lead its development. As Dev Lead I own the technical architecture and lead code review for a small part-time engineering team.
I also wrote the 2026–27 development plan, which sets the scope of the beta and the criteria it has to meet before release. I do all of this alongside my day job.
What's next
The team is working towards a beta in early 2027, with its scope and release criteria set out in the development plan.
Mapiva's code is private, so this page has no source links or screenshots. The demo is written fresh for this site.