Skip to content

Local discovery beyond sponsored pins

A community-curated guide for discovering local spots in Portugal. As Product & Design Lead, I owned the product design from concept to live beta, while contributing to front-end code to help our engineer ship the dashboard, listing cards, and submission flows.

Executive Summary

Live Community Beta

Problem
Instead of relying on commercial directory scraping, Places was built to help locals share and discover authentic neighborhood spots without sponsored pins.
Role
Product & Design Lead (Product design with front-end contributions)
Platform scope
Community map discovery, contribution workflows, reputation mechanics, and shareable custom lists.
Core tech
Next.js / React, Tailwind CSS, OpenStreetMap / Protomaps vector tiles, and Cloudflare Turnstile.
Current status
Live beta in Portugal (free for personal use). Community place submissions pass through a human moderation queue.
Duration
2.5 years of active 0-to-1 development, leading product and design alongside engineering.

1Strategic choice

Why we chose community curation over a scraped directory

A map full of pins is not the same as a useful local guide. Buying enterprise place APIs or competing on scraped venue volume would make cost and coverage the product's main constraints, while still leaving communities with outdated information to correct.

We chose open map infrastructure as the foundation and human contributions as the path to richer local knowledge. Opening hours, accurate categories, real photos, and timely corrections matter more than claiming the largest directory.

2Trust & Moderation

Keeping community recommendations reliable

Opening a map to public suggestions is great for discovery, but risks clutter and outdated details. To keep information reliable, we designed a flow where submissions don't immediately go live: suggestions pass through a review queue first, and active contributors build reputation over time.

  • 01 // BOT FILTERING

    Filtering out bots at sign-up

    We use Cloudflare Turnstile during registration to filter out automated scripts before they can flood the queue with fake submissions.

  • 02 // REVIEW QUEUE

    Checking edits before they go live

    When someone suggests a new spot or edits opening hours, it sits in a moderation queue so duplicates and inaccurate details can be caught before reaching the map.

  • 03 // CONTRIBUTOR REPUTATION

    Rewarding reliable edits

    Contributors earn points and community rank as their edits get approved, encouraging complete information (like verified hours and photos) over sheer volume.

3Spatial discovery

Responsive map discovery in the browser

Discovery needs both a useful overview and enough detail to choose the next place. The map and results share the same search context, while each viewport gives people a different way to move between them.

4Contribution UX

A short path from local knowledge to a useful submission

The contribution flow starts with a small commitment, then opens a structured draft. Location, category, opening hours, and photos become manageable decisions rather than one intimidating form.

Contribution workflow: select a step

5Social curation

Turning places into shareable guides

A saved place is useful once. A collection becomes a guide someone else can use. People can group spots by trip, neighborhood, or theme, share a public URL, and make a private copy without changing the original.

Creation asks for a name, an emoji, and an optional description. The first task is organizing places; public sharing is a separate, deliberate action.

A public collection gives the list its own link and creator context. Its map view keeps the saved places together instead of sending people back to an unrestricted search.

6System architecture

One design system, two distinct products

Places and Properties share foundational typography, spacing, form primitives, and map controls. The shared system keeps interaction rules consistent while each product retains its own purpose and information hierarchy.

Shared primitives, domain-specific expression
  • Typography
  • Spacing
  • Form controls
  • Overlays & focus states
  • Map interactions

Civic exploration

Local categories, place details, community contributions, and shared guides.

Property evaluation

Home specifications, agency credibility, inquiries, and neighborhood context.

1 // SHARED FOUNDATION

Reuse the interaction rules

Focus states, spacing, overlays, and map controls follow common patterns. A person moving between the products should not have to learn navigation again.

2 // DISTINCT DOMAIN

Keep the content hierarchy specific

Places leads with local character and useful categories. Properties leads with price, home specifications, and agency credibility. Shared primitives support both priorities.

7Outcome & Roadmap

What's shipped and what comes next

1 // Shipped foundation

A working community-driven discovery platform

Yaca Places is live in beta with vector maps, community contribution review, custom list creation, and public sharing running in production.

2 // Upcoming roadmap

Multi-stop routes and marketplace integration

Our next milestones are shipping multi-stop route planning for saved lists and extending reviewed community submissions into Yaca Properties listings.