Crumb
Embeds the Crumb Widget NA meeting finder on any page or post via a simple shortcode.
Use with caution
Crumb works, but test it on a staging site before relying on it in 2026. It runs on 20+ sites and was last updated 2 months ago, and scores 58/100 on our health check.
- Small user base (20+ active installs)
- Very few reviews so far
- Needs PHP 8.1 or newer
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Crumb stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| bmlt | #7 |
| meeting finder | #3 |
| meetings | #77 |
| na | #55 |
| narcotics anonymous | #3 |
Version adoption
Share of active sites per release.
About Crumb
From the official readme · v1.8.6Description
Crumb is a lightweight WordPress plugin that embeds the Crumb Widget 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" format_ids="17,54" view="map" geolocation="true" geolocation_radius="30"]
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 meetingsformat_ids— Format ID or comma-separated list of BMLT format IDs to lock the widget to; leave empty to show all formatsview— Default view when the widget loads:list(default),map, orboth(map above list with no toggle); can also be overridden at runtime via the?view=query parametergeolocation— Enable or disable geolocation for this page:trueorfalsegeolocation_radius— Geolocation search radius. Positive integer = fixed radius in miles (or km per server settings). Negative integer = BMLT auto-radius: the server expands the search until it finds roughly that many meetings (e.g.-50finds ~50 nearby meetings). Overrides the Geolocation Radius setting and Widget Configuration.update_url— URL template for the Update Meeting Info link shown at the bottom of the meeting detail panel. Supports tokens{meeting_id},{meeting_name},{server_url},{return_url}(URL-encoded on substitution). Works with bmlt-workflow, hosted forms, ormailto:URLs.columns— Comma-separated list of columns to show in list view (e.g.time,name,location,address,service_body). Available values:time,distance(only renders when geolocation is active),name,location(venue/building name),address(street address with in-person/online badges),service_body,formats(one chip per format, using its localized name). Omit a name to hide that column; the order you list them in is the order they render. Overrides the List Columns setting. Leave unset to use the List Columns setting, or the widget default (time,distance,name,location,address) when that is empty too.language— Force the widget UI language for this page (e.g.en,es,fr,de,pt,it,sv,da,el,fa,pl,ru,ja). Leave unset to auto-detect from the visitor’s browser.query— Raw BMLT query string passed through to the widget’srawQuery()for filters the structured options can’t express (e.g. multi-valuemeeting_key_value[]). When set, this replaces the default load entirely —service_body,format_ids, and?servicesare ignored — and forces geolocation off (the widget can’t safely layer lat/long/geo_width on top of an arbitrary query). Encode brackets as%5B/%5Dbecause WordPress shortcodes can’t contain literal[or]. Example:[crumb query="meeting_key=location_nation&meeting_key_value%5B%5D=USA"]. Shortcode-only; no admin setting.
Switching from Crouton
Crumb is an alternative to the crouton plugin and can drop in without page edits in most cases. Activating Crumb will:
- Register the crouton shortcodes (
[bmlt_tabs],[bmlt_map],[crouton_tabs],[crouton_map]) and translate them to the Crumb widget. Map shortcodes render withview="both"(map + list) and tabs shortcodes render withview="list". Shortcode attributesroot_server,service_body,service_body_1,formats,report_update_url, andquery_stringare mapped to their Crumb equivalents (query_stringbecomesdata-queryand routes through the widget’srawQuery()). - Reuse crouton’s saved settings as fallbacks when the corresponding Crumb option is empty (BMLT server URL, service bodies, format IDs, update URL). Open Settings → Crumb to confirm the inherited values and click Save Changes to persist them.
Crumb only handles those shortcodes when crouton is deactivated — if both plugins are active, crouton continues to handle its own shortcodes. To switch: install Crumb, then deactivate crouton. No page edits required.
Documentation
Full documentation at 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
- Upload the plugin files to
/wp-content/plugins/crumb/. - Activate the plugin through the Plugins screen in WordPress.
- Go to Settings → Crumb and enter your BMLT Server URL.
- Add
[crumb]to any page or post.
Frequently asked questions
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. You can also choose Both to display the map above the meeting list simultaneously with no list/map toggle. 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.
Can I deep-link to a specific view?
Yes. Append ?view=list or ?view=map to any page URL that contains the [crumb] shortcode to open the widget in that view. This works regardless of the default view set in Settings → Crumb, making it easy to link directly to the map view from a button or menu item.
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.
I’m switching from the crouton plugin — do I have to edit my pages?
No. Crumb registers the crouton shortcodes ([bmlt_tabs], [bmlt_map], [crouton_tabs], [crouton_map]) and renders them with the Crumb widget. It also reads crouton’s saved settings (server URL, service body, format IDs, update URL) as fallbacks. Just install Crumb, deactivate crouton, and existing pages keep working. See the Switching from Crouton section above for details.
Changelog
Adds a List Columns admin setting for choosing which columns appear in list view. Safe to update.
1.8.6
- Added List Columns admin setting — checkboxes for the columns shown in list view (
time,distance,name,location,address,service_body,formats). Previously this was only reachable per-page via thecolumnsshortcode attribute or thecolumnskey in Widget Configuration. Stored ascrumb_columns; emitsdata-columns. Leave all boxes unchecked to keep the widget default (time,distance,name,location,address). The shortcodecolumnsattribute still overrides the setting per page and is the way to set a custom column order. - Crouton’s
has_areas/has_regionsattributes now appendservice_bodyto the saved List Columns selection instead of replacing it with the default column list.
1.8.5
- Added Show Formats admin setting and
show_formatsshortcode attribute — shows a comma-separated list of format codes (e.g.C, O, BT) beneath each meeting name in the list/cards view. Stored ascrumb_show_formats; emitsdata-show-formats. - Added Inline Formats admin setting and
inline_formatsshortcode attribute — highlights specific BMLT format key strings (e.g.M,W) inline next to each meeting name, rendered as their localized names (e.g. “Men”, “Women”). Stored ascrumb_inline_formats; emitsdata-inline-formats.
1.8.4
- Fixed Default View admin setting being ignored by the crouton-compat shortcodes.
[bmlt_tabs]/[crouton_tabs]/[bmlt_map]/[crouton_map]were unconditionally forcing the tag-implied view (listfor*_tabs,bothfor*_map), which overrode whatever was saved in the admin’s Default View dropdown. Resolution now follows: explicitshow_map="1"on the shortcode →both(highest, user-written); else a saved Default View (including the croutonshow_mapadmin-option fallback) wins; else the tag-implied default is used as a last-resort fallback for migrating users.
1.8.3
- Added Header admin setting — dedicated dropdown (Widget Default / Visible / Hidden) to show or hide the widget’s header bar (title, meeting/group counts, search/filter controls). Stored as
crumb_hide_header; overridden by ahideHeaderkey in Widget Configuration. - Fixed crouton
report_update_urlmigration: crouton stores a bare URL (e.g./submitschedulechange) and appends?meeting_id={id}at render time, but the Crumb widget requires a URL template containing{meeting_id}(or another{token}) or it drops the link entirely. Both migration paths — the admin-option fallback frombmlt_tabs_options[report_update_url]and the shortcode-levelreport_update_urlattribute on[bmlt_tabs]/[crouton_tabs]/[bmlt_map]/[crouton_map]— now auto-append?meeting_id={meeting_id}(or&meeting_id={meeting_id}if a query string is already present). Values that already contain a{token}are passed through unchanged so deliberately-templated URLs aren’t double-decorated.
1.8.2
- Fixed crouton “Companion Map” migration: the admin-saved
bmlt_tabs_options['show_map']value is now used as the fallback for the Default View when no Crumb-side value is saved. Mapping:1(Show Map and Table) →both,0(No Map) →list,embed(Embed Map as Table Page) →list(Crumb has no separate “map tab” view; the widget’s runtime toggle still lets visitors switch to the map). The Default View dropdown on the settings page also pre-selects the migrated value so saving the form persists it explicitly.
1.8.1
- Fixed crouton service body migration: the fallback that reads
bmlt_tabs_options['service_bodies']was extracting0instead of the real ID because crouton stores each entry as a 4-part CSV ("name,id,parent_id,parent_name") and the old code ranintval()on the whole string. The widget now correctly inherits crouton’s selected service bodies on sites that haven’t yet saved a Crumb-side value. Malformed entries are skipped, and if none survive the fallback drops through to the singularservice_bodykey. - Removed the hardcoded
1047,1048default for Service Body IDs. Fresh installs with no saved value now omitdata-service-bodyfrom the widget output, so the widget shows all meetings on the configured server instead of two arbitrary Western New York service bodies. Existing saved values are unaffected.
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Crumb alternatives
All bmlt plugins →FAQ
Crumb: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Sep 28, 2026
Is Crumb free?
Yes. Crumb is free to download and use from the official WordPress.org plugin directory.
Is Crumb safe to use in 2026?
Crumb works, but test it on a staging site before relying on it in 2026. It runs on 20+ sites and was last updated 2 months ago, and scores 58/100 on our health check.
How many websites use Crumb?
Crumb is active on 20+ WordPress websites and has been downloaded 964 times since it launched in April 2026. It was downloaded 87 times in the last 30 days.
Does Crumb work with WordPress 7.1?
Crumb is officially tested up to WordPress 7.0.6, while the latest release is 7.1.2. It may still work, but try it on a staging site first.
What PHP version does Crumb need?
Crumb requires PHP 8.1 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Crumb last updated?
The latest version, 1.8.6, was released on July 30, 2026 (2 months ago).
Who makes Crumb?
Crumb is developed and maintained by bmltenabled.
What are the best alternatives to Crumb?
The most popular alternatives to Crumb are crouton (300+ installs), Bread (300+ installs) and Fetch Meditation (100+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card

