Technologies
- SvelteKit
- Svelte 5
- TypeScript
- Carbon Design System (Svelte)
- DuckDB-WASM
- Deck.gl
- MapLibre
- Apache Arrow
- WebGL
- PWA
- GitHub Actions
Client projectHigher education2025 · 2026

Client projectHigher education2025 · 2026
Sciences Po's Cartography Lab designed a complete rewrite of Khartis, its mapping tool for researchers and journalists, and I developed it. Datasets of up to millions of rows become print-quality maps in the browser, even offline, with no data sent to a server.
Since 2016, the Cartography Lab (Atelier de cartographie) has offered Khartis to researchers and journalists who need thematic maps without being cartographers. Version 3 is one of the three projects of my Sciences Po engagement, carried out with the Lab's team.
The Lab's design puts every step of map-making on the user's machine, from import and analysis to projection and rendering. My work was to make it run in a web page, with large datasets.
DuckDB, compiled to WebAssembly, runs in a Web Worker with its spatial and Parquet extensions. Every step runs in the browser, and no server ever receives the user's data.
Query results travel as Apache Arrow and GeoArrow columns straight to Deck.gl, which draws them with WebGL2. Projections from d3 give print-quality maps, a MapLibre mode handles tiles and the globe, and basemaps come from a versioned GeoParquet catalogue.
The Lab designed the tool and its map semiology, Antoine Rio its interface, and Thomas Ansart the Lab's open-source libraries it builds on, such as projection suggestions and palettes. I implemented every map type and classification, from natural breaks to nested means.
Khartis installs as a progressive web app and keeps working offline once its basemaps are loaded. Projects are saved in the browser and exported as SVG, JPG up to 4K or GeoPackage. The app, in French and English, is open source under the MIT licence.




Tell me what you want to build or improve, your budget and your target date.