Jompa

How Jompa works under the hood

Arranging a meeting should be simple. Making it fair, private and practical takes a little more work. Here is how Jompa approaches it.

AI-generated editorial image of a person beside a dual-monitor workspace, with motorcycles pictured above the desk

Fair by design

A convenient place for one person can mean a much longer journey for somebody else. The centre of a map does not tell you how long each person will travel.

Among eligible venues, Jompa first compares the longest journey, rounded up to a five-minute band. It then compares average journey time and the gap between the longest and shortest journeys, also rounded up to five-minute bands. A quality-penalty field and venue ID settle any remaining ties; the current candidate builder assigns no venue-specific quality penalty, so that field is neutral today. This minimax-first approach reduces the longest trip where it can; it cannot make everyone’s journey equal, and results depend on available route data.

Illustrative example only. These are not predicted or guaranteed journey times.

Middle of the mapExample: one trip is 55 min
Jompa's pickExample: longest trip is 25 min
On this page

Real travel times

Roads and paths make journeys different from straight lines. Travel time gives a more useful comparison than map distance.

Jompa uses OpenStreetMap road and path data with Valhalla, a routing service we operate, for driving and walking in supported areas. Running it ourselves gives us control over routing, room to adapt it, and less dependence on per-request commercial mapping fees. It still requires infrastructure and maintenance, and makes us responsible for performance and reliability. Times are shown in five-minute bands, which can still reveal approximate information. Coverage and estimates depend on available map and routing data.

Your location stays private

You shouldn't have to reveal where you live or where you're coming from just to arrange a meeting.

Each person sends a starting point to Jompa; a host can also enter one on a participant’s behalf. Exact coordinates are encrypted at the application layer with AES-256-GCM while stored and are not returned to other participants or included in application logs. Participants see travel times rounded up to five-minute bands, which can still reveal approximate information. After a host confirms a venue, origin deletion is scheduled for 15 minutes later. That is the scheduled time: the cleanup worker or the next meeting read performs the purge. Expired meetings are also handled by cleanup. See the Privacy Policy for details.

Privacy protected: Exact coordinates and home locations are never shared with participants.
Read our Privacy Policy

Finding places people can visit

A point between participants is not enough; the group needs a real place to meet.

OpenStreetMap supplies geographic and point-of-interest records; Pelias supports place search, geocoding and location labels. Jompa checks venue eligibility, then uses routed journey times to decide which places can be considered for the group. Geographic records can be incomplete or out of date, and a listing is not independently verified just because it appears in the data.

From invitation to meeting

A shared invitation brings the group into one meeting space.

Participants join and privately provide their starting points to Jompa; a host can enter a location for someone who has not joined yet. Jompa finds eligible places and compares the group’s journeys. Everyone can review the options and vote, then the host confirms a destination. The group can share that destination and open it in a navigation app without seeing one another’s exact starting points.

Advertising without changing fairness

Paid venue listings can affect discovery and display order, so the distinction should be clear.

An advertiser tier can widen a venue’s discovery radius and change its display order among recommendations. Each suggested venue still goes through the same route and travel-time eligibility checks and minimax-first ranking. Advertising cannot cast or replace a vote; its position can still affect what people notice and choose.

No account, no app

Share a link in your group chat. Friends open it in their browser and join.

Each person gets a private session link; there is nothing to download and no password to remember.

For AI assistants

AI assistants can help schedule meetups without ever handling participant locations.

Jompa provides a remote Model Context Protocol (MCP) server and OpenAPI endpoints so AI assistants can create meetups and check status. The assistant creates a meetup shell and hands an invite link to the organizer. The human host opens that link in their browser to confirm their starting point privately, ensuring AI tools never receive origin coordinates.

Entry points
Remote MCP server over Streamable HTTP at /v1/mcp and OpenAPI REST routes under /v1/agent/meetings, documented at /llms.txt and /.well-known/openapi.yaml.
Location privacy
AI tools only supply meetup title and category. Starting locations are provided exclusively by human users in their own browsers.
Authentication and scopes
Anonymous OAuth 2.0 with PKCE without user accounts or personal data. Scopes are limited to create_meetup, get_meetup_status, and list_suggestions.
Expiry and revocation
Guest bearer tokens expire after 1 hour (3,600 seconds). Immediate token revocation is supported via the /v1/auth/revoke endpoint.
Rate limits
Token issuance is capped at 5 per IP per hour. Meetup creation is limited to 50 requests per hour per token, and read operations to 500 requests per hour per token. Agent access can be disabled by administrators.

The parts behind the experience

A few core tools each have a clear job.

Nuxt
Nuxt serves the responsive website and its English and Bahasa Malaysia content.
Node.js + Express
Node.js and Express handle meeting coordination and trusted server-side calculations.
MariaDB
MariaDB stores meeting state and venue records.
Valhalla
Valhalla calculates routes and travel-time matrices from supported road and path data.
OpenStreetMap + Pelias
OpenStreetMap supplies geographic and venue data; Pelias supports place search and location labels.
Docker
Docker packages the web app and supporting services into deployable containers.

Map data © OpenStreetMap contributors under ODbL

“I knew exactly where I wanted to meet. I had no idea how far he had to travel.”

A familiar meeting place can feel convenient until you consider everyone else’s journey.

Back to home

Leave this meeting?

You will leave this meeting and your starting location will be removed. The meeting continues for everyone else.

Resume a meeting

Your meetups

Saved on this browser. Anyone using it can see this.