Built for admins

Features worth knowing about

A closer look at the parts of Nexus that matter most to the people running it.

Real-time

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_start and typing_stop per user
  • Live reply delivery without polling
  • Real-time presence tracking across the forum
  • Instant in-app notifications via WebSocket
Channels
PostChannel
Typing indicators & live replies per thread
FeedChannel
Live post broadcasts to global & space feeds
PresenceChannel
Online member tracking, live counts
NotificationChannel
Instant notification delivery per user

Anti-spam

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
Registration pipeline
Honeypot _hp Disposable email Username heuristics StopForumSpam Turnstile CAPTCHA 24hr DM restriction
Composition analysis
Hold for review
Suspicious posts queue for approval, not rejected
Always fail-open
No check hard-blocks a legitimate registration

Digest emails

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
Digest sections
Top posts
Most active discussions from the period
Leaderboard
Top contributors by points
Badges
Recently awarded badges across the community
New members & spaces
Who joined and what's trending

Progressive web app

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
PWA admin tabs
General
Icons
Push notifications
Apple / iOS
Status

GDPR

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
Data export contents
profile.json
Account info, email, bio, join date
posts.csv
Every post with title, space, body, date
replies.csv
Every reply with parent post ID and body
messages.csv
Sent DMs with thread and timestamp
badges.csv
Earned badges with award dates

Sub-spaces

Hierarchical 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
Space structure
General
Top-level space
↳ Announcements
Sub-space, restricted posting
↳ Help
Sub-space, open to all members
↳ Development
Sub-space, groups-gated
Per-level permission override
Or inherit from parent
Custom Groups
Supporters
Grant access to premium spaces
Beta Testers
Gate pre-release features
Staff
Moderator-adjacent with custom permissions

Q&A & edit history

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
Q&A thread
Original question
Posted by member
Accepted answer
Pinned to top, marked by author
Reply
Standard reply below accepted answer
Edit history
Version 3, current
Jun 12 at 14:32 · author
Version 2, word diff
3 additions, 1 removal
Version 1, original
Jun 12 at 14:18 · author

Search

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
Query examples
"elixir phoenix"
Exact phrase match
elixir -rails
Elixir, excluding Rails mentions
install ubuntu OR debian
Either term matches
extension hooks routes
All three terms required
What's indexed
Post titles & bodies
Full content, all spaces
Reply content
Indexed alongside parent post
Space names
Surface relevant spaces in results

Auth & access

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
Authentication methods
Password
Standard email + password login
Magic link
One-time sign-in link by email
Registration pipeline
Open registration
Invite-only
Admin approval required
Cloudflare Turnstile
DM lockout window

Analytics

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
Analytics dashboard
Post volume
Daily and weekly trend over time
New members
Registration rate by period
Active members
Members who posted or replied
Space breakdown
Activity share per space
Leaderboard
Configurable point values
Per action type: post, reply, or reaction
Weekly & monthly resets
All-time ranking always preserved