Invisible Borders Companion
A mobile field companion for the Marrakesh-to-Lagos road, built to record borders as lived conditions rather than fixed lines, with its own honesty encoded in the data model.
- Period
- 2026
- Role
- Artist-researcher and developer
- Scale
- Route and territory
- Context
- Artistic practice, Research

Open the full artefact in a new tabCounter-atlas route plate for the companion's proposal research scaffold.
Source: Invisible Borders project build. The corridor is not an official itinerary or border claim.Inspect full plate (opens in a new tab)Artist-researcher and developer
- A live deployed PWA at invisible-borders-companion.vercel.app plus a separate dossier landing page, built in Next.js 16 and React 19 with roughly 68 React components and 32 library modules.
- An estimated route model spanning all nine corridor countries: 32 waypoints and 18 field stops, each carrying an explicit estimated flag, rendered on a MapLibre map with a chapter picker and a conditions dashboard.
- Field conditions drawn from six live data sources with a 'Here' mode reading the traveller's own GPS, all behind Zod validation with unit tests on the conditions, air-quality, daylight and effects logic.
- A complete seven-plate application dossier (motivation letter, CV, portfolio, application copy and three research samples) published as PDFs for the Invisible Borders 2026 open call, alongside a print companion pipeline built with WeasyPrint and Matplotlib.
The route is an estimated research scaffold, not an official itinerary or a border claim; only Marrakesh and Lagos are confirmed and the rest is inferred from the published corridor. The companion is a pre-production prototype and application artefact for a journey that has not yet taken place, so it documents a method and an intent, not a completed field record, and its acceptance to the programme is not claimed here.
The Invisible Borders Trans-African Road Trip is a collective art-research journey of roughly 6,800km across nine countries over 48 days, where borders are experienced not as lines on a map but as waiting, paperwork, fatigue, weather and small acts of hospitality. The task was to build a field companion and application dossier that a traveller could actually use offline along that corridor, while the corridor itself had not yet been travelled: only Marrakesh and Lagos are officially confirmed, so nothing could be presented as documented fact or as an authoritative map of a continent seen from outside.
My contribution
I adapted a prior walking-companion system into a Next.js 16 and React 19 progressive web app, stripping out all the London material and rebuilding the route as an estimated Marrakesh-to-Lagos corridor across the nine official countries, modelled in TypeScript with an explicit estimated flag per stop so that only Marrakesh and Lagos read as confirmed. I made it offline-first with an IndexedDB store and a service worker so the archive survives border crossings without connectivity, and wired six keyless open data sources (weather, air quality, daylight, REST Countries context, Freesound field audio and Wikimedia) behind Zod validation with unit tests on the conditions, air-quality, daylight and effects logic. On top of that I built a lens-based field practice, photograph, sound, writing, cartography and video prompts with per-stop hooks, a journal, voice memos, a live "Here" mode reading conditions at the traveller's own GPS, and a paper-and-rust editorial identity carried across both the app and a static dossier landing page presenting seven application plates.
Decisions and constraints
Decisions I made
- Encode honesty in the type system, not just the copy: every stop carries an estimated boolean and only Marrakesh and Lagos are marked confirmed, so the interface cannot present a research scaffold as an official route.
- Go offline-first with IndexedDB and a service worker, because the real use case is a moving vehicle crossing nine borders where connectivity is intermittent and the archive has to hold without a signal.
- Choose keyless, open data sources (REST Countries, Freesound, Wikimedia, open weather and air-quality feeds) validated with Zod, so the companion has no secret dependencies, degrades gracefully, and stays cheap and portable.
- Write the ethic into the interface itself as an explicit 'what this does not do' section, so the boundary of the work is visible to the reader rather than buried in a statement.
Operating constraint
The journey has not happened. The companion had to be genuinely useful in the field yet make no claim it could not stand behind: no official itinerary, no border claim, no flattening of people into data points, consent per encounter.
Claim boundary: The route is an estimated research scaffold, not an official itinerary or a border claim; only Marrakesh and Lagos are confirmed and the rest is inferred from the published corridor. The companion is a pre-production prototype and application artefact for a journey that has not yet taken place, so it documents a method and an intent, not a completed field record, and its acceptance to the programme is not claimed here.
Evidence
- A live deployed PWA at invisible-borders-companion.vercel.app plus a separate dossier landing page, built in Next.js 16 and React 19 with roughly 68 React components and 32 library modules.
- An estimated route model spanning all nine corridor countries: 32 waypoints and 18 field stops, each carrying an explicit estimated flag, rendered on a MapLibre map with a chapter picker and a conditions dashboard.
- Field conditions drawn from six live data sources with a 'Here' mode reading the traveller's own GPS, all behind Zod validation with unit tests on the conditions, air-quality, daylight and effects logic.
- A complete seven-plate application dossier (motivation letter, CV, portfolio, application copy and three research samples) published as PDFs for the Invisible Borders 2026 open call, alongside a print companion pipeline built with WeasyPrint and Matplotlib.