Based on the Discourse Mint theme.
The theme must be installed from Git so that updates to this repository are automatically available in Discourse.
- Go to Admin > Customize > Themes & components
- Click Install and select From a Git repository
- Enter the repo URL:
https://github.com/Better-Conversations/discourse-theme-bcf - Click Install
- Once installed, click on the theme and set it as the active theme for your site
If the theme was previously created by pasting CSS directly into the admin editor:
- Note down any included components (e.g. Category Icons, Homepage Feature) — you'll re-add these
- Note down any theme setting overrides (colour palette selections, etc.)
- Install the theme from Git using the steps above
- Re-add the same components to the new Git-linked theme
- Re-apply any theme setting overrides
- Set the new theme as active
- Delete the old manually-created theme
Once installed from Git, go to Admin > Customize > Themes & components > BCF-Bespoke-Theme and click the update button (or enable auto-update in the theme settings to check for updates periodically).
Use the discourse_theme CLI to live-sync local changes to your Discourse instance without committing to Git.
gem install discourse_themediscourse_theme watch .On first run, it will prompt for:
- Discourse URL — e.g.
https://community.betterconversations.foundation - API key — create one at Admin > API > Keys (scoped to your admin user, with global scope)
These are saved for subsequent runs. After setup, every file save is instantly uploaded to Discourse — no commit/push/update cycle needed.
- Keep a browser tab open on your Discourse site to see changes in real time
- Use
Ctrl+Cto stop watching - If you need to reset the saved credentials:
discourse_theme config - The CLI only syncs the theme files — component settings (Category Icons config, etc.) still need to be changed in the admin UI
discourse_theme watch syncs directly to your live Discourse — all users see changes immediately. To avoid disrupting the community, use a dev branch and a separate theme:
One-time setup:
- Create a
devbranch:git checkout -b dev - In Discourse, install a second copy of the theme from Git using the same repo URL but set the branch to
dev - Name it BCF-Dev-Theme
- Add the same components (Category Icons, Homepage Feature) to the dev theme
- In your user preferences (Preferences > Interface > Theme), select BCF-Dev-Theme — only you will see it
Development workflow:
- Work on the
devbranch locally - Run
discourse_theme watch .pointed at the dev theme - Iterate — changes are visible only to you
- When happy, commit to
devand push - Create a PR from
dev→main - After merging, update the production theme in admin (or let auto-update pick it up)
Quick changes (low traffic):
For minor tweaks during quiet hours, working directly on main is acceptable. Use your judgement based on community activity.
Use the CLI for iterative development, then commit once you're happy with the result. This avoids cluttering the Git history with trial-and-error commits.
The theme includes two colour palettes defined in about.json:
- BCF-light — white background, purple (#503F99) tertiary, orange (#FBB050) quaternary
- BCF-dark — dark background (#2d2d2d), lighter purple (#8b5ca2) tertiary
These are created automatically when the theme is installed from Git. Set them in Admin > Customize > Themes > BCF-Bespoke-Theme under Colour Palette / Dark Color Palette.
Set in Admin > Appearance > Fonts:
- Base font: Open Sans
- Heading font: Lato
Both are dyslexia-friendly with clear letter differentiation. The brand guidelines specify Livvic, but these were chosen for accessibility. No custom CSS needed — Discourse loads them natively.
The theme requires two components:
- Homepage Feature —
https://github.com/nolosb/discourse-featured-cards(listed inabout.json, may auto-install) - Category Icons —
https://github.com/discourse/discourse-category-icons(see configuration below)
Add both via Admin > Customize > Components > Install and attach them to the BCF-Bespoke-Theme.
Following setting changes are required for this theme to render properly:
top menuneeds to be set to category, latest, new, unread, topdesktop category page styleneeds to be set to Boxes with Subcategories
The old discourse-search-banner theme component has been removed from this theme.
Use Discourse core welcome banner functionality instead:
- Configure your banner from the admin interface using the current Discourse "welcome banner" feature.
- If the old search banner component is still installed on your site, remove it from your active theme/component list.
Colours use the official BCF brand palette from the brand guidelines:
Primary: Purple #503F99, Blue #4495D1, Teal #54C4B6, Red #EF404E
Secondary: Orange #FBB050, Green #A8D381, Coral #E8635A, Sky blue #6BCBDE
Note: Coral replaces Lavender (#BD88BE) from the original brand guidelines.
Set the category badge colour for each category in Admin > Categories > [category] > Settings:
| Category | Colour | Hex |
|---|---|---|
| start here | Teal | #54C4B6 |
| course updates | Orange | #FBB050 |
| in action | Red | #EF404E |
| the foundation | Dark teal | #2E8B82 |
| anything else? | Coral | #E8635A |
| digging deeper | Blue | #4495D1 |
| course delivery | Orange | #FBB050 |
| translations | Green | #A8D381 |
| BCF faculty | Purple | #503F99 |
| staff | Dark | #333333 |
| site feedback | Grey | #8E99A4 |
| Outside The Walls | Sky blue | #6BCBDE |
| Partners | Blue | #4495D1 |
Icons are managed via the discourse-category-icons theme component.
Installation:
- Go to Admin > Customize > Components > Install
- Add the Git URL:
https://github.com/discourse/discourse-category-icons - Add the component to the BCF-Bespoke-Theme
Configuration:
In the component settings, set category_icon_list (one per line, format: slug,icon,color):
start-here,compass,#54C4B6
course-updates,bell,#FBB050
in-action,rocket,#EF404E
foundation,building-columns,#2E8B82
anything-else,comments,#E8635A
digging-deeper,microscope,#4495D1
delivering-better,chalkboard-user,#FBB050
translations,globe,#A8D381
bcf-faculty,graduation-cap,#503F99
staff,shield-halved,#333333
site-feedback,lightbulb,#8E99A4
otw,person-hiking,#6BCBDE
partners,handshake,#4495D1
Set svg_icons to:
compass|bell|rocket|building-columns|comments|microscope|chalkboard-user|globe|graduation-cap|shield-halved|lightbulb|person-hiking|handshake
Note: Verify category slugs match your actual slugs in Admin > Categories > [category] > Settings (or from the category URL).