Skip to content

Latest commit

 

History

23 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Blank Board

A powerful, indestructible micro-kernel canvas where everything is a plugin.

No built-in features. No bloat. Just an ultra-resilient micro-kernel (v5.0) that can transform into an OS desktop, a DAW music studio, a retro arcade machine, or a developer workstation.

Docs License: MIT


✨ Core Philosophy

  • 100% Modularity: Everything (UI, tools, layouts, and the Plugin Manager) is a plugin.
  • Zero-Redeployment Extensibility: Core code stays static on Netlify while plugins are hosted on GitHub and fetched dynamically as raw ES modules.
  • Indestructible Micro-Kernel:
    • 🛡️ Scoped Plugin Sandboxes: Dedicated sandbox per plugin with automatic zero-leak disposal of event listeners, styles, DOM elements, and timers.
    • 🚀 Offline Code Cache: Instant 0ms boot using IndexedDB caching with background stale-while-revalidate update checks.
    • 🛟 Safe Mode & Crash Guard: Automatically detects consecutive crash loops and boots into Safe Mode for instant recovery.
    • 🤝 Service Registry: Inter-Plugin RPC allowing plugins to export shared audio engines, physics, or parsers.
    • 💾 Hybrid Storage: LocalStorage for fast preferences + IndexedDB (api.storage.db) for large media/canvas data.
    • 📦 Workspace Bundles: Export and import full workspaces (.blankboard bundles) with 1 click.

🚀 Quick Start

  1. Clone or download this repository.

  2. Open index.html in your browser, or serve it locally:

    npx serve .
  3. Right-click anywhere on the board to open the Plugin Manager.

  4. Switch to the Discovery tab to browse and install plugins.


📦 Plugin System

How Plugins Work

  • Standalone .js files (ES modules)
  • Export meta, setup(api), and optional teardown()
  • Run inside an isolated, managed container (api.container)
  • Full access to the event bus (api.bus), hybrid storage (api.storage), and services (api.services)
export const meta = {
  id: 'my-plugin',
  name: 'My Plugin',
  version: '1.0.0'
};

export function setup(api) {
  // 1. Scoped CSS
  api.injectCSS(`
    .my-card {
      padding: 16px;
      font-family: system-ui;
    }
  `);

  // 2. Build UI in managed container
  const container = api.container;
  container.innerHTML = `
    <div class="my-card">
      <h3>${meta.name}</h3>
      <button id="btn">Click Me</button>
    </div>
  `;

  container.querySelector('#btn').addEventListener('click', () => {
    api.notify('Hello from Blank Board v5.0!', 'success');
  });
}

📚 Documentation

Full documentation is live on Mintlify:

Section What's Covered
Getting Started Installation & philosophy
Architecture Micro-Kernel v5, Sandboxing, Safe Mode & Cache
API Reference Full API reference (container, bus, storage, services)
Game Blueprint Game loops, Canvas 60FPS, controls
Audio/Media Blueprint WebAudio API, Synthesizers, Visualizers
Workspace Bundles .blankboard export, import & sharing

📄 License

MIT License — see LICENSE for details.

About

A minimal, plugin-driven workspace where everything is a plugin built on a tiny micro-kernel with zero built-in features.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages