Registry shadcn · @geekles

La cartographie française, en un npx.

Des composants React câblés sur les données officielles — IGN, BAN, cadastre, DVF, Géorisques. Installés par la CLI shadcn, le code vit dans votre repo. La donnée est ouverte ; on gère la douleur de l’intégrer.

$
npx shadcn add @geekles/map-fr
5 composants OSS · MIT3 Pro · sur abonnementMapLibre GL · React 19
components.json

Un registry OSS. Un registry Pro.
La même CLI.

Déclarez les deux registries dans votre components.json. Le tier Pro est résolu via un header Authorization Bearer — votre clé reste dans l’environnement, jamais dans le repo.

  • @geekles — registry public, MIT, aucune clé requise.
  • @geekles-pro — gaté par GEEKLES_API_KEY, résolu au moment du add.
  • Compatible shadcn CLI standard — aucun outil propriétaire.
components.json
{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "registries": {
    "@geekles": "https://registry.geekles.dev/{name}.json",
    "@geekles-pro": {
      "url": "https://registry.geekles.dev/pro/{name}.json",
      "headers": {
        "Authorization": "Bearer ${GEEKLES_API_KEY}"
      }
    }
  }
}
Le moat, pas la donnée

La donnée IGN est ouverte.
L’intégrer proprement ne l’est pas.

Vous pourriez câbler la Géoplateforme vous-même. Vous le feriez une fois — puis l’API changerait. Voici ce qu’on encapsule, et qu’on maintient.

Quirks WFS/WMTS gérés

Pagination, bbox, TILEMATRIXSET, encodages : les bizarreries des flux Géoplateforme, encapsulées et testées.

Attribution IGN auto

Mentions légales, logos et conditions d’usage IGN injectés automatiquement sur chaque carte. Conforme, sans y penser.

Projections à la volée

Lambert-93 ↔ WGS84 géré côté composant. EPSG:2154 entrant, 4326 sortant — sans proj4 dans votre code.

PMTiles souverains

Tuiles vectorielles servies en .pmtiles, hébergeables sur votre propre infra. Aucune dépendance à un tuilier tiers.

Maintenance = le produitmoat

Les API gouvernementales migrent (Géoportail → Géoplateforme l’a prouvé). On suit les ruptures et on patche en amont de votre prod.

Typés & tree-shakeables

TypeScript strict, hooks composables, zéro wrapper runtime. Vous lisez le code — il vit dans votre repo, pas dans un node_modules.

Sources officielles câblées

Branché sur le service public de la donnée.

IGN · GéoplateformeBAN · adressesCadastre · PCIDVF · valeurs foncièresGéorisquesBD TOPO · PLU