| Summary | A welcome modal to help new or returning community members with actionable ways to begin exploring/engaging in a forum | |
| Preview | Theme Creator (Requires being logged in) | |
| Repository | GitHub - noahLovell/discourse-welcome-modal | |
| Install Guide | How to install a theme or theme component | |
| New to Discourse Themes? | Beginner’s guide to using Discourse Themes |
Install this theme component
Why use this?
Many communities see high signup rates but struggle with “first-day churn.” By providing actionable paths, you reduce the cognitive load on new members and guide them toward the high-value behaviors that build long-term retention.
Screenshots
Desktop
Mobile
How it works
The modal uses a logic-based rollout so you prevent prompting regular members who are already familiar with your community.
- New Users: Automatically displays to all users who registered after your
feature_enabled_date. - Grace Period: During a configurable window, the component “silently” marks active users as having seen the modal so they aren’t interrupted.
- Legacy Users: Shows to existing users who return to the forum after your grace period has expired, helping re-onboard them.
Note: The “seen” state is stored locally in the user’s browser, so the modal may reappear if they switch devices or clear their cache.
Settings
| Setting | Type | Default | Description |
|---|---|---|---|
feature_enabled_date |
string |
"2026-01-01" |
Enter date in YYYY-MM-DD format. |
grace_period_months |
integer |
3 |
Number of months after feature enable date to silently mark existing users as seen. |
card_layout |
enum |
"grid" |
Choose how cards are displayed in the welcome modal (grid or list). |
card_content |
objects |
[] |
Configure the cards shown in the welcome modal (requires id, title, subtitle, imgUrl, altText, btnLabel, and action). |
title (Translation) |
text |
Join the conversation |
The main heading displayed at the top of the modal. |
close_btn (Translation) |
text |
Done |
The label for the button that dismisses the modal. |
This is my first proper theme component
I’d love feedback, thoughts, things that might have been done better ![]()


