unattended operationnode 23+isc licensed
$npm create @bluecadet/launchpad
Get Started →

↖ one package to install. nothing else to stand up.

A toolkit for next generation media experiences.

Launchpad ensures stability, reduces installation time, and allows teams to focus on innovation rather than troubleshooting.

Content lands before doors open

Sources pull from Airtable, Contentful, Sanity, Strapi, or any JSON endpoint, and transforms download and resize media on the way in. New content stages into its own version and only goes live once the whole fetch succeeds, so the worst case for a failed sync is yesterday’s content, not a half-updated screen.

Apps come back without you

Launchpad launches whatever your installation runs, watches it, and restarts what dies. Window placement and launch order live in the same config, so a machine that reboots comes back arranged the way you left it.

Every piece is a plugin

Sources, transforms, monitor backends, and observability transports are swappable pieces, not fixed choices. Reach for Sanity or Grafana Loki out of the box, or implement the same interface yourself when they don’t fit — no fork required.

why it exists

Built to run unattended

Interactive installations fail in boring ways. The overnight content sync never lands, so a screen shows last month’s labels. An app crashes at 6am, and the first person to notice is a visitor. Launchpad exists to make both survivable without a person on site.

It does three things: pulls content out of the CMS you already run, launches your apps and restarts the ones that die, and forwards a record of all of it somewhere you’ll actually see. That’s the whole scope. It doesn’t author your content and it doesn’t build your app; it keeps the thing you built running after everyone goes home.

Launchpad’s Key Features

What Launchpad handles out of the box.

Run multiple apps simultaneously.

Control over launch sequence and window order for more complex exhibit setups.

Graceful handling of app failures.

Apps that exit or crash are restarted automatically.

Content syncing across platforms.

Pulls from Sanity, Strapi, Contentful, Airtable, and generic JSON endpoints (WordPress, Drupal, REST APIs).

Local content caching.

Content is stored locally to ride out network outages, with rollback handling so a failed sync doesn’t disrupt what’s already on screen.

Content processing support.

Text transformations like markdown to HTML, plus image resizing, filtering, and cropping on the way in.

Logs forwarded off the machine.

Every restart, failed fetch, and log line can go to Grafana Loki or any transport you implement.

Built on a plugin interface.

Sources, transforms, monitor backends, and observability transports all implement the same interface as the built-ins, so swapping one in touches config, not core.

from the team

We developed Launchpad to address challenges we frequently see in Bluecadet’s exhibit projects, which include content-heavy experiences, native apps, and long-term deployments across large fleets of computers.

Adiel FernandezTech Director, Bluecadet

Start with the guides.