Features worth knowing about
A closer look at the parts of Nexus that matter most to the people running it.
Live everywhere, including who's typing
Every page in Nexus uses Phoenix Channels over WebSocket. New posts appear in the feed the moment they're created with no refresh needed. Open a thread and new replies appear as they're posted, complete with a live typing indicator that shows when other members are composing a reply.
The same WebSocket connection powers presence tracking. Nexus knows in real time who's viewing a thread, and the Online Now widget in the sidebar reflects live member counts using Phoenix's built-in Presence system, with no polling and no approximations.
Notifications arrive instantly via a dedicated notification channel. When someone mentions you, replies to your post, or triggers any other notification event, it appears in your notification bell without a page reload.
- New posts broadcast live to all feed subscribers
- Typing indicators on every thread:
typing_startandtyping_stopper user - Live reply delivery without polling
- Real-time presence tracking across the forum
- Instant in-app notifications via WebSocket
Multiple layers, all fail-open
Nexus runs every registration through a layered anti-spam pipeline. No single check gates access. All checks fail open, meaning a false positive from one layer doesn't lock a legitimate user out. The combination of layers makes it expensive for spam bots to succeed without inconveniencing real members.
During composition, Nexus can optionally analyse typing signals such as keystrokes, timing, and paste events to detect content that was generated or pasted rather than typed. Posts that fail this check go into a pending approval queue rather than being rejected outright.
- Hidden honeypot field catches automated form submissions
- Disposable email domain blocklist, updated regularly
- Username heuristics flag bot-pattern usernames
- StopForumSpam IP, email, and username lookups with configurable thresholds
- Cloudflare Turnstile CAPTCHA, optional and invisible by default
- Composition analysis covering typing speed, keystroke count, and paste ratio
- 24-hour restriction on new accounts sending direct messages
- One-click mark-as-spammer: bans, deletes all content, revokes sessions
_hp Disposable email Username heuristics StopForumSpam Turnstile CAPTCHA 24hr DM restriction Scheduled summaries that bring members back
Nexus sends scheduled digest emails summarising what's been happening on your forum. Admins configure the delivery frequency, weekly, monthly, or both, and each member sets their own preference from their account settings. Members who prefer not to receive digests can opt out entirely.
Each digest is composed of up to five built-in sections: top posts, leaderboard standings, recently awarded badges, new members, and trending spaces, with configurable ordering. The sections shown and their order are set in Admin → Digest.
Extensions can contribute their own digest sections. A polls extension could include a "most-voted polls this week" section; a games extension could include top-rated games from the period. Each section is toggled independently by the admin.
- Weekly and monthly delivery, with admin configuring which are available
- Per-member frequency preference with opt-out
- Five built-in sections: top posts, leaderboard, badges, new members, spaces
- Admin-configurable section order
- Extension sections supported via the extension API
Installable on any device, with push notifications
Nexus ships as a full progressive web app out of the box. Members can install it to their home screen on iOS and Android, where it runs as a standalone app with no browser chrome. On iOS, a configurable install prompt appears after a set time, guiding members through the installation.
Push notifications work on Android and desktop via the Web Push standard using VAPID keys you generate once from the admin panel. Notifications arrive even when the forum isn't open. iOS push support is handled via the Apple-specific configuration tab in the PWA settings.
Every icon size required by Android and iOS is configurable from Admin → PWA, along with the app name, theme colour, status bar style, and notification badge image.
- Installable on iOS, Android, and desktop browsers
- VAPID push notifications on Android and desktop
- iOS install prompt with configurable delay
- All required icon sizes: 48, 96, 144, 192, 384, 512 px
- Status bar style control for iOS (default, black, black-translucent)
- Notification badge image configurable from the admin panel
Data portability and the right to be forgotten
Members can export all of their personal data at any time from their account settings. The export is a ZIP archive containing everything Nexus holds about them: their profile, every post they've authored, every reply, every direct message they've sent, and every badge they've earned.
Account deletion works on a 30-day grace period. When a member requests deletion, their account is marked as pending and an Oban job is scheduled. They can cancel during that window. After 30 days the account is permanently purged. The email address, bio, avatar, and all active session tokens are deleted.
Admins choose what happens to content when an account is purged. The default is anonymisation: posts and replies remain on the forum attributed to "Deleted User", preserving discussion continuity. Alternatively, admins can configure hard deletion, which cascades and removes all of the user's posts and replies along with the account.
- One-click data export as a ZIP containing profile.json, posts.csv, replies.csv, messages.csv, and badges.csv
- 30-day deletion grace period with cancellation
- On purge, the email address, bio, avatar, sessions, and push subscriptions are all deleted
- Admin-configurable: anonymise content or delete it on purge
profile.jsonposts.csvreplies.csvmessages.csvbadges.csvHierarchical spaces with inherited permissions
Nexus spaces can contain sub-spaces, nested forums that inherit their parent's permission settings by default, with the option to override at any level. An admin can create a General space with a Help sub-space and a Development sub-space, each with different visibility and posting rules, all managed from a single permission hierarchy.
Custom Groups let you segment your membership beyond the built-in role tiers. Create a Supporters group, a Beta Testers group, or any other segment, then use groups as conditions on space access, posting permissions, and extension features. Groups stack with role tiers. A permission can require both a minimum role and group membership, or grant access to either.
- Unlimited nesting depth, spaces within spaces within spaces
- Per-level permission overrides or full inheritance from parent
- Sub-space colors stored independently from parent at creation time
- Custom Groups created and managed from Admin → Groups
- Groups work as conditions on space access, posting, and extension permissions
- Group membership is manageable per-user from the admin panel
Structured questions and a full audit trail
Posts can be designated as Q&A, which changes how replies are presented. Any reply can be marked as the accepted answer by the post author or a moderator, and accepted answers float to the top of the thread. The Q&A post type is suited to help channels, support forums, and knowledge bases where the best answer deserves permanent prominence.
Every edit to a post or reply is versioned. Members and moderators can view the full edit history from the post overflow menu, with word-level diffs showing exactly what changed between each version. Edit history is stored indefinitely and cannot be deleted by the author. Only admins can remove individual versions.
- Q&A post type on any space, toggled per-space from the admin panel
- Accepted answer floats to the top, visually distinguished from replies
- Post author or moderator can mark and unmark the accepted answer
- Every post and reply edit is versioned with author and timestamp
- Word-level diff view with additions and removals highlighted inline
- Edit history visible to all members; version deletion is admin-only
Full-text search that understands natural language
Nexus uses PostgreSQL's websearch_to_tsquery to power forum search. This means members can use natural language operators without knowing any syntax: phrases in quotes match exactly, a minus sign excludes a term, and plain words are joined with implicit AND. The search index covers post titles, bodies, reply content, and space names.
Results are ranked by relevance using PostgreSQL's built-in ts_rank, with the most recent and most engaged posts surfacing first among equally relevant results. Search runs entirely inside your database. No Elasticsearch, no Solr, no separate search service to operate.
- PostgreSQL
websearch_to_tsquery, no search service required - Quoted phrases, minus exclusions, and AND logic all work naturally
- Index covers post titles, bodies, reply content, and space names
- Results ranked by ts_rank with recency and engagement signals
- Space-scoped search, either within a specific space or globally
- Search results update within seconds of a new post being created
Magic links, configurable lockouts, and flexible registration
Nexus supports both password-based login and magic link authentication. Magic links send a one-time sign-in link by email, with no password required and no reset flow to manage. Admins can enable magic links alongside passwords or as the only authentication method.
Direct messaging can be locked out for new accounts for a configurable window after registration: 1 hour, 24 hours, 72 hours, or any custom duration. This reduces spam and grooming risk without restricting any other forum activity. Registration itself is configurable: open, invite-only, or admin-approval required.
- Magic link login via a one-time email link, no password required
- Magic links can replace or supplement password authentication
- Configurable DM lockout window for new accounts, configurable to any duration
- Registration modes: open, invite-only, or admin-approval required
- Cloudflare Turnstile CAPTCHA available on the registration form
- Session management, members can view and revoke all active sessions
Built-in stats with no third-party tracker
Nexus includes an analytics dashboard in the admin panel that covers forum activity over time: post volume, reply volume, new member registrations, active members, space activity breakdowns, and top contributors. All data is derived from your own database. No external tracker, no JavaScript beacon, no third-party data sharing.
The leaderboard scoring pipeline runs on a configurable schedule and computes weekly, monthly, and all-time rankings from weighted activity signals. Admins configure the point values for different actions: posting, replying, and receiving reactions, configurable from the admin panel. The leaderboard is public by default and can be restricted to members.
- Admin analytics dashboard covering post volume, registrations, and active members
- Per-space activity breakdown showing which spaces are most active
- No external tracker. All data comes from your own PostgreSQL database
- Leaderboard scoring pipeline with configurable point weights
- Weekly, monthly, and all-time rankings computed on schedule
- Leaderboard visibility configurable as public or members-only