places devs actually go to — A community-driven map for discovering and sharing developer-friendly spots in Luanda, Angola.
# DevSpot
> **places devs actually go to** — A community-driven map for discovering and sharing developer-friendly spots in Luanda, Angola.
---
## Problem
Luanda has amazing cafés, coworking spaces, and esplanadas — but there's no curated way for developers to know which ones have good WiFi, quiet corners for coding, or power outlets that actually work. Google Maps doesn't capture these "dev signals."
DevSpot solves this with a community-driven map where tech folks share the spots that work for them.
---
## Tech Stack
```
Frontend: Vite 8 + React 19 + TypeScript + Tailwind CSS v4
Map: MapLibre GL via mapcn (free CARTO tiles, no API key)
Icons: Tabler Icons
Routing: React Router v7
Caching: TanStack Query
Validation: Zod
i18n: react-i18next (PT default, EN fallback)
Backend: Supabase (Postgres + Auth + Storage)
Auth: Supabase Auth (email/password + Google OAuth)
Routing: OSRM public API (free)
```
## Project Structure
```
devspot/
├── src/
│ ├── components/
│ │ ├── cmd/ # Command palette (⌘K)
│ │ ├── filters/ # Filter pills and filter bar
│ │ ├── layout/ # Header, Sidebar, BottomSheet
│ │ ├── map/ # Map components
│ │ ├── place/ # PlaceCard, SubmitPlaceModal
│ │ ├── review/ # SubmitReviewForm, StarRating
│ │ └── ui/ # PriceBar, badges, pills
│ ├── lib/
│ │ ├── supabase/ # Client, auth context, data service, DB types
│ │ └── hooks/ # useTheme
│ ├── pages/ # Home, PlaceDetail, Profile, SignIn, SignUp, NotFound
│ ├── App.tsx # Router + providers
│ ├── main.tsx # Entry point
│ └── index.css # Global styles (DevSpot theme + shadcn CSS vars)
├── public/
├── README.md
├── AGENTS.md # Instructions for AI coding agents
└── PLAN.md # Agent tracking and decisions
```
## Getting Started
### Prerequisites
- Node.js 18+
- pnpm
- A Supabase accoun …