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.
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
- 01
How much interactive map can you ship with literally zero dependencies and no build pipeline?
- 02
How do you keep a community dataset honest — verified entries in, hype out?
- 03
Can CI meaningfully guard a data project with no application code?
Methodology
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.
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.
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.
Key Results
Key Findings
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.
For open datasets, the curation rule matters more than the count — dropping six unverifiable entries is what makes the other 53 worth trusting.
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

