All Projects
OPEN SOURCEJul 20264 min read

Peru Grid — Mapping the Peruvian Tech Ecosystem

Toronto has a beloved open-source tech map. Peru didn't. Peru Grid maps 53 researched startups, consultancies, incubators and funds across Lima and Arequipa — in one dependency-free HTML file.

MapLibre GL JSOpenFreeMapVanilla JSGitHub Actions

Overview

Peru Grid is an interactive, terminal-styled map of the Lima and Arequipa tech ecosystems, rendered with MapLibre GL JS on OpenFreeMap vector tiles — no API keys, no build step, no framework, zero npm dependencies. The whole application is one 766-line HTML file plus two JSON datasets fetched at runtime. Visitors fly between the two cities, click markers for company details, and browse a live headline ticker. The structure is adapted, with credit, from BUILD416's toronto-tech-map, extended with a city switcher and per-city coordinate validation.

The Problem

Peru's tech scene is real but illegible — startups, consultancies, incubators and funds exist across Lima and Arequipa, yet there's no single open place to see them. Every entry here was researched and verified (SUNAT/RUC registries, Crunchbase, YC directories) rather than scraped; unverifiable or defunct candidates were dropped instead of padded in.

Questions Addressed

  1. 01

    How much interactive map can you ship with literally zero dependencies and no build pipeline?

  2. 02

    How do you keep a community dataset honest — verified entries in, hype out?

  3. 03

    Can CI meaningfully guard a data project with no application code?

Methodology

Phase 1

One-File Architecture

MapLibre GL JS over OpenFreeMap tiles (OpenMapTiles schema) needs no API key, so the entire app is a single static HTML file with inline JS/CSS — deployable on any static host, forkable by anyone for any other city. Data lives in two JSON files (companies, ticker headlines) fetched at runtime.

MapLibre GL JSOpenFreeMapVanilla JS
Phase 2

Verified Dataset, Not a Scrape

53 organizations — 38 Lima, 15 Arequipa: 25 startups, 9 consultancies, 8 incubators, 4 coworking spaces, 4 funds, 2 acquired, 1 nonprofit — each cross-checked against official registries (SUNAT/RUC) and public sources (Crunchbase, YC) before inclusion. Six candidates were dropped as unverifiable or defunct. Code ships MIT; the datasets ship CC BY 4.0.

JSONCC BY 4.0MIT
Phase 3

Guardrails in CI and at Runtime

GitHub Actions validates on every push that both JSON files parse and every entry carries name, city, coordinates and funding type. At load time, entries outside their city's bounding box are skipped with a console warning — a bad coordinate can never silently render a marker in the ocean.

GitHub ActionsCI Validation

Key Results

53researched Lima & Arequipa tech organizations mapped
0dependencies — one HTML file, two JSON datasets, no build step
766lines — the entire application in a single file

Key Findings

01

Zero-dependency is a feature for civic projects: anyone can fork one HTML file and two JSON files for their own city without touching npm.

02

For open datasets, the curation rule matters more than the count — dropping six unverifiable entries is what makes the other 53 worth trusting.

03

CI has a job even with no application code: schema-validating the data on every push keeps community contributions from breaking the map.

Conclusion

Peru Grid is live at perugrid.com — open source end to end (MIT code, CC BY 4.0 data) and designed to be forked. The honest pitch is a verified starting point for making Peru's tech ecosystem visible, not a finished atlas; community submissions continue to grow the map.

Gallery

Peru Grid — Mapping the Peruvian Tech Ecosystem screenshot 1
Peru Grid — Mapping the Peruvian Tech Ecosystem screenshot 2