An interactive touchscreen kiosk application created for North Carolina’s 250th anniversary programming. The installation guides visitors through a map based journey of historic locations, events, and people connected to the Revolutionary era. The experience blends React, Electron, and a headless CMS to deliver a museum grade interface that is reliable, fast, and fully optimized for physical exhibit environments.
The NC250 initiative highlights North Carolina’s role in the Revolutionary era from 1771 through 1783. As part of the program, visitors explore history through exhibits, maps, and digital media. The kiosk experience was designed to present a touch friendly way to browse locations, people, and events connected to the state’s Revolutionary history.
This kiosk was developed by the Interactive Knowledge team as a standalone desktop application for museum environments. It runs inside Electron with a React based interface and consumes content that is curated and published through a Drupal backend. It was built to operate reliably offline, survive heavy visitor use, and remain visually consistent with the broader NC250 identity.
I contributed as part of the Interactive Knowledge development team, focusing on several areas of the application:
My contributions were part of an ongoing multi-developer effort to stabilize, refine, and prepare the experience for museum use.
Touch interactions in a kiosk setting
The project required highly reliable touch detection and gesture support. I helped refine scroll, drag, and pan behavior using react-zoom-pan-pinch and Interact.js to create predictable responses to visitor input.
Syncing headless CMS content into a packaged desktop app
The kiosk does not fetch content live from the internet. I worked with the content sync pipeline that fetches JSON and media from Drupal, processes them, and packages them into the build so the app functions offline.
Optimizing performance inside Electron
Electron apps can struggle with heavy map libraries. I contributed to code and asset adjustments that reduced bundle size and improved the initial load time, including Vite optimizations, tree shaking, and asset pruning.
From sound engineering to AI systems—discover the journey that shaped how I build technology.