Product roadmap
May 2026 · CalVer 26.05.xx
Planning view for May 2026 calver (26.05.xx). The copy players see in “What’s New” stays friendly and outcome-led; this page is the engineering and product planning view.
Shipped highlights live in the app under What’s New. When you cut a release, bump the current version and add a release entry there.
v26.05.02
@-mentions in posts and comments
Let people tag friends with @username, resolve links to profiles, and persist mentions so tagged users can find the conversation later.
Mention notifications (email)
Send mention alerts by email with sensible deduping, a clear one-line context, and a link straight to the post or comment.
Post permalinks, single-post page, and share cards
Stable URLs for every post; a dedicated post page with full detail (body, image, attachment, comments); reuse the preview pipeline for social shares on desktop and mobile.
Comment threading on home
Full thread UX: replies under comments, collapsible branches, and inline Reply—aligned with existing depth limits—and optimistic updates that still feel instant.
v26.05.03
Better post card, comment section and post page
Currently the design of the post card, post page and comment thread is not good looking. We need to improve the design (both ui and ux) of these components and pages. On post page make the post wider, and also comment section, currently they have very narrow width. Better reaction bar design (remove user selectable text, because when user holds to react it selects the text), better reactors list and dialog. Make reaction button smaller etc. Fix most of the ui and ux of these sections.
“Following” home feed tab
Add a filter on the home timeline so logged-in users can choose “Everyone” vs “People I follow,” reusing follow relationships already in the product. On following tab, query must have feed=following sync with nuqs.
Pack and topic discussion sections
Surface the same comment system used for posts on published pack and topic pages so communities can discuss sets outside the home feed.
Search posts from home search
Extend the glass search with a dedicated post result type: recent public posts with icons, snippets, and deep links, capped for performance. Posts will be searched by their 'body'.
Bookmark posts
Let logged-in users save posts from the feed to revisit later via a simple list (e.g. profile or settings)—no moderation pipeline required. Bookmarking should be optimistically updated on the ui.
Better profile page
The profile page is getting bigger and bigger. We need to implement tabs for the profile pages of users. Currently on profile page there are - Header (user info, follow/settings buttons), badges section, progress section, my packs section, stats section, published packs section, recent games section and sign out button at the end. Keep the sign out button on all tabs footers (likely in layout) and header, also make the progress section below the header and always visible. Then create badges, stats, packs, and games tabs. Tabs must be synced with query tab=... with nuqs. And most importantly Feed tab (at the first place) where people see user's posts.
Better pack/topic/question pages
Like profile pages, packs/topics/questions pages also need tabs. Keeb the header, main stats and play button. Add analytics and content tab. (content is topics for pack, questions for topic - question itself won't have content), and new tab Discussion which we will implement comments for.
v26.05.04
Host lobby QR code
Show a scannable QR on the host screen that encodes the existing join URL so in-person players can enter without typing the room code.
Remember per-pack default game options
When a host starts a game, offer to reuse their last spoiler mode, topic subset, and related knobs for that pack so repeat nights need fewer taps.
Spoiler settings discoverability
Short in-product explainer for spoiler-aware play: what each mode does, who sees muted buzzers, and when to pick each option.
“Play again” from recap
From the finished-game screen, one control to spin up a fresh lobby with the same pack (and sensible defaults) so groups can chain sessions quickly.
Player presence on the game
Show presence indicator of players for both host and other players. Presence should be updated in real time. Green means the player is currently on the game/website, orange means the player is not on the website.
Reactions on comments
Currently we can react to posts, but not to comments. Just like posts, we should be able to react to comments and replies.
Posts and Comments info on dashboard
Add Posts and Comments sections to /dashboard (/dashboard/posts and /dashboard/comments). Show proper info on columns. Also, add total posts count and total comments count on user table columns (also sorting by these counts).
v26.05.05
Pack tags in the directory
Optional author-defined tags and matching filters on the packs directory so sets are easier to browse without building playlist collections.
Duplicate topic inside a pack
Let authors clone an existing topic (including its five questions) inside the same pack to iterate on themes or language variants faster.
Export pack and topic to files
Download a pack or single topic in formats aligned with import—e.g. CSV, JSON, TXT, and Markdown—using the same validation shape as the import studio.
Profile “draft packs” lane
A compact strip or section on the profile for drafts and in-progress work, jumping straight into edit or publish flows.
v26.05.06
“Dominator” badge
Award when the winner’s score is materially ahead of second place (tune thresholds from real game distributions so it stays rare but achievable).
“Survivor” badge
Award when the winner edges out second place by a very small margin—celebrate clutch finishes without encouraging sandbagging.
Weekly or seasonal leaderboard snapshot
Optional time-boxed ladder (e.g. “this week’s XP”) that resets on a schedule, without erasing lifetime boards.
Badge detail share previews
Improve Open Graph and in-app share for individual badges so clips and group chats show the right art and description.
v26.05.07
In-app notification center
A single inbox for follows, mentions, game outcomes, and product notices; mark read, deep-link to entities, and respect account settings.
Notification preferences
Granular toggles per category (social vs gameplay vs marketing), with a clear “mute all except security” escape hatch.
Mention email quiet hours
Let users pick windows when mention emails are deferred so late-night games don’t wake inboxes—still surfaced in-app immediately.
Grouped in-app notifications
Collapse noisy bursts (several reacts or follows in a row) into one expandable row inside the notification center to keep the feed readable.
v26.05.08
Pack directory advanced filters
Filter and sort published packs by language, difficulty band, minimum topic count, recency, and simple “hide ones I’ve finished” style toggles where data allows.
Host keyboard shortcuts companion
A lightweight cheat sheet (and optional ⌘/Ctrl-? overlay) for hosts in live games: pause, skip, next, buzzer actions—aligned with real bindings.
Multi-select in pack topic list
Select several topics at once for batch delete, reorder shortcuts, or bulk jump into edit—less friction for large packs.
Profile play streaks
Show a compact streak or activity strip from real sessions so regular players get visible momentum without new competitive ladders.
v26.05.09
PWA polish
Install prompt, standalone display mode, and shell caching for static assets so return visits feel app-like on phones.
Feed virtualization
Virtualize long home timelines to keep scroll performance steady on mid-range devices during busy evenings.
Image pipeline for posts
Consistent max dimensions, modern formats where supported, and placeholder blur for post images to reduce layout shift.
Lazy-loaded game UI chunks
Split host-only or analytics-heavy panels into async chunks so joiners on slow networks download a smaller first paint before the room goes busy.
v26.05.10
AI-assisted practice host (experiment)
A clearly labeled opt-in mode where an AI host advances flow, reveals prompts, marks correct or incorrect, skips when allowed, and validates free-text answers with high bar accuracy—only shippable when quality matches human hosting for the supported pack types.
Seasonal spotlights and weekend cups
Time-boxed featured ladders or highlighted pack rows (without full playlist collections) to give the community recurring reasons to gather.
Richer stats dashboard for creators
Authors see return players, completion funnels per topic, and difficulty trends over time on pack and topic analytics pages.
Richer oEmbed and link previews
Improve how external sites and messagers render Xamsa links—packs, games, profiles—with consistent metadata and artwork.
Custom pack cover image
Optional hero art on pack pages (upload + crop) so authors can brand listings and shares without new collection features.
Accessibility pass (WCAG-oriented)
Keyboard paths for feed composer, reactions, and game host controls; focus management in dialogs; contrast fixes in charts.
Support-ready error details
When something fails, offer a copyable bundle (build/version, route, anonymised ids) players can paste to staff—no full session replay required.
Data export for accounts
GDPR-style export: profile, posts, comments, and game history in one downloadable archive.
What’s New RSS feed
A public RSS (or Atom) mirror of release entries so blogs and power users can follow updates outside the app.
Post-deploy smoke checks
Automated probes after release—e.g. can open Play, start a dry lobby, hit auth health—so regressions surface before traffic spikes.
Mobile navigation refinements
Bottom nav or thumb-friendly patterns for feed ↔ play ↔ profile; reduce tap depth to start hosting from home.
Community highlights reel
Surface a curated or algorithmic strip of standout posts, games, or packs on home for logged-out visitors—showcase energy without requiring login.