Jopoia

Jopoia organizes the agenda of Turismo de Base Comunitária (community-based tourism) on the north coast of São Paulo — the trails, boat rides, basketry workshops, community lunches and lodging that caiçara, quilombola and Guarani communities offer to visitors themselves.

The name is Guarani: jo-poí, “open hands” — reciprocity, giving and receiving in the same gesture.

A agenda de reservas da comunidade — quem atende, quem já confirmou, e o dia reservado para a maricultura.
A agenda de reservas da comunidade — quem atende, quem já confirmou, e o dia reservado para a maricultura.

Status: this phase is a navigable prototype in static HTML — no framework, no backend, no database. It exists to validate the visual language and the flow with the communities themselves before committing to any stack. No form saves anything yet.

The problem

The community already has everything: the trail, the boat, the cook, the person who weaves the basket. What it does not have is one place that knows what is offered, who provides it, what it costs this season, and who is booked on Saturday.

The constraint that shaped every screen: it has to be usable on a phone, by people who are not computer users, without looking like office software.

How it works

The prototype models four actors:

Domain rules worth naming, because they came out of how the communities actually work:

The second app in the repo prototypes the WhatsApp confirmation flow, because that is the channel providers already use. Today the provider replies through canned buttons; the flow is designed so that AI can later interpret a free-text “pode deixar comigo” as a confirmation.

Multi-tenant by design

Each community is a tenant with its own accent color, driven by a single design token. The visual language — sand, ink, serra green, juçara purple — came from the reference photography, not from a UI kit.

What I did

Deliberately no framework, no bundler and no database — at this stage those would be decisions made too early.