logo

Crumb, is a new embeddable meeting finder widget built for the Basic Meeting List Toolbox (BMLT).

Crumb is a lightweight, modern widget that lets any BMLT-powered website display a searchable, filterable meeting list – with both a list view and an interactive map, using a single script tag and a <div>. No page reloads. No complex setup.

View Docs →View Demo →

What Crumb Does

Crumb connects directly to any BMLT server and displays meetings in a clean, responsive interface. Visitors can:


WordPress Plugin

For WordPress users, there is a dedicated Crumb plugin that makes embedding the widget on any page or post effortless – no code required. Install it directly from the WordPress.org plugin directory.


Drupal Module

For Drupal users, the Crumb module adds first-class support for Drupal 10.3+ and Drupal 11. It wraps the widget in a placeable block, a [crumb] shortcode filter for body fields, and a render service for programmatic embedding.

Installation

  1. Download the latest crumb.zip from the releases page.
  2. Extract it into web/modules/contrib/ (or web/modules/custom/).
  3. Enable the module: run drush en crumb, or use Extend in the Drupal admin UI.
  4. Visit Configuration → Web services → Crumb and enter your BMLT server URL.

Joomla Extension

For Joomla 4, 5, or 6 sites, the Crumb extension
bundles a content plugin ({crumb} shortcode in articles) and a site module (for module positions), sharing one configuration.

Installation

  1. Download the latest pkg_crumb.zip from the releases page.
  2. In Joomla admin, go to System → Install → Extensions and upload the package zip.
  3. Enable the plugin: System → Plugins, search “Crumb”, open Content – Crumb, set the BMLT server URL, save, and toggle status to
    Enabled. (Joomla ships content plugins disabled by default.)

Embed via Shortcode

With the content plugin enabled, drop the shortcode into any article body:

{crumb}

You can override the server URL or filter by service body directly in the shortcode.

Embed via Module

Publish the Crumb module to any module position via Content → Site Modules → New → Crumb. Per-module settings cover server
URL, service body filter, default view, and CSS template.


Easy to Embed (Without WordPress)

Adding Crumb to any web page takes just two lines:

<div id="crumb-widget"
       data-server="https://your-bmlt-server/main_server/"
       data-service-body="1,2,3"></div>
  <script src="https://cdn.aws.bmlt.app/crumb-widget.js"></script>

That’s it. No build tools required for basic use. See a live example on CodePen.


Flexible Configuration

For more advanced setups, Crumb can be configured via a global CrumbWidgetConfig object before the script loads:

<script>
    var CrumbWidgetConfig = {
      view: 'map',
      geolocation: true,
      geolocationRadius: 15,
      language: 'es',
      darkMode: 'auto',
      height: 600,
      columns: ['time', 'name', 'location', 'address'],
    };
  </script>

Configuration options include:

Option Description
view Start in list or map view
geolocation Enable “Near Me” on load
geolocationRadius Search radius in miles
language Override browser language
darkMode true, false, or 'auto'
height Fixed height in pixels
columns Which columns to show in list view
hideHeader Hide the “Meeting Finder” header

JavaScript Module API

Crumb is also available as an ES module on npm (crumb-widget) for developers who want to mount it programmatically inside a JavaScript app:

import { mountCrumbWidget } from 'crumb-widget';

  mountCrumbWidget(document.getElementById('my-widget'), {
    serverUrl: 'https://your-bmlt-server/main_server/',
    serviceBodyIds: [1, 2, 3],
  });

Internationalization

Crumb ships with built-in translations for English, Spanish, French, German, Portuguese, Italian, Swedish, Danish, Greek, Persian, Polish, Russian, Japanese. The widget automatically uses the
visitor’s browser language, or you can set it explicitly.


Accessibility

Crumb is built with accessibility in mind and tested against WCAG standards using axe.


Get Started

Questions or feedback? Open an issue on GitHub or reach out through the usual BMLT community channels.