Tags & search
Tags are labels that can be applied to posts to categorise them across spaces. A post can have multiple tags. Tags appear on post cards in the feed and can be used to filter search results.
Managing tags
Section titled “Managing tags”Tags are managed at Admin → Tags. Each tag has:
- Name — required, 1–30 characters. Must be unique.
- Slug — auto-generated from the name. Used in URLs and filter parameters.
- Color — a hex color (
#RRGGBB) used to visually distinguish the tag. Default:#5B4EF5.
Tags can be edited or deleted from the admin panel. Deleting a tag removes it from all posts.
Default tags
Section titled “Default tags”On a fresh install, Nexus seeds seven default tags: announcement, question, tutorial, discussion, feedback, bug, and feature. These can be edited, renamed, or deleted.
Applying tags to posts
Section titled “Applying tags to posts”When composing a post, click the + tags button in the meta row below the title to open the tag picker. Select one or more tags and click Add tags. Selected tags appear as colored pills and can be removed by clicking them.
Following tags
Section titled “Following tags”Members can follow individual tags. When the feed is filtered to Following, posts tagged with followed tags appear alongside posts from followed spaces.
Tags are listed in the feed sidebar ordered by post count descending, then alphabetically.
Search
Section titled “Search”Nexus uses PostgreSQL full-text search (tsvector / websearch_to_tsquery) to search across post titles, post bodies, and reply bodies. Search results include highlighted excerpts showing where the query terms matched.
How it works
Section titled “How it works”Search is accessed from the search bar at the top of the page (or via the search icon on mobile). Results appear as you type, debounced at 300ms.
Queries shorter than 2 characters return no results.
Search supports natural language operators:
| Syntax | Meaning | Example |
|---|---|---|
| Plain words | All terms must match (AND) | elixir phoenix |
"quoted phrase" | Exact phrase match | "forum software" |
word OR word | Either term must match | elixir OR erlang |
-word | Exclude term | elixir -erlang |
Each word is matched as a prefix — searching for elixir also matches elixirs.
If no full-text match is found, Nexus falls back to PostgreSQL trigram similarity (pg_trgm), which tolerates minor typos and misspellings.
What is searched
Section titled “What is searched”- Post titles
- Post bodies
- Reply bodies
Hidden posts and replies are excluded from all search results. Posts in private spaces are excluded for unauthenticated users.
Search filters
Section titled “Search filters”The search page provides the following filters:
| Filter | Options |
|---|---|
| Kind | All, Posts only, Replies only |
| Sort | Relevance (default), Latest, Top (most reactions) |
| Space | Filter to a specific space |
| Tag | Filter to posts with a specific tag |
| Author | Filter by username (case-insensitive, partial match) |
| Date from | Posts/replies on or after this date (ISO format) |
| Date to | Posts/replies on or before this date (ISO format) |
Reply results support pagination — a Load more button appears when further results are available beyond the first page.
Filters can be combined. On mobile, filters are accessible via a collapsible filter bar above the results.
Sort options
Section titled “Sort options”| Sort | Behaviour |
|---|---|
| Relevance | Ranked by ts_rank — PostgreSQL’s scoring function based on term frequency and position |
| Latest | Most recently created first |
| Top | Most reactions first |
Results page size
Section titled “Results page size”Search returns up to 20 posts and 20 replies per page. Cursor-based pagination is used for loading further results.