Title: Crumb
Author: bmltenabled
Published: <strong>April 10, 2026</strong>
Last modified: April 10, 2026

---

Search plugins

![](https://ps.w.org/crumb/assets/banner-772x250.png?rev=3503632)

![](https://ps.w.org/crumb/assets/icon-256x256.png?rev=3503632)

# Crumb

 By [bmltenabled](https://profiles.wordpress.org/bmltenabled/)

[Download](https://downloads.wordpress.org/plugin/crumb.1.1.0.zip)

 * [Details](https://wordpress.org/plugins/crumb/#description)
 * [Reviews](https://wordpress.org/plugins/crumb/#reviews)
 *  [Installation](https://wordpress.org/plugins/crumb/#installation)
 * [Development](https://wordpress.org/plugins/crumb/#developers)

 [Support](https://wordpress.org/support/plugin/crumb/)

## Description

Crumb is a lightweight WordPress plugin that embeds the [Crumb Widget](https://crumb.bmlt.app/)
meeting finder on any page or post using a simple shortcode.

Features:

 * List and map views with real-time search and filters
 * Meeting detail with directions and virtual meeting join link
 * Multi-language support
 * Shareable per-meeting URLs

#### Usage

Add the shortcode to any page or post:

    ```
    [crumb]
    ```

Override settings per page:

    ```
    [crumb server="https://your-server/main_server" service_body="42" view="map" geolocation="true"]
    ```

Shortcode attributes:

 * `server` — BMLT server URL (overrides the value set in Settings  Crumb)
 * `service_body` — Service body ID or comma-separated list; leave empty to show
   all meetings
 * `view` — Default view when the widget loads: `list` (default) or `map`; can also
   be overridden at runtime via the `?view=` query parameter
 * `geolocation` — Enable or disable geolocation for this page: `true` or `false`

#### Documentation

Full documentation at [crumb.bmlt.app](https://crumb.bmlt.app/).

### External services

This plugin relies on two external services. Both are part of the BMLT (Basic Meeting
List Toolkit) ecosystem — free, open-source tools built for Narcotics Anonymous 
service bodies (https://bmlt.app).

**1. Crumb Widget CDN**

The widget JavaScript is loaded from a CDN operated by the BMLT project.

 * Service: cdn.aws.bmlt.app — delivers the Crumb Widget JavaScript file
 * Purpose: Provides the JavaScript component that renders the meeting list interface
 * Data sent: Standard HTTP request headers (IP address, browser user-agent, referring
   URL). No personal or meeting-search data is sent to the CDN.
 * When: The script is loaded once per page load on any page that contains the [
   crumb] shortcode
 * Privacy policy: https://crumb.bmlt.app/privacy.html
 * Terms of use / License: https://github.com/bmlt-enabled/crumb-widget/blob/main/
   LICENSE

**2. BMLT Server (meeting data)**

The widget fetches meeting data from a BMLT server whose URL you configure in Settings
Crumb. This server is typically operated by a regional NA service body and is not
a service operated by the Crumb project.

 * Service: Your configured BMLT server (e.g. https://your-region.bmlt.app/main_server/)
 * Purpose: Retrieve NA meeting listings (names, times, locations, formats) to display
   in the widget
 * Data sent: Search query parameters (filters, keyword, selected formats). If geolocation
   is enabled and the user consents via a browser prompt, the user’s geographic 
   coordinates are also sent to this server.
 * When: On each search or filter action within the widget
 * Privacy policy: Determined by the operator of your configured BMLT server. Learn
   more at https://bmlt.app.

## Installation

 1. Upload the plugin files to `/wp-content/plugins/crumb/`.
 2. Activate the plugin through the Plugins screen in WordPress.
 3. Go to **Settings  Crumb** and enter your BMLT Server URL.
 4. Add `[crumb]` to any page or post.

## FAQ

### Where do I find my server URL?

It is the URL to your BMLT server, typically ending in `/main_server`. Contact your
service body’s regional tech team if you are unsure.

### Can I show only meetings from a specific service body?

Yes. Enter the service body ID (or a comma-separated list of IDs) in the Service
Body IDs field, or use the `service_body` shortcode attribute. Child service bodies
are always included automatically.

### Can I set the widget to open in map view by default?

Yes. Choose **Map** from the Default View dropdown in **Settings  Crumb**, or use`
view="map"` in the shortcode. Visitors can also switch views at runtime via the `?
view=` query parameter.

### Can I get clean URLs without the # in them?

Yes. Enter the page slug (e.g. `meetings`) in the **Base Path for Pretty URLs** 
setting under **Settings  Crumb**. After saving, go to **Settings  Permalinks** 
and click **Save Changes** to update rewrite rules. Meeting detail URLs will then
look like `/meetings/monday-night-meeting-42` instead of `/#/monday-night-meeting-
42`.

### Does it work with page builders?

The shortcode works in any context that processes WordPress shortcodes. If your 
page builder does not render shortcodes automatically, use its dedicated shortcode
block.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Crumb” is open source software. The following people have contributed to this plugin.

Contributors

 *   [ bmltenabled ](https://profiles.wordpress.org/bmltenabled/)
 *   [ pjaudiomv ](https://profiles.wordpress.org/pjaudiomv/)

[Translate “Crumb” into your language.](https://translate.wordpress.org/projects/wp-plugins/crumb)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/crumb/), check out 
the [SVN repository](https://plugins.svn.wordpress.org/crumb/), or subscribe to 
the [development log](https://plugins.trac.wordpress.org/log/crumb/) by [RSS](https://plugins.trac.wordpress.org/log/crumb/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.1.0

 * Added **Base Path for Pretty URLs** setting — enables clean meeting detail URLs(
   e.g. `/meetings/monday-night-meeting-42`) using WordPress rewrite rules. Leave
   empty to keep default hash-based routing.

#### 1.0.3

 * Added Widget Configuration setting (JSON) for CrumbWidgetConfig options (language,
   geolocation, darkMode, columns, map tiles, etc.).
 * Added `geolocation` shortcode attribute to enable or disable geolocation per 
   page.

#### 1.0.2

 * Updated readme to document external services (CDN and BMLT server) with privacy
   policy links.
 * Fixed late-escaping of inline CSS output per WordPress coding standards.

#### 1.0.1

 * Added `view` shortcode attribute and admin setting to set the default widget 
   view (`list` or `map`).

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.1.0**
 *  Last updated **4 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [bmlt](https://wordpress.org/plugins/tags/bmlt/)[meeting finder](https://wordpress.org/plugins/tags/meeting-finder/)
   [meetings](https://wordpress.org/plugins/tags/meetings/)[na](https://wordpress.org/plugins/tags/na/)
   [narcotics anonymous](https://wordpress.org/plugins/tags/narcotics-anonymous/)
 *  [Advanced View](https://wordpress.org/plugins/crumb/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/crumb/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/crumb/reviews/)

## Contributors

 *   [ bmltenabled ](https://profiles.wordpress.org/bmltenabled/)
 *   [ pjaudiomv ](https://profiles.wordpress.org/pjaudiomv/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/crumb/)