` and injects a Nudj widget wired to your community. The widget is styled from the [community theme](/enterprise/white-labeling) and respects the embed configuration created in the admin panel.
## Setup
**The page must be served over HTTPS.** The widget signs members in with cookies marked `Secure`, which browsers refuse to set on an `http://` page. On an insecure page the widget still renders, but sign-in silently fails — no error is shown. `http://localhost` counts as secure, so local development is unaffected. Load the page over `http://` and the browser console will warn you.
Open the admin panel's embed customisation panel (PR #1971). Choose the widget layout, theme overrides, and the authentication mode — [OIDC SSO](/enterprise/sso-authentication) or [API Link](/enterprise/api-link-user-authentication) token handoff.
The customisation panel surfaces a ready-to-paste snippet. It looks something like:
```html theme={null}
```
Paste the snippet anywhere on the page. The widget renders into the placeholder div on first paint.
* **OIDC flow** — the user clicks "Sign in" inside the widget and is redirected through your identity provider and back.
* **API Link flow** — your server issues a Nudj token and your page passes it to the widget (see [API Link](/enterprise/api-link-user-authentication) for the protocol).
## CSP allowlist
PR #2333 opened the Nudj user app's CSP `frame-ancestors` directive so the universal embed can render on arbitrary third-party domains without the browser blocking it. This matters because the widget ships as an iframe under the hood — without the CSP change, every new embedding host would have needed a manual allowlist entry.
## When to pick the universal embed
| Your surface | Best fit |
| - | - |
| Shopify storefront | [Shopify storefront widgets](/enterprise/shopify/storefront-widgets) — richer block catalog, theme editor integration |
| Any other ecommerce / CMS / custom site | Universal embed widget (this page) |
| Native mobile app | [Mobile webview](/enterprise/embedding-integration) |
| You host the full user app on your domain | Iframe + CNAME ([white-labeling](/enterprise/white-labeling)) |
## Differences from the Shopify widget
The universal embed and the Shopify theme app extension share the same underlying Nudj user app. What differs:
* **Distribution** — the Shopify widget is a theme app extension merchants add from the theme editor; the universal embed is a script tag you host.
* **Configuration surface** — Shopify widgets are configured per-block in the theme editor; the universal embed is configured once in the admin panel.
* **CSP** — Shopify storefront domains are allowlisted by PR #1638; universal embed uses the wider allowance from PR #2333.
## Next steps
Compare all four embedding modes.
Theme the embedded widget to match your brand.
> Last reviewed: 2026-04 · Related PRs: #1971, #2333, #1638
# Webhook Delivery Logs
Source: https://docs.nudj.cx/enterprise/webhook-logs
Inspect webhook delivery history, retry state, and failure reasons via the Admin API.
Every webhook Nudj dispatches is tracked in the delivery log. Use the log to debug failed deliveries, confirm a specific event reached your endpoint, or audit integration health.
Webhook configs live under `/api/v2/admin/webhooks/configs`. Delivery logs live under `/api/v2/admin/webhooks/logs` — the two endpoints are separate. See the [Admin API reference](/api-reference/admin/get-webhooks-logs) for the canonical request/response schema.
## What gets logged
Every delivery attempt records:
| Field | Meaning |
| - | - |
| `deliveryId` | Unique per delivery, stable across retries — matches `X-Nudj-Delivery-Id` |
| `webhookConfigId` | Which configured endpoint this delivery targets |
| `event` | Event type from the [catalog](/enterprise/webhooks-events-catalog) |
| `url` | Target URL at time of delivery |
| `status` | `pending`, `delivered`, `retrying`, `failed` |
| `attempts` | Number of delivery attempts so far |
| `lastAttemptAt` | Timestamp of the most recent attempt |
| `nextAttemptAt` | Timestamp of the next scheduled attempt (if `retrying`) |
| `responseStatus` | HTTP status code from the last response |
| `responseBody` | Short response excerpt (for diagnostics) |
| `error` | Error message if the request failed before getting a response |
## Listing deliveries
Query the logs via the Admin API — see the [`GET /webhooks/logs`](/api-reference/admin/get-webhooks-logs) reference for the full filter surface. Typical filters:
* By config (`webhookConfigId`) — only this endpoint's deliveries.
* By event (`event`) — only this event type.
* By status (`status`) — e.g. only `failed`.
* By time window (`since`, `until`) — e.g. the last hour.
## Using the log to debug
Take the action that should fire the webhook (complete a challenge, award points, etc.).
Query `/webhooks/logs` filtered by `webhookConfigId` and ordered by `lastAttemptAt desc`. The newest entry is your attempt.
* `delivered` — your endpoint returned 2xx. If your system didn't process it, the issue is on your side.
* `retrying` — the endpoint returned a retryable error. Check `responseStatus` + `responseBody`.
* `failed` — retries exhausted. Check `error` and fix the endpoint before retriggering.
If your endpoint is returning 401 with "invalid signature", confirm you're HMAC-ing the **raw** body — re-serialised JSON produces a different byte sequence. See [Webhook Implementation](/enterprise/webhook-rewards#signature-verification) for a reference implementation.
## Retry policy recap
* `5xx`, timeouts, and connection errors trigger a retry with exponential backoff.
* `2xx` marks the delivery `delivered`.
* `410 Gone` is the documented signal for permanent removal — Nudj honours this so your side can fence off a deprecated endpoint cleanly (PR #2124 shipped this behaviour on Shopify's disabled topics).
* Other `4xx` responses are terminal and do not retry.
## Related pages
The protocol — signing, retries, endpoint examples.
Every event type Nudj emits.
> Last reviewed: 2026-04 · Related API: `GET /api/v2/admin/webhooks/logs`
# Webhook Implementation
Source: https://docs.nudj.cx/enterprise/webhook-rewards
Sign verification, retry semantics, and endpoint examples for Nudj webhooks.
Nudj emits HTTP POST webhooks for domain events your downstream systems care about — reward earned, reward delivered, subscription updates, Shopify-driven achievement triggers, and more. This page covers the protocol — signatures, retries, and endpoint implementation. For the full list of emitted events, see the [events catalog](/enterprise/webhooks-events-catalog). To debug a delivery, see the [delivery logs](/enterprise/webhook-logs) page.
## Configuring a webhook
Webhook configurations are managed via the Admin API under `/api/v2/admin/webhooks/configs`. Each config specifies:
* **`url`** — your endpoint. Must be HTTPS in production.
* **`events`** — list of event types the config subscribes to. See [Webhook Events Catalog](/enterprise/webhooks-events-catalog).
* **`secret`** — used to compute the HMAC signature on each delivery.
* **`active`** — pause or resume deliveries without deleting the config.
Example config:
```json theme={null}
{
"url": "https://your-api.example.com/webhooks/nudj",
"events": ["reward.earned", "reward.delivered", "reward.delivery_failed"],
"secret": "whsec_...",
"active": true
}
```
## Request shape
Every delivery is an HTTP POST with a JSON body:
```json theme={null}
{
"event": "reward.earned",
"timestamp": "2026-04-17T14:30:00.000Z",
"data": {
"reward": { "id": "reward_abc123", "type": "asset", "value": 100, "name": "Weekly Bonus" },
"user": { "id": "user_xyz789", "externalUserId": "customer_456" },
"challenge": { "id": "challenge_def456", "name": "Weekly Shopping Challenge" }
}
}
```
Headers:
* `Content-Type: application/json`
* `X-Nudj-Signature: sha256=
` — HMAC-SHA256 of the raw body, signed with your configured `secret`.
* `X-Nudj-Event` — convenience header mirroring `event` in the payload.
* `X-Nudj-Delivery-Id` — unique per delivery attempt, stable across retries. Use this to idempotency-key your processing.
## Signature verification
Compute HMAC-SHA256 over the **raw** request body using your configured `secret`, then compare against the value after `sha256=` in the `X-Nudj-Signature` header. Use a timing-safe comparison.
```javascript Node.js / Express theme={null}
import express from "express";
import crypto from "crypto";
const app = express();
// Raw body is required for signature verification
app.post(
"/webhooks/nudj",
express.raw({ type: "application/json" }),
(req, res) => {
const signature = (req.headers["x-nudj-signature"] || "").replace(
"sha256=",
""
);
const expected = crypto
.createHmac("sha256", process.env.NUDJ_WEBHOOK_SECRET)
.update(req.body)
.digest("hex");
if (
signature.length !== expected.length ||
!crypto.timingSafeEqual(
Buffer.from(signature, "hex"),
Buffer.from(expected, "hex")
)
) {
return res.status(401).send("invalid signature");
}
const event = JSON.parse(req.body.toString("utf8"));
// process event here, ideally async via a queue
res.status(200).send("ok");
}
);
```
```python Python / Flask theme={null}
from flask import Flask, request, abort
import hmac, hashlib, os
app = Flask(__name__)
@app.post("/webhooks/nudj")
def handle_nudj_webhook():
raw = request.get_data()
signature = request.headers.get("X-Nudj-Signature", "").removeprefix("sha256=")
expected = hmac.new(
os.environ["NUDJ_WEBHOOK_SECRET"].encode(),
raw,
hashlib.sha256,
).hexdigest()
if not hmac.compare_digest(signature, expected):
abort(401)
# process JSON payload (request.get_json() is safe after signature passes)
return ("ok", 200)
```
Verify the signature against the **raw** request body before parsing as JSON. Re-serialising the parsed body will produce a different byte sequence and the HMAC will never match.
## Response and retry semantics
* Respond with `2xx` within 30 seconds to acknowledge receipt.
* Any `5xx` response, connection failure, or timeout triggers a retry.
* Retries use exponential backoff.
* A delivery that fails every retry attempt is marked `failed` in the [delivery logs](/enterprise/webhook-logs).
### Idempotency
Process events idempotently. The `X-Nudj-Delivery-Id` header is stable across retries of the same delivery attempt, and the payload's `data.*.id` fields identify the underlying entity. Storing processed delivery IDs in your side lets you no-op duplicates safely.
## Local development
Use a tunnel such as [ngrok](https://ngrok.com) or [cloudflared](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) to expose your local endpoint:
```bash theme={null}
ngrok http 3000
# paste the HTTPS forwarding URL into your webhook config's `url`
```
## Related pages
Reference of every event type Nudj emits, with example payloads.
Inspect retry state, bodies, and failures via the Admin API.
Higher-level integration patterns for getting rewards to downstream systems.
> Last reviewed: 2026-04
# Webhook Events Catalog
Source: https://docs.nudj.cx/enterprise/webhooks-events-catalog
Reference of event types Nudj emits via outbound webhooks, grouped by domain.
This page enumerates the outbound webhook events Nudj publishes to configured endpoints. For delivery mechanics (signing, retries, example endpoint code) see [Webhook Implementation](/enterprise/webhook-rewards). For delivery history and debugging, see [Webhook Delivery Logs](/enterprise/webhook-logs).
Subscribe to specific events per webhook config — delivering every event to every endpoint burns your endpoint and inflates the delivery logs. The per-config `events` field filters the stream.
## Reward events
The core events most integrations subscribe to.
| Event | When it fires | Typical consumer |
| - | - | - |
| `reward.earned` | User completes a challenge or hits a qualification condition and a reward is credited | Loyalty wallet sync |
| `reward.delivered` | Reward successfully delivered to the user or the downstream system | Confirmation email |
| `reward.delivery_failed` | Delivery failed after retries | Alerting / support tooling |
| `reward.redeemed` | A redeemable reward (discount code, checkout link, etc.) has been consumed | Inventory update |
| `reward.expired` | Time-limited reward expired without redemption | Analytics |
## Engagement events
| Event | When it fires |
| - | - |
| `challenge.started` | User joins / starts a challenge |
| `challenge.completed` | User completes a challenge |
| `action.completed` | User completes a single action (quiz, question, submission, etc.) |
| `achievement.earned` | User hits an achievement (including tiered achievements) |
| `points.awarded` | Points transaction applied (positive or negative) |
## Referral events
The referral distribution events fire when a referee qualifies:
| Event | When it fires |
| - | - |
| `referral.referrer_credited` | Referrer's reward distributed |
| `referral.referee_credited` | Referee's welcome reward distributed |
## Shopify-driven events (inbound bridge)
PR #1780 subscribed Nudj to **16 Shopify webhook topics** that drive internal events. These are consumed inside Nudj's `handle-event.ts` pipeline and typically trigger `achievement.earned` / `points.awarded` outbound webhooks rather than being re-emitted verbatim. See [Shopify Webhook Integration](/enterprise/shopify/webhooks) for the topic list.
If a Shopify topic does pass through verbatim, the outbound event name is prefixed `shopify.` (e.g. `shopify.orders_create`) and the payload includes both the Nudj user context and the raw Shopify event body.
## Payload conventions
Every payload is wrapped in a stable envelope:
```json theme={null}
{
"event": "reward.earned",
"timestamp": "2026-04-17T14:30:00.000Z",
"deliveryId": "del_2f3a...",
"data": {
// event-specific body
}
}
```
* `deliveryId` matches the `X-Nudj-Delivery-Id` header. Use it as your idempotency key.
* Entity IDs inside `data.*` are stable across the lifecycle of the entity.
* Timestamps are ISO-8601 UTC.
## Signing and retries
Every event is signed with HMAC-SHA256 per [Webhook Implementation](/enterprise/webhook-rewards). Delivery retries with exponential backoff on `5xx`, timeouts, and connection errors. Terminal `4xx` responses (other than the documented `410 Gone` — see Shopify-specific webhooks page) are not retried.
## Next steps
Sign verification, retries, sample endpoints.
Inspect delivery history and retry state.
> Last reviewed: 2026-04 · Related PRs: #1780
# Custom Domains and Theming
Source: https://docs.nudj.cx/enterprise/white-labeling
Serve Nudj from your own domain and match the visual identity of your brand via the community theme system.
Nudj's white-label surface is pragmatic: a custom domain for your user-facing URLs and a theme system that matches the look of the embedded experience to your brand.
There is no Nudj-supplied native mobile app published under a customer's developer account. If a conversation with your account manager suggests otherwise, raise it — the platform does not currently ship that product.
## Custom domains
### CNAME setup
Point your chosen subdomain at the Nudj user app via a CNAME record:
```dns theme={null}
engagement.yourcompany.com CNAME your-org.nudj.cx.
```
The admin panel's **Domains** tab tracks verification state; SSL certificates are issued automatically once the CNAME resolves. Full API reference: [Custom Domains](/api-reference/custom-domains).
### Preview link
PR #2575 added a preview link derived from the organisation's white-label config — the Domains page in the admin panel surfaces the link directly so teams can sanity-check branded URLs before announcing a launch.
### Multiple domains per organisation
An organisation can have multiple verified domains — used for regional sites, white-labelled partners, or staging. The Shopify widget preview logic (PR #1899) prefers `customDomains` over the generic `userDomain` so in-merchant admin previews render against the branded URL.
## Theming
### Source of truth
Theme variables live on the `community.theme` object. The admin panel's **Branding & Theming** section is the canonical editor. Theme values cascade from the organisation's default community down to child communities; child communities can override individual variables.
Reference: [Widget Theming System](https://github.com/nudj-digital/nudj/blob/main/docs/widget-theming-system.md) in the engineering repo has the full variable list, data flow, and CSS variable mapping.
### Theme presets
PR #1886 added theme presets — pre-built configurations that ship values for colours, typography, spacing, and component shape. Admins can pick a preset in the Shopify embedded admin and tune individual variables without starting from scratch.
### Where theming applies
| Surface | Theme source |
| - | - |
| Nudj user app on your domain | `community.theme` resolved at page render |
| Shopify storefront widgets | `community.theme` resolved from the widget block config (PR #1646) |
| Universal embed widget | `community.theme` passed through the embed script |
| Email templates | Organisation brand colours + logo |
## What's in scope
* Custom domain with automatic SSL.
* Logo, brand colours, typography, component shape via the theme system.
* Email sender name + reply-to.
* Community-scoped theme overrides for multi-brand organisations.
## What's explicitly not supported
* Native iOS / Android apps published under your Apple Developer or Google Play account.
* Biometric device unlock for Nudj sessions.
* Push notifications sent from a branded mobile app.
* Offline mode or geofenced content gating.
* CDN-level edge customisation beyond what Vercel provides to the Nudj user app.
## Next steps
API reference for programmatic domain management.
If you embed rather than redirect, the theme flows through the embed script.
> Last reviewed: 2026-04 · Related PRs: #2575, #1886, #1646, #1899
# Glossary
Source: https://docs.nudj.cx/getting-started/glossary
Complete dictionary of Nudj platform terminology
Quick reference for all platform-specific terms and concepts.
## A
**Achievement**
: A milestone or accomplishment that users earn through specific actions or reaching certain thresholds. Achievements often come with badges, titles, or special rewards.
**Action**
: An individual task or activity within a challenge. Examples include answering a quiz, sharing content, uploading a photo, or watching a video.
**Action Participation**
: A record of a user completing a specific action within a challenge.
**Admin**
: A user role with permissions to create and manage communities, challenges, and rewards.
**Analytics**
: Data and insights about user engagement, challenge performance, and community health.
**API**
: Application Programming Interface - allows developers to integrate Nudj features into other systems.
**Regular Reward**
: A guaranteed reward that users can redeem using points. Regular rewards have defined quantities and availability.
## B
**Badge**
: A visual achievement indicator displayed on user profiles to showcase accomplishments.
**Bonus Points**
: Additional points awarded for special circumstances like streak maintenance or speed bonuses.
## C
**Campaign**
: A coordinated set of challenges and rewards designed to achieve specific engagement goals.
**Challenge**
: A collection of one or more actions that users complete to earn rewards. Also known as a quest.
**Challenge Group**
: A collection of related challenges organized together for easier navigation.
**Community**
: A branded space where users engage with content, challenges, and each other around shared interests.
**Community Manager**
: An admin responsible for day-to-day community engagement and content creation.
## D
**Dashboard**
: The administrative interface for managing communities, viewing analytics, and creating content.
**Distribution**
: The process of awarding rewards to users, either manually or automatically.
**Draw Date**
: The scheduled date when winners are selected for entry-based rewards.
## E
**Engagement**
: User interaction with platform features including challenge completion, social features, and content consumption.
**Entry (Reward Entry)**
: A chance to win in a prize draw or giveaway. Users can accumulate multiple entries.
**Experience Points (XP)**
: Non-spendable points that accumulate to show user status and determine leaderboard position.
## F
**Feature Flag**
: A toggle that enables or disables specific platform features for testing or gradual rollout.
**Feed**
: The main content stream showing recent challenges, community updates, and social activity.
## G
**Gamification**
: The application of game-design elements (points, levels, competition) to drive engagement.
**Giveaway**
: A reward distribution method where winners are randomly selected from entry holders.
## I
**Integration**
: Connection between Nudj and external systems or platforms.
## L
**Leaderboard**
: A ranking system showing top performers based on XP or other metrics.
**Level**
: A tier or rank achieved by accumulating XP or completing specific requirements.
**Limited Time Challenge**
: A challenge only available for a specific duration.
## M
**Member**
: A user who has joined a specific community.
**Mission**
: A long-term objective composed of multiple challenges or achievements.
**Multi-Action Challenge**
: A challenge requiring completion of multiple different actions.
## O
**OAuth**
: Authorization framework for delegated access; authentication for login flows is typically provided by OpenID Connect (built on OAuth 2.0).
**Organisation**
: The brand or company that owns and manages communities on Nudj.
## P
**Platform Config**
: System-wide settings that affect the entire Nudj installation.
**Points**
: Spendable currency earned by completing challenges and used to redeem rewards.
**Poll**
: An action type where users vote or express preferences.
**Post**
: Content created by admins or users within a community.
**Prize Draw**
: A lottery-style reward where winners are randomly selected.
**Profile**
: A user's personal page showing achievements, statistics, and activity.
## Q
**Quest**
: Another term for challenge, emphasizing the adventure/gaming aspect.
**Quiz**
: An action type where users answer questions to test knowledge.
## R
**Recurring Challenge**
: A challenge that resets periodically (daily, weekly, monthly).
**Redemption**
: The process of exchanging points for regular rewards.
**Reward**
: An incentive users earn through participation, either as an asset or entry.
**Reward Inventory**
: The available stock of regular rewards.
## S
**Social Share**
: An action type requiring users to share content on social media platforms.
**Streak**
: Consecutive days or instances of participation, often with bonus rewards.
**Super Admin**
: The highest admin level with full platform configuration access.
## T
**Tag**
: A label used to categorize and organize content, challenges, or users.
**Team**
: Admin users who collaborate to manage a community or organization.
**Template**
: Pre-built challenge, reward, or community configurations for quick setup.
**Theme**
: Visual customization including colors, fonts, and branding for communities.
**Third-Party Config**
: Settings for external service integrations.
**Tier**
: A level within a progression system, often unlocking new privileges.
**Token**
: Authentication credential for API access.
## U
**Unlock**
: Making a challenge or reward available after meeting certain requirements.
**User**
: Any person with an account on the platform.
**User-Generated Content (UGC)**
: Content created by community members rather than admins.
## V
**Variable**
: Dynamic content that changes based on user or context (e.g., ).
**Verification**
: Process of confirming action completion or user identity.
## W
**Webhook**
: Automated notification sent to external systems when events occur.
**Widget**
: Embeddable Nudj components for external websites.
**Winner**
: User selected to receive an entry-based reward.
## X
**XP (Experience Points)**
: Cumulative points showing user progress and status that cannot be spent.
## Common Abbreviations
| Abbreviation | Full Term |
| - | - |
| **API** | Application Programming Interface |
| **CMS** | Content Management System |
| **CRM** | Customer Relationship Management |
| **KPI** | Key Performance Indicator |
| **OAuth** | OAuth (authorization framework for token-based access) |
| **ROI** | Return on Investment |
| **SSO** | Single Sign-On |
| **UGC** | User-Generated Content |
| **UI** | User Interface |
| **UX** | User Experience |
| **XP** | Experience Points |
## Related Resources
Understand core concepts in detail
Technical terminology and endpoints
Can't find a term? Contact support at [support@nudj.cx](mailto:support@nudj.cx) and we'll add it to the glossary.
# Platform Basics
Source: https://docs.nudj.cx/getting-started/platform-basics
Essential concepts and terminology for understanding the Nudj platform
Understanding these core concepts will help you navigate and utilize the Nudj platform effectively. Think of this as your gamification vocabulary lesson (but way more fun than actual vocabulary lessons). As Aristotle said, "We are what we repeatedly do. Excellence, then, is not an act, but a habit"—and understanding these concepts is the habit that builds platform expertise.
## Core Concepts
## Communities
**What they are**: Branded spaces where users gather around shared interests and your brand
**Key features**:
* Custom branding and themes
* Member management
* Content organization
* Social features
## Challenges
**What they are**: Interactive quests that guide users through engaging activities
**Types**:
* **Single Action**: Simple one-step challenges
* **Multi-Action**: Complex challenges with multiple steps
* **Recurring**: Daily/weekly challenges that reset
* **Limited Time**: Time-bound special events
## Actions
**What they are**: Individual tasks within challenges that users complete
**Common types**:
* **Quiz**: Answer questions to test knowledge
* **Poll**: Share opinions and preferences
* **Social Share**: Amplify content on social media
* **Content View**: Watch videos or read articles
* **Photo Upload**: Share user-generated content
## Rewards
**What they are**: Incentives users earn through participation
**Two types**:
* **Regular Rewards**: Guaranteed rewards users can redeem with points
* **Entries**: Chances to win in prize draws or giveaways
## Currency System
Nudj uses a dual currency system because apparently one type of virtual money isn't confusing enough:
**Spendable Currency** (The fun one)
* Earned through challenge completion
* Used to redeem actual rewards
* Can be transferred or gifted (sharing is caring)
* Balance decreases when spent (just like real money, sadly)
**Status Currency** (The bragging rights one)
* Earned through all platform activities
* Never decreases (your ego protection plan)
* Determines leaderboard position
* Unlocks achievement levels
## User Journey
The typical user progression through the Nudj platform:
```mermaid theme={null}
graph LR
A[Join Community] --> B[Browse Challenges]
B --> C[Complete Actions]
C --> D[Earn Points/XP]
D --> E[Redeem Rewards]
E --> F[Climb Leaderboard]
F --> B
```
## Engagement Mechanics
## Leaderboards
Dynamic rankings that tap into everyone's inner competitor:
* **Global**: Compare with all community members (good luck beating Bob from accounting)
* **Weekly/Monthly**: Time-based competitions (fresh chances to show off)
* **Friend-based**: Compete with connections (friendship destroyer mode)
## Achievements
Milestone-based recognition for your digital accomplishments:
* **Badges**: Visual trophies you can actually show off
* **Titles**: Special designations for top performers
* **Unlocks**: Access to exclusive content (VIP treatment, basically)
## Streaks
Consistency rewards for showing up (revolutionary concept):
* Daily login streaks
* Challenge completion streaks
* Engagement streaks
## Platform Roles
* Joins communities
* Completes challenges
* Earns rewards
* Engages socially
* Creates communities
* Designs challenges
* Manages rewards
* Views analytics
* Platform configuration
* Multi-community management
* Advanced analytics
* User management
* API integration
* Custom features
* Automation setup
* Data access
## Key Terminology
| Term | Definition |
| - | - |
| **Community** | A branded space for user engagement |
| **Challenge** | A collection of actions users complete |
| **Action** | A single task within a challenge |
| **Quest** | Another term for challenge |
| **Regular Reward** | A redeemable item with guaranteed availability |
| **Reward Entry** | A chance to win in a prize draw |
| **Points** | Spendable currency earned through participation |
| **XP** | Experience points that show status and progress |
| **Leaderboard** | Ranking system showing top performers |
| **Achievement** | Recognition for reaching specific milestones |
| **Streak** | Consecutive days/times of participation |
## Platform Navigation
## For Users
1. **Home/Feed**: See latest challenges and community updates
2. **Challenges**: Browse and participate in available challenges
3. **Rewards**: View and redeem available rewards
4. **Leaderboard**: Check rankings and competition
5. **Profile**: Manage settings and view achievements
## For Admins
1. **Dashboard**: Overview of community performance
2. **Community Settings**: Configure branding and features
3. **Challenge Manager**: Create and manage challenges
4. **Reward Center**: Set up and distribute rewards
5. **Analytics**: Track engagement and performance
## Best Practices
* Check daily for new challenges
* Maintain streaks for bonus rewards
* Engage with community features
* Complete multi-action challenges for bigger rewards
* Track progress on leaderboards
* Create varied challenge types
* Balance difficulty and rewards
* Maintain regular content updates
* Monitor analytics for optimization
* Engage with community feedback
## Next Steps
Now that you understand the basics:
Dive deeper into specific features in our [User Guide](/user-guide/introduction)
Learn how to [complete your first challenge](/user-guide/challenges)
Set up your first [community](/admin-guide/community-setup) and [challenges](/admin-guide/challenges/challenge-creation)
# What is Nudj?
Source: https://docs.nudj.cx/getting-started/what-is-nudj
Discover how Nudj transforms customer engagement through gamification and community building
Nudj is a **gamified engagement platform** that turns customers into advocates through challenges, rewards, and community. In the words of Mark Twain, "The man who does not read has no advantage over the man who cannot read"—and the brand that doesn't engage users has no advantage over those that do.
Transform passive customers into active brand advocates through gamification
## The Nudj Experience
A simple engagement loop:
Join [brand communities](/user-guide/communities) aligned with your interests
Complete [challenges](/user-guide/challenges/participation) with actions like quizzes, polls, and shares
Earn Points & XP to climb [leaderboards](/user-guide/leaderboards) and unlock [rewards](/user-guide/rewards)
Redeem points for [rewards](/user-guide/rewards) or enter prize draws
## Why Brands Choose Nudj
## Behavior-Based Engagement
Create meaningful, behavior‑driven interactions that motivate real participation.
## Proven Gamification Framework
Game mechanics that drive engagement:
* **Challenges & Quests** - Structured activities that guide user journeys
* **Points & Progression** - Clear advancement paths that motivate continued participation
* **Leaderboards** - Social competition that drives repeat engagement
* **Achievements** - Recognition systems that celebrate milestones
## Community-First Approach
Build exclusive communities where members can:
* Connect with like-minded individuals
* Share experiences and content
* Participate in brand conversations
* Access exclusive opportunities
## Key Platform Components
Branded spaces where users gather around shared interests
Interactive quests that drive specific behaviors and engagement
Granular tasks within challenges (quizzes, polls, social shares)
Incentives ranging from digital assets to exclusive experiences
## For Brands
* **Marketing Teams**: Run engagement campaigns and drive UGC
* **Community Managers**: Build and nurture brand communities
* **Loyalty Programs**: Gamify existing programs
* **Customer Success**: Boost retention and LTV
## For Users
* **Brand Enthusiasts**: Engage deeper with favorite brands
* **Reward Seekers**: Earn perks and prizes
* **Community Members**: Connect with others
* **Achievement Hunters**: Complete challenges and climb leaderboards
## Platform Capabilities
* Interactive challenge creation
* Multi-action quest builder
* Social sharing integration
* User-generated content campaigns
* Real-time participation tracking
* Points & XP systems
* Dynamic leaderboards
* Achievement badges
* Progression levels
* Streak tracking
* Digital reward distribution
* Prize draw management
* Inventory tracking
* Automated fulfillment
* Entry-based competitions
* Engagement metrics
* User behavior tracking
* Challenge performance
* Community health scores
* ROI measurement
## The Nudj Difference
**Beyond loyalty**: Nudj rewards engagement across social, content, and community—not just purchases.
## Traditional Engagement vs. Nudj
| Traditional | Nudj Platform |
| - | - |
| Transaction-focused | Behavior-focused |
| Points for purchases | Points for engagement |
| Static rewards catalog | Dynamic challenges & rewards |
| Individual actions | Community experiences |
| Periodic engagement | Continuous interaction |
## Getting Started
Get started:
Learn how to set up and manage your Nudj community
Discover how to participate and earn rewards
Make your first API call
Launch your first community without code
Integrate Nudj into your systems
## Next Steps
See [platform basics](/getting-started/platform-basics)
Start with [community setup](/admin-guide/community-setup)
Build your first [challenge](/admin-guide/challenges/challenge-creation)
**Questions?** Check our [FAQs](/user-guide/faqs) or contact support at [support@nudj.cx](mailto:support@nudj.cx)
# Introduction
Source: https://docs.nudj.cx/introduction
The OS for gamified community engagement
# Welcome to Nudj
Nudj is a B2B SaaS platform that turns passive audiences into active, thriving communities. We give you the tools to create branded spaces where your users complete challenges, earn rewards, and compete on leaderboards—all while building a deeper connection with your brand.
## The Nudj Philosophy
Engagement shouldn't feel like a chore. We use **Gamification** to make interaction fun, rewarding, and habitual. Whether you're building a fan community, an employee engagement portal, or a loyalty program, Nudj provides the infrastructure for growth.
### Core Pillars of the Platform
Create beautiful, white-labeled environments that look and feel like your brand. Custom domains, themes, and navigation.
Drive specific behaviors—from social sharing and surveys to product usage and daily check-ins.
Motivate users with Points, XP, Badges, and tangible rewards like Shopify discounts or exclusive merch.
Use Nudj AI to generate content, analyze participation, and automate your community operations.
## Choose Your Path
How you use Nudj depends on your goals. We've structured this documentation to help you get live as quickly as possible.
Learn how to set up your organization, create communities, and launch your first engagement campaign.
Explore our API, set up webhooks, and integrate Nudj directly into your existing app or website.
Deep-dive into SSO, multi-community management, and advanced white-labeling for large-scale deployments.
## Quick Start
Ready to build something? Follow our [Quickstart Guide](/quickstart) to go from zero to your first live challenge in under 10 minutes.
***
**Need help?** Our team is available at [support@nudj.cx](mailto:support@nudj.cx) or through your dedicated Account Manager.
# MCP Server
Source: https://docs.nudj.cx/mcp-server/introduction
The Nudj Model Context Protocol server: tool catalog, transport options, and authentication.
The Nudj MCP Server connects Nudj features to AI agents through the [Model Context Protocol](https://modelcontextprotocol.io/). It runs over Streamable HTTP on port 4010, and exposes a stdio transport for desktop clients.
## Who this is for
* **Admins** using AI agents to run their community — jump to [MCP Admin Setup](/developer/mcp-admin-setup).
* **Developers** wiring Claude Code or a custom client — see [Claude Code Setup](/developer/mcp/claude-code) and [Bearer + Domain Headers](/developer/mcp/bearer-and-domain).
* **Contributors** iterating on the MCP server itself — keep reading.
## Authentication
Every HTTP request to the MCP server requires two headers:
```
Authorization: Bearer
x-api-domain: https://.nudj.cx/api/v2/admin
```
Tokens are minted from **Admin Panel → Settings → Developer → MCP Tokens**, scoped to your RBAC role (Viewer / Moderator / Manager / Admin / SuperAdmin). The MCP server validates the token and enforces that its claimed organisation matches `x-api-domain`. See [Bearer + Domain Headers](/developer/mcp/bearer-and-domain) for full details.
stdio transports (Claude Desktop) use env vars instead of headers.
## Tool catalog
The MCP server exposes a set of tools categorised by concern. Tool availability is further filtered by the `x-agent-mode` header — see [Agent modes](#agent-modes).
### Nudj platform CRUD
Core domain operations that read and write Nudj data.
| Tool | Operations |
| - | - |
| `communities` | CRUD on communities |
| `challenges` | CRUD on challenges (with video metadata) |
| `actions` | CRUD on engagement actions (28+ action types) |
| `achievements` | CRUD on achievements / badges / milestones |
| `rewards` | CRUD on rewards |
| `reward_allocations` | Distribute rewards via challenge, achievement, action, leaderboard, manual, or giveaway |
| `leaderboards` | Manage leaderboard configurations |
| `posts` | Publish and edit admin posts (HTML content) |
| `analytics` | 28 analytics operations across users, communities, challenges, achievements, rewards |
| `theme` | Get / update organisation theme configuration |
### Shopify
Shop-level integration for Shopify-backed organisations.
| Tool | Operations |
| - | - |
| `shopify` | 16 operations: `get_shop`, `list_products`, `get_product`, `list_collections`, `list_orders`, `list_customers`, `get_customer_segments`, `list_discounts`, `analyze_products`, `get_store_health`, `get_discount_conflicts`, `get_widget_settings`, `set_widget_enabled`, `update_widget_theme`, `update_launcher_config`, `update_points_for_spend` |
The Shopify MCP surface includes context injection: the agent starts each session with a pre-fetched snapshot of shop state so it can answer questions without an initial round of API calls.
### Public web & media
Tools that don't require Nudj auth. Useful for research and content generation.
| Tool | Operations |
| - | - |
| `web` | Search the web, scrape page content |
| `social_posts` | Retrieve social media posts |
| `youtube_channel` | Fetch channel info and video lists |
| `youtube_video` | Fetch video metadata and transcripts |
| `image` | Generate, edit, upscale, background-remove, inpaint, outpaint images (FAL.ai + Nano Banana Pro) |
### Docs & events
| Tool | Operations |
| - | - |
| `nudj_docs` | Search the Nudj documentation |
| `watch` | Subscribe to Nudj events and receive real-time updates |
### Voice agent
A realtime voice-agent layer sits on top of the MCP tool catalog. Tool availability is filtered to the same `x-agent-mode` rules; the voice transport itself is a thin shell.
## Agent modes
The server filters tool access based on the `x-agent-mode` header, so you can hand a narrower surface to less-trusted agents:
| Mode | Surface |
| - | - |
| `planner` | Read-only Nudj operations plus public web/media tools |
| `builder` | Full read-write on Nudj resources |
| `service` | Public web and media tools only, no Nudj access |
If `x-agent-mode` is omitted, the server defaults to the broadest surface your token's RBAC role allows.
## Transports
### HTTP (recommended)
Serves MCP over Streamable HTTP. All cloud-hosted clients (Claude Code, Cursor, ChatGPT) use this.
| Environment | URL |
| - | - |
| Production | `https://mcp.nudj.cx/mcp` |
| Development | `https://mcp-dev.nudj.cx/mcp` |
| Local | `http://localhost:4010/mcp` |
### stdio
Used by Claude Desktop and other native desktop clients that spawn the server as a child process. See [MCP Admin Setup](/developer/mcp-admin-setup) for the canonical config.
## Local development
For contributors working on the MCP server itself:
```bash theme={null}
cd apps/mcp-server
NODE_TLS_REJECT_UNAUTHORIZED=0 bun run dev # HTTP on :4010
```
The TLS bypass is needed because the local Nudj API uses a self-signed cert. All three apps (admin, API, MCP) must share the same `NEXTAUTH_SECRET` so tokens validate end-to-end. See [Claude Code Setup](/developer/mcp/claude-code#local-mcp-contributors) for the full local config.
## Related
Admin panel MCP tokens and Claude Desktop stdio config.
Wire up Claude Code with `.mcp.json` for cloud or local.
The canonical auth pattern for HTTP MCP clients.
Diagnose auth, connection, and tool-call issues.
# Quickstart
Source: https://docs.nudj.cx/quickstart
Go from zero to your first live challenge in under 5 minutes
# Quickstart Guide
This guide is designed for speed. We're going to skip the deep theory and get you set up with a branded community and your first engagement challenge right now.
**What we're building**: A "Welcome Challenge" that gives users 100 points for visiting your website.
## The 5-Minute Setup
Sign up at [admin.nudj.cx](https://admin.nudj.cx). Enter your company name and choose your data region (US or EU).
You'll be prompted to create your first space. Give it a name (e.g., "The Insiders") and upload your logo. This is where your users will live.
1. Navigate to **Engagement > Challenges > Create New**.
2. Choose the **"Visit Website"** template.
3. Enter your URL and set the reward to **100 Points**.
4. Click **Publish**.
1. Click **"View Platform"** in the top right.
2. Sign up as a user (use a personal email).
3. Complete your own challenge and see the points hit your wallet!
## Next Steps to Mastery
Now that you've seen the "Happy Path," let's make it look professional.
Remove `nudj.cx` and use your own domain (e.g., `community.yourbrand.com`).
Update your theme colors and fonts to match your brand identity perfectly.
Create something for users to spend their points on (like Shopify discounts).
Ask Nudj AI to generate a month's worth of challenges based on your goals.
***
**Stuck?** Check out our [Troubleshooting Guide](/resources/troubleshooting) or email us at [support@nudj.cx](mailto:support@nudj.cx).
# Platform Troubleshooting Guide
Source: https://docs.nudj.cx/resources/troubleshooting
Resolve common issues with domains, authentication, and API integration
# Platform Troubleshooting
Setting up a community can be complex. This guide helps you decode error messages and fix the most common issues without needing to wait for a support reply.
**Status Check**: Before troubleshooting, visit [status.nudj.cx](https://status.nudj.cx) to ensure the platform is operational.
## Domain & DNS Issues
When setting up a [Custom Domain](/admin-guide/settings/domains), DNS is usually the culprit.
### DNS Error Decoder
If you use a tool like [dnschecker.org](https://dnschecker.org) and see errors, use this table to fix them:
| What you see | What it means | The Fix |
| :- | :- | :- |
| `NXDOMAIN` | The domain doesn't exist. | Check for typos in your subdomain (e.g., `commuity` vs `community`). |
| `A Record` (numbers) | You pointed to an IP address. | Delete the A record. Nudj requires a **CNAME** pointing to `cname.vercel-dns.com`. |
| `Orange Cloud` (Cloudflare) | Your traffic is being proxied. | Go to Cloudflare and click the orange cloud to make it **Gray** (DNS Only). |
| `Old Value` | Your previous host is still active. | You need to wait up to 24 hours for "Propagation," or lower your TTL to 3600. |
***
## Login & Authentication
If users are saying "I can't log in," follow this flowchart to find the cause:
### The "Can't Login" Flowchart
1. **Does the user see an "Invalid Subdomain" error?**
* ✅ **Yes**: They are using the wrong URL. Ensure they are visiting `your-org.nudj.cx` or your custom domain.
* ❌ **No**: Move to step 2.
2. **Does the "Magic Link" email never arrive?**
* ✅ **Yes**: Check your [Email SMTP settings](/admin-guide/settings/email-configuration). If you haven't configured them, Nudj can't send the email.
* ❌ **No**: Move to step 3.
3. **Does the Google/Microsoft login show "App not verified"?**
* ✅ **Yes**: You haven't finished the [Provider Setup](/admin-guide/settings/standard-login-methods). You need to add Nudj's Redirect URI to your Google/Microsoft Developer console.
* ❌ **No**: Move to step 4.
4. **Is the user getting a "403 Forbidden" after logging in?**
* ✅ **Yes**: They are logged in, but they aren't a member of this specific community. Check your **User Access** settings.
***
## System Diagnostics & Logs
If the issues aren't related to setup, you can use our built-in diagnostic tools to find the root cause.
### 1. Run System Diagnostics
Go to **Control Room > Settings > Advanced Troubleshooting > Run Diagnostics**.
This 2-minute check verifies:
* Database connectivity.
* API responsiveness.
* Email delivery status (SMTP).
* Third-party integration health.
### 2. Activity Logs
Nudj maintains detailed logs to help you play detective:
* **User Activity**: When did User X complete Challenge Y?
* **Admin Logs**: Who changed the reward price?
* **API Logs**: (For Developers) See the raw requests and responses.
* **Webhook Delivery Logs**: (For Developers) See every webhook attempt — request body, response status, and a retry button for failed deliveries. See [Delivery Logs & Retries](/developer/webhooks/logs).
### 3. Debug Mode
Enable **Debug Mode** in the Troubleshooting settings for 24 hours to see extra-detailed error messages and performance metrics.
***
## API & Developer Errors
If you're building a custom integration, use these codes to debug your requests.
### Common API Error Codes
* **Cause**: Your API token is missing, expired, or for the wrong organization.
* **Fix**: Generate a new token in **Settings > API Configuration**. Ensure you're sending the header as `x-api-token: YOUR_TOKEN`.
* **Cause**: Your token doesn't have the required "Scope."
* **Fix**: If you're trying to *create* a challenge, ensure your token has `admin` or `write` permissions, not just `read-only`.
* **Cause**: You are calling a resource ID that doesn't exist in your organization.
* **Fix**: Double-check the Challenge ID or Reward ID in your URL.
* **Cause**: You've hit our rate limits (usually 100 req/min for integrations).
* **Fix**: Implement "Exponential Backoff" in your code to slow down your requests.
***
## Challenges & Rewards
### "Why didn't my challenge complete?"
If a user did the task but didn't get points:
1. **Check Action Logic**: Did you require them to answer a quiz *and* watch a video? They must do both.
2. **Verify URL (for Website Visits)**: For "Visit Website" actions, users must stay on the page for at least 5 seconds for the browser to register the completion.
3. **Check Expiry**: Has the challenge date passed?
### "A reward shows as Sold Out but I have inventory"
1. **Check Asset Count**: Go to the Reward editor. If you chose "Unique Codes," you must have codes uploaded in the **Assets** tab.
2. **Check User Limits**: Did you set "Limit 1 per user"? If the user already bought it, it will show as unavailable to them.
***
## Still Stuck?
If you've checked the above and still have issues:
**Email us at [support@nudj.cx](mailto:support@nudj.cx) with:**
1. Your Organization Subdomain.
2. The specific User ID or Challenge ID affected.
3. A screenshot of the error message.
4. (Developers) The `x-request-id` header from our API response. Every Nudj API response includes this header — we trace it directly to the exact request span in BetterStack.
# Checkout & Customer Accounts
Source: https://docs.nudj.cx/shopify/checkout-and-accounts
Let shoppers redeem points at checkout, deliver free-product reward discounts, and add a loyalty block to your storefront and customer account pages.
Beyond your storefront pages, Nudj extends two more Shopify surfaces: the **checkout** and the **customer account** area. Checkout uses Shopify's official checkout UI extensions and discount functions; the account surface is a Nudj theme block you add through the theme editor.
## Redeem points at checkout
Add the **Nudj Redeem Points** block to your checkout so shoppers can spend their points for a discount without leaving the checkout flow. When a signed-in shopper has enough points to redeem, the block shows a slider to apply a points-based discount to their order.
**Requires Shopify Plus.** The redeem-at-checkout block is a Shopify *checkout UI extension*, and Shopify only allows apps to add blocks to checkout on **Shopify Plus** plans. On non-Plus stores the option won't appear in the checkout editor — use the [storefront widgets](/shopify/storefront-widgets) and [customer-account block](#add-a-loyalty-block-to-customer-accounts) to surface redemption instead.
In your Shopify admin, go to **Settings → Checkout**, then **Customize** your checkout.
Add the **Nudj Redeem Points** block where you want it in the checkout layout.
Save the checkout. Shoppers with a redeemable points balance now see the redeem slider at checkout.
Showing the points a shopper will *earn* on an order, and awarding points based on order value, are both part of **Points for Spend**, which is [coming soon](/shopify/points-for-spend). The redeem-at-checkout block above is independent of that and works today — it lets shoppers spend points they already have.
## Free-product rewards
When a reward grants a free product, Nudj delivers it through a Shopify **discount function** that applies at checkout. This needs a one-time setup so Shopify knows to apply it:
In your Shopify admin under **Discounts**, make sure the Nudj free-product discount is active. This lets Nudj grant the configured product for free when a qualifying shopper reaches checkout.
Set up the reward itself in the Nudj app — see [Rewards](/shopify/loyalty-program#rewards). Pick the product the reward grants.
Earn and claim the reward as a test shopper, then check the free product is applied at checkout.
## Add a loyalty block to customer accounts
Nudj ships a **Loyalty Account block** that shows a shopper their points balance, tier, and gamification stats. You add it through the Shopify theme editor — the same way you add the [storefront widgets](/shopify/storefront-widgets) — and place it where your theme supports app blocks, including customer account pages.
In your Shopify admin, go to **Online Store → Themes**, then **Customize**.
Navigate to the page you want it on, select **Add block**, and choose the Nudj **Loyalty Account** block.
Drag it into place and select **Save**.
When a shopper first interacts with Nudj, a short linking flow connects their Shopify customer to their Nudj loyalty profile, so points, rewards, and achievements all line up with the right person.
## See your members
The Nudj app includes a **Members** page — a merchant-facing view of your linked Shopify customers with their loyalty stats (points, tier, recent achievements). Use it to spot your power users or check a specific customer's status.
## You're all set
That's the full setup — install, programme, storefront, and checkout. Head back to the guide to review any step, or see what's [coming soon](/shopify/points-for-spend).
Back to the Shopify guide
The Nudj for Shopify overview, with every section in one place.
> Last reviewed: 2026-06
# Nudj for Shopify
Source: https://docs.nudj.cx/shopify/index
Add a loyalty, rewards, and referral programme to your Shopify store — installed from the App Store, managed inside your Shopify admin, and shown on your storefront.
Nudj turns your Shopify store into a loyalty programme. Shoppers earn points and rewards, climb tiers, complete challenges, and refer friends — and you manage all of it from inside your Shopify admin, with no developer or separate dashboard required.
This guide is for **merchants**. It walks you through installing the app, setting up your programme, and putting it in front of shoppers on your storefront.
Install Nudj from the Shopify App Store and connect it to your store in a few clicks.
Configure points, rewards, achievements, referrals, and promotions from your Shopify admin.
Drop loyalty widgets into your theme with the Shopify theme editor — no code.
Show loyalty at checkout, deliver reward discounts, and add a loyalty hub to customer accounts.
## What you get
Manage your whole programme — points, rewards, achievements, referrals, members — without leaving `admin.shopify.com`.
Add a loyalty button, a Ways to Earn list, and a Refer-a-Friend block to your theme, all styled to match your brand.
Reward shoppers with discount codes, free products, and pre-applied checkout links drawn from your own catalog.
Give existing customers a personal link, reward both sides when a friend converts, and track results in a built-in dashboard.
Looking for the technical integration reference (webhooks, APIs, embedding internals)? See the [Shopify section in the Enterprise tab](/enterprise/shopify/overview).
## A typical setup
Most merchants are live in well under an hour:
1. [Install Nudj](/shopify/install) and let it connect to your store.
2. Work through the [onboarding checklist](/shopify/install#finish-the-onboarding-checklist) — pick a theme, add a reward, add an achievement.
3. [Build out your programme](/shopify/loyalty-program) with the rewards, achievements, and referral settings you want.
4. [Add the widgets](/shopify/storefront-widgets) to your storefront so shoppers can see and use it.
You don't have to finish everything in one sitting. The onboarding checklist remembers what's done and shows you what's left whenever you reopen the app.
> Last reviewed: 2026-06
# Install & Connect Your Store
Source: https://docs.nudj.cx/shopify/install
Install Nudj from the Shopify App Store, approve the permissions, and let it connect to your store so you can start configuring your loyalty programme.
Installing Nudj takes a few clicks from the Shopify App Store. Once it's installed, the app lives inside your Shopify admin and connects itself to your store automatically — there's nothing to copy, paste, or configure by hand.
## Install the app
Find Nudj in the Shopify App Store and select **Install**. You'll be taken to your Shopify admin to continue.
Shopify then shows you the access Nudj needs — for example, reading your products and orders so it can power rewards and track activity. Review the list and select **Install** again to approve it.
Nudj connects to your store and sets itself up in the background. This usually takes a few seconds. When it's done, the Nudj app opens inside your Shopify admin.
Your store is connected to a Nudj **community** — the container that holds your points, rewards, members, and settings. This happens automatically on install; you don't need to create one yourself.
## Where to find Nudj after installing
Nudj runs as an **embedded app** inside your Shopify admin. To open it any time:
1. In your Shopify admin, go to **Apps** in the left sidebar.
2. Select **Nudj**.
Everything in this guide — rewards, achievements, referrals, members — is managed from this embedded app. You never need to log in to a separate dashboard for day-to-day work.
Nudj's embedded admin is optimised for mobile, so you can manage your programme from the Shopify mobile app on your phone, not just on desktop.
## Finish the onboarding checklist
The first thing you'll see after install is a **getting-started checklist**. It's the fastest path from a fresh install to a working programme. Each step is checked against your real settings, so a step only ticks off once it's genuinely done — and it reappears if you later remove the thing it was tracking.
The checklist covers the minimum needed for your storefront widgets and rewards to work:
Verify the store is linked to your Nudj community. This is done for you during install.
Choose a theme preset so the storefront widgets match your brand. You can fine-tune it later.
Turn on the storefront loyalty widget so shoppers can see and use your programme.
Configure a baseline reward shoppers can earn. See [Set up your loyalty programme](/shopify/loyalty-program#rewards).
Add at least one achievement so there's something to earn points for. The [achievement template library](/shopify/loyalty-program#achievements) is the quickest way to do this.
A built-in wizard can walk you through these first steps without leaving the checklist, ticking each item off as you complete it.
## Nudj admin vs. the embedded app
Almost everything a merchant needs lives in the **embedded app inside Shopify**. There's also a full Nudj admin at `admin.nudj.cx` for organisation-level features and advanced settings. Some screens in the Shopify app deep-link you straight into the full admin when you want to go deeper — for example, to tweak an advanced leaderboard or game setting.
## Next step
Next: Set up your loyalty programme
Configure points, rewards, achievements, referrals, and promotions.
> Last reviewed: 2026-06
# Set Up Your Loyalty Programme
Source: https://docs.nudj.cx/shopify/loyalty-program
Configure points, rewards, achievements, referrals, and promotions for your Shopify store — all from the Nudj app inside your Shopify admin.
Your loyalty programme is built from a few simple pieces: shoppers earn **points** by completing **achievements**, then spend them on **rewards**. **Referrals** and **promotions** give you extra levers to drive sign-ups and repeat visits. You configure all of it from the Nudj app inside your Shopify admin.
Want shoppers to earn points automatically based on how much they spend? That's **Points for Spend**, which is [coming soon](/shopify/points-for-spend). Everything else on this page is available today.
## Rewards
A reward is what a shopper redeems their points for. Nudj rewards are backed by your own Shopify store, so what shoppers redeem is a real discount or product in your catalog.
A Shopify discount code is created when the reward is earned, redeemable at checkout.
A ready-to-use checkout link with the discount already applied — the shopper taps it and lands in checkout already discounted.
Grant a specific product for free at checkout. This uses a Shopify discount that you install once — see [Checkout & customer accounts](/shopify/checkout-and-accounts#free-product-rewards).
Pick products from your synced Shopify catalog to back a reward, without leaving the Nudj app.
**To add a reward:**
From the Nudj app in your Shopify admin, go to the **Rewards** page.
Choose the backing type — discount code, checkout link, free product, or a catalog product.
Select the discount, product, or link from your store. Nudj validates the configuration before it saves, so you can't ship a half-configured reward.
Decide how many points the reward costs, then save. It's now redeemable by shoppers.
## Achievements
Achievements are how shoppers earn points — complete an action, earn a reward. The fastest way to populate your programme is the **achievement template library**: pick from pre-built achievements (first purchase, review submitted, social follow, and more) instead of authoring each one from scratch.
Go to the **Achievements** page in the Nudj app.
Pick a template that fits your programme. Templates are pre-configured for direct-to-consumer stores.
Set the points (or reward) the achievement grants, then save. Repeat for three to five achievements to give shoppers a varied set of things to earn.
## Referrals
Referrals let your existing customers bring in new ones. You set what each side gets and what counts as a successful referral.
Find **Referrals** in the Nudj app.
Choose what an existing customer earns when a friend they referred qualifies.
Choose the welcome reward the newly-referred shopper gets.
Decide what a referred shopper must do for the referrer to earn — for example, place their first order.
You get a single referral link to share through any channel, and a built-in **analytics dashboard** showing invites sent, conversion rate, revenue from referred customers, and your top referrers. To put the referral link directly on your storefront, add the [Refer-a-Friend widget](/shopify/storefront-widgets#refer-a-friend).
## Promotions & multipliers
These optional levers add urgency and reward consistency. Configure them from the Nudj app:
Run a time-windowed promotion — for example, 2× points on Fridays or 3× during a sale. The multiplier applies to any points-earning action in the window.
Reward shoppers for repeat engagement — complete an action several days in a row to earn a bonus.
Start from a leaderboard template, then deep-link into the full Nudj admin for advanced tuning.
Configure games like birthday challenges and badge collections from a shared settings screen.
Multipliers don't stack — when more than one is active, the highest one wins for that type of points.
## Next step
Next: Add Nudj to your storefront
Surface the programme to shoppers with theme-editor widgets.
> Last reviewed: 2026-06
# Points for Spend (Coming Soon)
Source: https://docs.nudj.cx/shopify/points-for-spend
Automatically awarding loyalty points based on how much a shopper spends is in development and not yet live. Here is what it will do and what works today.
**Points for Spend is not live yet.** Shoppers do **not** currently earn points automatically based on their order value. Don't promise spend-based earning to your customers until it's released. This page will be updated when it ships.
## What Points for Spend will do
Points for Spend will let shoppers earn loyalty points automatically in proportion to what they spend — place an order, earn points for the value of that order, no manual action needed. It's a standard loyalty mechanic and it's on the roadmap, but it isn't switched on in production today.
## Why it's held back
Spend-based earning depends on order and checkout events flowing from Shopify into Nudj in real time. That event pipeline is temporarily paused while we resolve its running costs. Until it's re-enabled, any "earn points when you spend" behaviour won't fire — so we've kept it out of the live programme rather than advertise something that doesn't work yet.
## What works today instead
You can run a complete loyalty programme right now using the mechanics that are live:
Award points for specific actions — first purchase, review submitted, social follow, and more — from the template library.
Run time-windowed promotions that boost points on any earning action during a sale.
Reward customers for bringing in friends who convert.
Let shoppers redeem points for discounts and free products from your catalog.
Shoppers can already **redeem** points for a discount at checkout today — see [Checkout & customer accounts](/shopify/checkout-and-accounts#redeem-points-at-checkout). What's not live yet is *earning* points from the amount spent.
## Next step
Set up your loyalty programme
Build a full programme with the mechanics that are live today.
> Last reviewed: 2026-06
# Add Nudj to Your Storefront
Source: https://docs.nudj.cx/shopify/storefront-widgets
Use the Shopify theme editor to add Nudj loyalty widgets to your storefront — a loyalty button, a Ways to Earn list, a Refer-a-Friend block, and more. No code required.
Nudj adds to your storefront through Shopify's **theme editor**, the same place you arrange your homepage and product sections. You drop in Nudj widget blocks where you want them, and they're styled to match your brand automatically — no code, no theme files to edit.
## Style your widgets first
Before adding widgets, pick how they look. In the Nudj app's settings you can apply a **theme preset** with one click, or fine-tune the colours and styling. Every widget reads from this shared theme, so you set your branding once and all the widgets follow.
Set your theme in the Nudj app first, then add the widgets. The blocks you place will already match your brand, so there's nothing to restyle block by block.
## Add a widget with the theme editor
In your Shopify admin, go to **Online Store → Themes**, then select **Customize** on your live theme.
Choose where you want the widget, select **Add block** (or **Add section**), and pick the Nudj block you want from the list.
Drag it into place and adjust any block settings shown in the panel. Field names are kept short so they fit the theme editor's settings panel.
Select **Save**. The widget is now live on your storefront.
## The widgets
A floating button anchored to the corner of the screen. Tapping it opens the full loyalty experience — points, challenges, and rewards — in a panel over your storefront.
A lighter version of the loyalty widget for minimal storefronts, including achievements.
A list of the active ways shoppers can earn — your achievements and actions — that you can place on any page.
A block for customer account pages showing the shopper's points balance, tier, and gamification stats.
### Refer-a-Friend
The **Refer-a-Friend** block renders a shopper's personal referral link and a call to action, so they can invite friends straight from your storefront. There's also a **standalone referral widget** if you want referrals to stand out on a specific page. Both work with the referral programme you configure in [Set up your loyalty programme](/shopify/loyalty-program#referrals).
## Remove a widget
To take a widget off your storefront, open the theme editor, select the Nudj block, and **remove** (or hide) it — the same place you added it. The change applies as soon as you save. Repeat for any other blocks you want to take down.
## Next step
Next: Checkout & customer accounts
Let shoppers redeem points at checkout and add a loyalty block to customer accounts.
> Last reviewed: 2026-06
# Achievements
Source: https://docs.nudj.cx/user-guide/achievements
Conditions that unlock badges, rewards, or both
An achievement is a set of conditions attached to a reward. When you satisfy the conditions, the reward is awarded automatically. A badge might be the reward; so might a points bonus, a reward asset, or a giveaway entry.
## How achievements differ from badges
* A **badge** is a visual collectible — an image and a title — that sits in your profile.
* An **achievement** is the underlying mechanism — the conditions that, when met, can unlock a badge (and/or other rewards).
You can think of achievements as the rules and badges as one possible outcome.
## Types of achievements
Communities configure achievements for different tracking behaviours:
* **Milestone** — reach an absolute value (complete 10 challenges, earn 500 XP).
* **Tiered** — multiple tiers on the same metric (bronze / silver / gold for completing 10 / 50 / 100).
* **Event-based** — participate in a specific event during its window.
* **Referral** — hits when a referred user joins (see [Referrals](/user-guide/referrals)).
## Achievement conditions
Each achievement exposes a human-readable **condition description** — "Complete 10 challenges in this community" rather than internal IDs. The condition shows on the achievement page and inside any wizard that embeds the achievement.
## Achievements as challenge actions
A challenge can embed an achievement as one of its actions. When you open the action in the wizard, you see the achievement's panel — its conditions, your progress, and the reward. Completing the achievement's conditions (inside or outside the wizard) satisfies the action.
## Tiered achievement UI
Tiered achievements show each tier alongside your progress through them. As you satisfy a tier, its reward is distributed and the next tier becomes the current target.
## Viewing your achievements
From the profile or wallet, open the **Achievements** section to see:
* Your unlocked achievements.
* Featured / in-progress achievements the community has highlighted.
* Historic results for past event-based achievements.
## Related
Visual collectibles as achievement rewards.
Achievements embedded inside challenges.
Seeing achievement events.
# Activity feed
Source: https://docs.nudj.cx/user-guide/activity-feed
Timeline of your achievements, rewards, and community activity
The activity feed is a timeline of events tied to your account in a community — achievements unlocked, rewards earned, challenges completed, posts interacted with. It's separate from the wallet (which is your current state) and from the community feed (which is what the community publishes).
## What appears
Depending on community configuration, your feed may include:
* **Achievement unlocks** — with the achievement title and any reward granted.
* **Reward earnings** — individual asset grants with their source.
* **Challenge completions** — with the total points / XP earned.
* **Game completions** — score, outcome, and rewards.
* **Post interactions** — likes and comments you've made.
## Item types
Each feed item renders with an icon, title, brief context, and timestamp. Achievement and reward items include dedicated components that show the relevant artwork (badge, reward card).
## Templating
Some items render rich templating — for example, "You completed and earned points". Templated items compile on the client, so the filled-in version is what you see.
## Limitations
* The feed is personal — you see your own activity, not other members'.
* Item formatting depends on the community's language and theme configuration.
## Related
Your current balances.
What populates achievement entries.
Post interactions shown here.
# Anonymous accounts
Source: https://docs.nudj.cx/user-guide/anonymous-accounts
Browsing and earning as a guest, then converting to a full account
If your community supports it, you can start using it immediately as a guest — no email required. An anonymous account tracks your progress so that when you eventually sign in, everything you've earned converts to your signed-in account.
## What guests can do
By default, guests can:
* Browse the community and its content.
* Open challenges and complete actions (if the community allows guest participation).
* Earn points, XP, and reward assets.
* View their wallet (see exception below).
## What guests can't do
Some actions always require a signed-in account:
* **Liking and commenting on posts** — tapping the like or comment button opens a login modal.
* **Redeeming rewards that require a verified identity** — for physical prizes or email-delivered codes.
* **Features the community gates behind sign-in** — configurable per community.
## Wallet access for guests
By default, guests can view the wallet so they can see what they've earned. If the community enables **anonymous conversion enforcement**, guests are redirected to sign-in before the wallet loads.
## Conversion to a full account
When you're ready to convert your guest account:
1. Tap **Sign in** (or any action that triggers the login modal).
2. Enter your email and complete the OTP flow.
3. Your guest data — points, XP, assets, challenge progress — is carried over to your signed-in account automatically.
Conversion is one-way. Once a guest account is converted, it becomes a regular signed-in account.
## Middleware behaviour
Behind the scenes, middleware tracks your guest identity via a session cookie. If the cookie is cleared, the guest account is no longer accessible — sign in promptly to preserve earned progress.
## When to sign in
Sign in as early as you're comfortable. The earlier you sign in:
* The less risk of losing progress to a cleared cookie.
* The more features you unlock (likes, comments, notifications).
## Related
The OTP flow.
Common account questions.
# Challenges
Source: https://docs.nudj.cx/user-guide/challenges
Structured activities you complete to earn points, XP, and rewards
A challenge is a structured activity made up of one or more **actions**. Completing actions earns points, XP, and sometimes reward assets. Challenges live inside a community — each community designs its own.
## The big picture
* [**Types**](/user-guide/challenges/types) — one-off, repeatable, scheduled, journeys, stamp cards, and how they differ.
* [**Actions**](/user-guide/challenges/actions) — the individual steps inside a challenge (multiple-choice, image upload, external link, YouTube, achievements, and more).
* [**Action wizard**](/user-guide/challenges/action-wizard) — the step-by-step flow you go through to complete a challenge.
* [**Participation**](/user-guide/challenges/participation) — starting, progressing, skipping, and abandoning challenges.
* [**Recap**](/user-guide/challenges/recap) — the complete screen that confirms your rewards at the end.
## Finding challenges
Challenges appear in several places:
* **In-progress challenges** sit near the top of the community page so you can resume where you left off.
* **Upcoming challenges** are shown in carousels or grids (depending on the community's layout).
* **Direct links and deep links** drop you straight into a specific challenge.
* **The action wizard** auto-advances to the next challenge when you finish one, if the community has "suggest next challenge" enabled.
## What you earn
Each action and each challenge can distribute points, XP, reward assets, or entries into giveaways. The amounts show on the challenge card and in the action wizard before you start.
If your community has **points multipliers** active from a Points Boost effect (for example from an XP Multiplier reward you've redeemed), the earned amount is boosted automatically for the duration of the effect.
## Achievements
Some challenges use achievements as embedded actions — when you complete the challenge you also unlock the achievement. See [Achievements](/user-guide/achievements).
## Related
How earning rolls up into points, XP, and assets.
A different way to earn.
Where your earnings land.
# Action wizard
Source: https://docs.nudj.cx/user-guide/challenges/action-wizard
The step-by-step flow you use to complete a challenge
The action wizard is the UI you move through while completing a challenge's actions. It opens as a modal over the current page via Next.js intercepted routes — closing the wizard returns you to where you were, without a full page reload.
## Opening the wizard
Tap **Start** on a challenge detail page or the in-progress card on the community home. The wizard takes over the screen.
## Inside the wizard
* **Progress indicator** — a bar or step dots show how far through the actions you are.
* **Action content** — the current action's prompt, input, and (optionally) rich-text description.
* **Next / Submit** — advances to the next action when you've completed the current one.
* **Skip** — when the challenge allows it, skips the current action (may forfeit that action's reward).
* **Close** — exits the wizard, saves progress.
## Transitions
Transitions between actions are animated (fade / slide) so it's clear an action has been completed.
## Action types inside the wizard
The wizard renders the input appropriate to the current action: a multiple-choice selector, a text field, a file uploader, a YouTube player, an embedded post, or an achievement panel. Each action type's specific behaviours are covered in [Action types](/user-guide/challenges/actions).
## Completion timer
Some actions (like, comment, external-link with wait) include a completion timer — the **Next** button becomes available only after the required wait elapses, preventing instant-click progression.
## Hints and help
When an action is configured with hints, you'll see an optional hint toggle. Tapping it reveals the hint without consuming the action.
## Correct-answer handling
For question actions with enforced correctness, the wizard keeps you on the action until you choose a correct answer. Incorrect answers may show feedback; the behaviour (count attempts, partial credit) is configurable.
## Next challenge suggestion
When you finish the final action, the wizard transitions to the recap screen. If the community has the feature enabled, the recap offers a suggested next challenge — starting it continues the wizard experience on the new challenge.
## Closing mid-way
Closing the wizard saves state: reopening the same challenge resumes where you left off. For repeatable challenges, each start is a fresh attempt.
## Related
What actions exist.
The wider participation flow.
The completion screen.
# Action Types
Source: https://docs.nudj.cx/user-guide/challenges/actions
The individual steps inside a challenge
Actions are the steps you complete inside a challenge. Each challenge has one or more actions, and each action can award points, XP, and reward allocations on completion.
Action types vary by community configuration. Common types you'll encounter:
## Question actions
* **Single-answer multiple choice** — pick one answer. Correct / incorrect may affect whether you earn the action's reward.
* **Multi-answer multiple choice** — select the right set of answers, with configurable minimum and maximum selections.
* **Rating** — tap a scale (stars, emoji, 1-10) to indicate your rating.
* **Select from a range** — pick a value inside a continuous or stepped range.
* **Short / long text** — type a free-form response.
* **Question vote** — tap a choice and see the aggregate community response in real time after voting.
## Media actions
* **Image upload** — upload a photo. Actions can require a minimum file size, specific aspect ratio, or content-criteria messages (for example, "must include the product").
* **YouTube video** — watch a YouTube video embedded in the action. The iframe height adapts dynamically based on the video's aspect.
* **Rich-text description** — some actions include rich-text instructions with images, headings, and links before the input.
## Link and social actions
* **External link** — tap through to an external URL. Some external-link actions include a required **wait time** before the action can be marked complete, and attach nonce / metadata so admins can verify the click.
* **Subscribe / follow** — prompts you to follow the community's channel on TikTok, Facebook, YouTube, Instagram, or similar, then mark the action complete.
* **Like / comment on a post** — performs the interaction against a community post. If the action has a **completion timer**, the action doesn't mark complete until the timer elapses (prevents instant-click spam).
## Structured platform actions
* **Achievement** — an embedded achievement panel inside the wizard. Completing the achievement conditions (in or out of the wizard) unlocks the action.
* **Streak contribution** — contribute to a community streak.
* **Post like / comment inside wizard** — like or comment without leaving the wizard.
## Action-level rewards
Individual actions can carry their own rewards in addition to the challenge's overall reward. When you finish an action, any action-level reward is awarded before you move on.
## Hints and help
Some actions include hints that appear if you pause or after a wrong answer. Hints are configured per-action by the admin.
## Skipping and correct-answer handling
Some challenges allow you to skip actions (with or without a penalty). When the community enforces correct answers, incorrect responses may block progress until the right answer is chosen.
## Rich-text descriptions
Action descriptions support rich text — headings, bold, lists, inline images, and links. Use them to read the full brief before answering.
## Related
How you move through actions.
Achievements as actions.
# Participation
Source: https://docs.nudj.cx/user-guide/challenges/participation
Starting, progressing through, and finishing a challenge
## Starting a challenge
You can open a challenge from:
* A card on the community home.
* The challenges tab / list.
* A direct or deep link (for example a link shared in email or the widget).
The first time you open a challenge, you see the challenge detail page with a summary, description, action list, and expected rewards. Tap **Start** to enter the action wizard.
## The action wizard
The action wizard is a full-screen step-by-step flow. It loads over the current page as an intercepted modal route — so closing it returns you to where you were. See [Action wizard](/user-guide/challenges/action-wizard) for the full flow.
Inside the wizard you:
1. See the current action with its input type (question, upload, rating, etc.).
2. Enter your response or complete the action.
3. Tap **Next** (or equivalent) to move to the next action.
4. Repeat until all actions are complete.
## Progress indicators
* The challenge card on the community page reflects completed actions as you progress — partial progress is visible without opening the challenge.
* Inside the wizard, a progress bar or step dots show how many actions remain.
## Skipping
If a challenge allows skipping, you'll see a **Skip** option in the wizard. Skipped actions may forfeit that action's reward but typically don't block the challenge from completing.
## Correct-answer enforcement
For question actions with enforced correctness, the wizard keeps you on the action until you choose a correct answer. Some configurations cap attempts or award partial points.
## Completing a challenge
When the final action is done, you land on the recap screen. See [Recap](/user-guide/challenges/recap).
## Next challenge suggestion
If the community has the feature enabled, the recap screen offers a suggested next challenge you can start without returning to the list.
## Leaving mid-challenge
You can close the wizard at any time. In-progress state is saved — reopening the challenge resumes where you left off. Repeatable challenges start a fresh attempt each time.
## Scheduled challenges
If a challenge is scheduled, you can only enter the wizard during its active window. Outside the window you see a preview or coming-soon state. Admins previewing scheduled challenges can access the wizard for testing via a preview mode.
## Related
Deep dive on the wizard.
What the completion screen shows.
# Challenge Recap
Source: https://docs.nudj.cx/user-guide/challenges/recap
The screen you see after completing a challenge
When you finish the last action in a challenge, the recap (Challenge Complete) screen opens. This is where your earnings are confirmed and where the next step is offered.
## What it shows
* **Points earned** for the challenge, itemised by action if applicable.
* **XP earned**, with a tap-to-continue animation on the XP earn step so you can acknowledge the progression.
* **Reward assets** granted — the assets are already in your wallet by the time you see the screen.
* **Giveaway entries** you've been entered into.
## Multi-step complete
The recap is presented as a multi-step screen (Challenge Complete V2) on most communities: tap through points, then XP, then rewards. Some communities use an immersive / themed variant that carries the challenge's colours and imagery through to the complete screen.
## Next challenge
If the community has "suggest next challenge" enabled, the recap offers a carousel of follow-up challenges you can start without going back to the list.
## Repeatable challenge results
For repeatable challenges, the recap shows this attempt's result alongside a summary of previous attempts. The challenge detail page includes a dedicated results view for repeatable history.
## Game complete
Games use a similar completion flow — the game-complete screen presents score / outcome and any rewards awarded, then feeds into the same rewards pipeline as challenges. See [Games overview](/user-guide/games/overview).
## If something looks wrong
Rewards are granted at the time you complete the challenge. If the recap shows a reward but you don't see it in your wallet, refresh the Wallet. If it's still missing, contact your community admin.
## Related
Where your earnings show up.
How to use your rewards.
# Challenge Types
Source: https://docs.nudj.cx/user-guide/challenges/types
The flavours of challenges you'll encounter
Challenges differ in how often you can complete them, when they're available, and how they're grouped. This page covers the behaviours you'll actually see — not every community uses all of them.
## One-off vs repeatable
* **One-off** challenges can be completed once per member. After completion they move to the completed state and don't appear in the active list.
* **Repeatable** challenges can be completed multiple times. They can repeat on a schedule (every day, every week) or after a cooldown. Completed repeats are tracked separately and shown in a repeatable history carousel on the challenge detail page.
## Scheduled challenges
A scheduled challenge has explicit start and end times. Before it starts, you may see a preview or coming-soon state. After it ends, it disappears from active lists. Admins can also schedule challenges to auto-invalidate pending rewards when the end date passes.
## Challenge groups and journeys
Admins can bundle related challenges into **groups** or **journeys**. Groups display multiple challenges together, sometimes with a shared theme or reward track. Journeys enforce an order — you finish one challenge to unlock the next.
## Stamp cards and Lite journeys
Some communities use **stamp card** or **Lite journey** presentations — a visual track where each completed challenge stamps a card. Progress is displayed as a filled-in card rather than a percentage bar. These are driven by the same underlying challenge data, just with an alternative visual.
## Locked challenges
A challenge may be locked until you:
* Complete a prerequisite challenge.
* Reach a minimum XP level.
* Meet a custom community condition (for example, a tier requirement).
Tap the lock on the challenge card to see the specific unlock criteria.
## Challenge variants in the UI
Regardless of type, challenge detail pages come in two styles:
* **Default** — a standard detail layout.
* **Modern / parallax** — an immersive scrolling hero layout used when the community opts in.
The type of the challenge doesn't change which layout is used; that's a community-wide theme choice.
## Related
What happens when you start one.
The completion screen.
# Communities
Source: https://docs.nudj.cx/user-guide/communities
Branded member spaces where you join, participate, and earn
A community is the top-level space you join. Each community is run by an organisation, has its own branding and rules, and contains its own challenges, rewards, posts, and leaderboards.
## Joining a community
Depending on how the community is configured, you may:
* **Join instantly** — open communities accept anyone.
* **Request to join** — an admin approves you before you get in.
* **Enter an access code** — invite codes can be single-use, time-bound, or limited by uses.
* **Enter a password** — community-wide password gate.
* **Confirm you meet age or custom-field requirements** — some communities collect additional profile data (email, phone, postcode, etc.) on join.
**Community rules acceptance.** Some communities require you to tick a checkbox accepting their rules before you can participate. If rules change, you'll be prompted again on your next visit.
## Navigating a community
The community page is your home inside a community. Depending on configuration, it may include:
* A banner with community branding, logo, social links, and a call-to-action.
* An **info modal / Learn More** — tap the info icon to see the full community description and rules.
* Cards for active challenges, achievements, rewards, and posts.
* A floating navigation button (FOB) or bottom nav with quick access to challenges, wallet, games, streak, leaderboard, shop, and referrals.
* Optional custom tabs configured by the admin (linking to external pages or embedded content).
The exact layout is controlled by the community's layout version — some communities use a vertical variant, others use the default horizontal layout.
## Posts
Communities can publish posts (text + media) that appear in-feed. You can like and comment on posts. Some posts require you to be signed in — anonymous users are prompted to sign in when they tap like or comment. See [Posts](/user-guide/posts) for details.
## Member interaction
* **Suggested communities** help you discover more communities from the same organisation.
* **Sharing** — many surfaces support the native OS share sheet (on mobile) or a link-copy fallback (on desktop).
## Social links
The community banner may expose the brand's external links — website, Facebook, Instagram, X, YouTube, TikTok, Discord, WhatsApp, Telegram, WeChat, and others. The logo may deep-link to a brand URL if configured, otherwise it takes you to the community home.
## Access control
* **Anonymous / guest** users can browse most content but get a sign-in prompt when they attempt to like, comment, claim rewards, or open restricted surfaces. See [Anonymous accounts](/user-guide/anonymous-accounts).
* **Restricted communities** may hide content entirely until you join, request access, or meet age requirements.
## Related
OTP, magic links, and anonymous accounts.
Participate and earn.
Common questions.
# Creator Hub
Source: https://docs.nudj.cx/user-guide/creator-hub
A streamlined challenge-first variant of the main app
Creator Hub is a parallel surface of the main user app at the `/creator` path. It's a darker, challenge-first variant of the standard community experience — the same underlying data, a different presentation.
If your community's configuration or a campaign link lands you on a `/creator` URL, you're in Creator Hub. Otherwise, you'll use the default main app.
## What's different
* A compact, dark-themed visual presentation.
* A home experience weighted toward in-progress and upcoming challenges.
* The same authentication, wallet, rewards, and challenge actions as the main app.
## What's the same
The core features — challenge actions, completion flow, wallet, rewards, XP, points, leaderboards, badges, achievements — are shared with the main app. Anything documented in the rest of this guide applies to Creator Hub as well unless it's specific to a surface Creator Hub doesn't include.
Most modern features (parallax detail pages, floating menu, immersive challenge complete, widget system) are now part of the main app. If you're deciding which surface to point your community at, Creator Hub is typically used for narrow challenge-focused campaigns; the main app is the default for everything else.
# FAQs
Source: https://docs.nudj.cx/user-guide/faqs
Common questions from community members
## Points, XP, and leaderboards
**Points** (sometimes called Coins in your community's theme) are a spendable currency — you use them to redeem rewards. **XP** is a permanent score — it doesn't go down, and it determines your rank on the leaderboard. Not every community enables points; XP is usually always on when gamification is on.
Most transactions are instant. If your balance hasn't updated after refreshing the Wallet, give it a few minutes and try again. If it's still wrong after 15 minutes, contact your community admin or support.
It depends on the leaderboard. Daily, weekly, and monthly leaderboards reset at midnight in the organisation's timezone; all-time leaderboards never reset. Scheduled leaderboards have their own start and end dates.
## Signing in
Enter your email and you'll receive a one-time passcode (OTP). Enter the passcode to finish signing in. If the OTP doesn't arrive, you can request a new one after the resend timer counts down. See [Signing in](/user-guide/signing-in).
Yes — if your community allows it, you can use anonymous / guest access. You'll be prompted to sign in when you try to like, comment, or perform other restricted actions. When you do sign in, any points and assets you've earned as a guest are carried over. See [Anonymous accounts](/user-guide/anonymous-accounts).
Yes — from your profile, tap Edit. Some communities throttle changes (for example, once every 30 days).
## Challenges and participation
The challenge may require a prerequisite challenge to be completed, a minimum XP level, or a community-specific unlock condition. Tap the lock icon to see what's required.
Repeatable challenges can be done multiple times (daily, weekly, or within configurable windows). One-off challenges can only be completed once. The challenge card shows its repeat behaviour.
Check the file size and format limits shown on the action. If you're on mobile, make sure your browser has camera and photo-library permissions.
## Games
Games are configured per community. If the admin has published at least one playable game, you'll see a Games tab in the community navigation. See [Games overview](/user-guide/games/overview).
Yes. Games use the same rewards pipeline as challenges — thresholds or outcomes trigger distributions of points, XP, and reward assets straight to your wallet.
## Rewards and redemption
* **Digital codes** appear on-screen after redemption and can usually be copied to your clipboard.
* **Physical items** are handled by the community admin — check the reward description for delivery times.
* **Giveaway entries** mean you're entered into a draw; you're notified when the draw runs.
Some rewards are time-limited — once granted, you have a set window to redeem before they expire. The timer on the asset shows remaining time. See [Redemption expiry](/user-guide/rewards/redemption-expiry).
Most point redemptions are final because assets are issued immediately. For mistakes on physical-item orders, contact support with your order ID.
## Notifications and settings
Yes. Open your profile settings and go to the Notifications tab — you can toggle each notification type. See [Notification preferences](/user-guide/profile/notifications).
If the community has multiple languages configured, you'll see a language switcher in the profile drawer. Your choice is saved to your account.
## Privacy
Nudj does not sell your data. We share only what's needed for your community admin to grant points, award rewards, and deliver prizes. See the community's legal policies for full details.
***
## Still need help?
Technical bugs or account issues.
Questions about specific rewards or community rules — message the admin in the community feed.
Include your **username** and **community name** when emailing support — it speeds things up.
# Basketball
Source: https://docs.nudj.cx/user-guide/games/basketball
3D physics-based basketball shooting game
Basketball is a 3D physics-based shooting game. Aim, time your release, and sink shots through the hoop. Your score feeds the rewards pipeline at the end of the game.
## Playing
* Aim using touch / mouse input.
* Release to shoot; the physics simulation handles trajectory and collision.
* Keep scoring within the level's time or shot limits.
## Physics and audio
Basketball uses a real-time 3D physics simulation — ball trajectory, spin, and bounce are simulated each frame. Audio cues accompany shots, bounces, and scores.
## Levels
Each level can configure hoop position, court environment, shot count, and time limits.
## Rewards
Score thresholds trigger reward distributions — points, XP, assets. The distribution configuration is per community and per level.
## Related
Context on games.
Another timing game.
Another score-based game.
# Catch
Source: https://docs.nudj.cx/user-guide/games/catch
Catch positive items, avoid negative ones
Catch is a score-based game where items fall from the top of the screen. Move the catcher to collect positive items and avoid negative ones. Your score rewards you at the end.
## Playing
* Move the catcher horizontally by touching / dragging on mobile or using keyboard / mouse on desktop.
* Catch positive items to earn points in the game.
* Miss negative items.
* The game ends when the level timer expires or completion criteria are met.
## Levels
Each level has a configured item set (positive and negative), spawn rates, and a time limit. Reach a per-level target to clear the level; miss it and the level may end in game-over.
## Scoring and supply
Catch includes a **supply floor guard** — the game ensures enough positive items spawn over the course of a level so you always have a chance to hit the target. You can't be shut out by a pure run of negative items.
## Rewards
Catch is score-based; distributions are configured against score thresholds. Passing the thresholds awards points, XP, and reward assets as configured.
## Related
Context on games.
Timing-based alternative.
Where rewards land.
# Flick
Source: https://docs.nudj.cx/user-guide/games/flick
Timing-based flick game
Flick is a timing-based game. You interact by flicking items on the screen — timing and accuracy contribute to your score.
## Playing
* On **touch devices**, flick the item using a swipe gesture.
* On **desktop**, use the mouse to click-and-drag. Flick runs with dedicated desktop input handling so it's playable outside mobile.
## Scoring
Flick is score-based. Higher scores trigger configured reward distributions — typically a minimum-score threshold unlocks a baseline distribution, and additional thresholds unlock better ones.
## Levels
Each Flick game can have multiple levels, each with its own image set and difficulty. You progress through levels as you reach level completion criteria.
## Rewards
When a qualifying threshold is met, the game triggers rewards:
* Points and XP are awarded and land in your wallet.
* Reward assets (gift codes, vouchers, etc.) are allocated if the distribution includes them.
* Giveaway entries may be granted.
## Performance
Flick includes performance optimisations for low-frame-rate devices — on slower devices, the game adjusts frame pacing to stay responsive.
## Related
Context on games.
How rewards land.
Your earnings.
# Games
Source: https://docs.nudj.cx/user-guide/games/overview
Mini-games that earn into the same rewards pipeline as challenges
Games are standalone mini-games that communities can offer alongside challenges. They live in a separate app (the **Games tab**) and distribute rewards into your wallet via the same pipeline as challenges — points, XP, reward assets, and giveaway entries.
Whether you see a Games tab depends on whether your community has published at least one playable game. Communities without configured games hide the tab.
## Shipped games
The platform currently ships these games:
* [**Flick**](/user-guide/games/flick) — timing-based flick game.
* [**Catch**](/user-guide/games/catch) — catch positive items, avoid negative ones.
* [**Basketball**](/user-guide/games/basketball) — 3D physics-based shooting game.
Memory (matching pairs) and Scratch (reveal-based) are additional game types the platform supports under the hood, and may appear in specific communities that have them configured.
## Distribution types
Games distribute rewards two ways:
* **Score-based** — Flick, Catch, Basketball, Memory. Your final score triggers distributions based on configured thresholds (min / max score ranges) or continuous score-to-reward conversion.
* **Outcome-based** — Scratch. The outcome revealed by the scratch determines which distribution triggers.
## Game complete flow
When a game ends, the game-complete screen shows your score or outcome, itemises any distributions triggered, and updates your wallet. The flow mirrors the challenge recap.
## Game configuration
Each game has its own level configs, difficulty, visual / audio settings, and rewards configuration — decided by the community admin. Two communities running the same game may present different levels and rewards.
## Accessing a game
From the Games tab in community navigation, tap a game. You'll be taken to the game's own screen — some games run in the main user app, others in the dedicated games app depending on configuration.
## Related
Where game rewards land.
Games alongside challenges.
Parallel challenge completion flow.
# User Guide
Source: https://docs.nudj.cx/user-guide/introduction
How to get the most out of your Nudj community as a member
This tab covers the member-facing experience: joining communities, participating in challenges, earning points and XP, redeeming rewards, playing games, and managing your wallet.
**Your community may look different.** Many features are toggled per community by the admin — points, games, streaks, leaderboards, widget placement, and theme. If a section of this guide describes a feature you don't see, your community may not have it enabled.
## Where to start
Sign in, join a community, and find your way around.
How actions, completion, and rewards work.
Points, XP, badges, reward assets, and redemption.
The embeddable loyalty widget you may see inside a brand's store.
## Theming
Communities customise colours, fonts, border radius, layout variants, and widget styling. The information in this guide describes the default product behaviour — the labels and icons you see in your community may be branded differently.
# Leaderboards
Source: https://docs.nudj.cx/user-guide/leaderboards
See where you rank against other members
A leaderboard ranks members of a community by a metric — typically XP — over a specified window. Leaderboards are automated: nothing for you to join, nothing to opt in to. Your rank updates as you earn.
## Types
See [Leaderboard Types](/user-guide/leaderboards/types). The common windows are daily, weekly, monthly, and all-time, plus scheduled leaderboards with explicit start/end dates.
## Prizes
Many leaderboards have **prizes** tied to placement — the top N members at the end of the window may be awarded rewards automatically. See [Rewards & recognition](/user-guide/leaderboards/rewards-recognition).
## Scheduled leaderboards
A leaderboard can have a start and end date. Before the start, the leaderboard may display a **coming soon** page with the start time. At the end, winners are finalised and prizes distributed; a historical snapshot may remain visible.
## Time-left indicator
For time-bound leaderboards, a countdown indicates how long until the current window closes.
## Reading your rank
Leaderboards show your rank in a highlighted row so you can find yourself in a long list. The rank reflects the XP you've earned inside the window's timeframe.
## Related
Time windows and variants.
Prize distribution.
The ranking metric.
# Rewards & Recognition
Source: https://docs.nudj.cx/user-guide/leaderboards/rewards-recognition
Prizes attached to leaderboard finishes
A leaderboard can have **prize distributions** attached that award reward assets, points, XP, or giveaway entries to the top-placing members when the window closes.
## How distribution works
When the leaderboard window ends, the top N placements — the count and which placements are configured by the community — are resolved and the configured rewards are distributed automatically to those members' wallets. You don't need to claim a prize; it lands in your wallet when the window ends.
## Prize validation
Prize reward configs are validated up-front so an admin can't attach an invalid reward to a leaderboard. If a reward becomes unavailable before distribution, the fallback behaviour is configured per community.
## Time-left indicator
On time-bound leaderboards with prizes, a countdown shows how long until the window closes — so you know how much time remains to improve your placement.
## Where to see past winners
Leaderboards typically keep a snapshot of past windows (for example, last week's or last month's winners). Some communities surface these prominently as an "All-time hall of fame" style view.
## Related
Window configurations.
Where prizes arrive.
The ranking metric.
# Leaderboard Types
Source: https://docs.nudj.cx/user-guide/leaderboards/types
Windows and variants
A leaderboard can be configured with a **window** that defines the timeframe it counts XP over. Common types:
## Daily
Counts XP earned since midnight in the organisation's timezone. Resets each day.
## Weekly
Counts XP earned since the start of the ISO week in the organisation's timezone. Resets each week.
## Monthly
Counts XP earned since the start of the calendar month in the organisation's timezone. Resets each month.
## All-time
Counts every XP point you've ever earned in this community. Never resets.
## Scheduled
A one-off leaderboard with explicit start and end dates. Before the start it shows a coming-soon state with a countdown; after the end it finalises winners and archives.
## What happens at reset
At the end of a daily / weekly / monthly window, the leaderboard rolls over. If prizes are attached, they're distributed automatically to the top-placing members when the window closes. Your all-time XP is unaffected by the rollover.
## Which communities show which
Communities pick which leaderboard windows to surface. Some show only all-time; others show multiple tabs (daily / weekly / monthly / all-time). Your community's leaderboard screen will only show the windows it has configured.
## Related
Back to the landing page.
Prizes.
# Posts
Source: https://docs.nudj.cx/user-guide/posts
Community feed posts: likes, comments, and shares
Posts are community-published content — text, images, and videos — that members can like, comment on, and share. Some posts are also used as challenge actions (like-a-post, comment-on-a-post).
## Post detail
Opening a post takes you to its detail view with:
* A banner image (when provided).
* Title and body.
* Like and comment counts.
* Comment thread with any existing comments.
* Share button.
## Liking
Tap the heart / like icon to like a post. Likes are **optimistic** — the count updates immediately even before the server confirms — and unlike follows the same pattern.
If you're a guest, tapping like prompts you to sign in via the login modal. See [Anonymous accounts](/user-guide/anonymous-accounts).
## Commenting
Tap the comment icon to open the comment input. You can reply with text, and existing comments are shown under the post. Like with liking, guests are prompted to sign in before posting.
## Sharing
The share button opens the **native OS share sheet** on mobile — you can send the post to any app installed on your device. On desktop (or where the share sheet isn't available), the button falls back to copying the post link to the clipboard.
**Double-submit prevention** is built in: repeatedly tapping the share button won't trigger multiple shares.
## Like / comment completion timer
Some challenge actions like "like this post" or "comment on this post" have a **completion timer** — the action doesn't tick complete until a few seconds after the interaction. This prevents instant-tap farming and is shown as a brief progress state in the action wizard.
## Posts inside the action wizard
When a challenge has a like-a-post or comment-on-a-post action, the post renders inside the wizard so you don't have to leave the flow. The interaction counts against the post's like / comment state the same way.
## Related
Post interactions in your activity.
Posts as challenge actions.
Why guests hit a sign-in prompt.
# Notification preferences
Source: https://docs.nudj.cx/user-guide/profile/notifications
Choose which notifications you receive
The Notifications tab in your profile settings lets you toggle which notifications you receive from a community. Notifications typically arrive via email; some communities may also support in-app notifications.
## Where to find it
1. Open your profile.
2. Select the **Notifications** tab.
The tab lists each notification type the community has enabled, with a toggle per type.
## Notification types
Each community decides which notifications are enabled. Common categories include:
* Challenge reminders.
* Reward availability or allocation.
* Redemption expiry warnings.
* Streak reminders.
* Leaderboard updates.
* Achievement unlocks.
* Admin / community announcements.
The exact labels depend on the community's configuration.
## Opting out
Toggle off any notification you don't want. Your preference is saved to your account and applies across future notifications of that type. You can re-enable at any time.
## Transactional vs marketing
Some notifications are **transactional** — for example, a receipt when you redeem a reward. Transactional notifications can't always be disabled because they're part of the core product flow. If a toggle is missing, it's because the notification is transactional.
## Language
Notifications honour your language preference when the community has translations configured for that notification type.
## Related
Other profile settings.
What expiry warnings announce.
Streak reminders.
# Profile & Settings
Source: https://docs.nudj.cx/user-guide/profile/overview
Your personal settings: username, language, avatar, notifications
Your profile is where personal settings live. Some settings are account-level (apply across every community you've joined); others are community-specific.
## What you can change
* **Username** — your displayed name in the community. Some communities have a cooldown on changes.
* **Avatar** — your profile picture.
* **Language** — if the community has multiple languages configured, pick which one you want to see.
* **Email** — the email on file (visible after sign-in).
* **Notifications** — toggle which notifications you receive. See [Notifications](/user-guide/profile/notifications).
## Opening your profile
From the main nav, tap your avatar. Depending on community layout you'll see a drawer, a side panel, or a dedicated profile page. Sidebar profile edits sync immediately to the profile drawer so you don't need to refresh.
## Language
Language switching is available when the community has enabled multiple languages. Your choice persists to your account — switching communities keeps your language preference unless the new community doesn't support it.
## Tabs
Profile pages are typically split into tabs: overview, notifications, and (when applicable) preferences. The tabs you see depend on your community's configuration.
## Related
Email preferences.
Account authentication.
Community-level settings.
# Referrals
Source: https://docs.nudj.cx/user-guide/referrals
Refer a friend and both of you get rewarded
When a community enables refer-a-friend, you can share a personal referral link with someone. If they sign up and join the community via your link, the community's **referral achievement** fires — distributing rewards to both the referrer (you) and the referee (your friend).
## Where referrals live
Several surfaces:
* **Referral drawer** — a drawer on the main app (mobile-optimised) where you see your referral link, share it, and track referrals.
* **Refer-a-friend widget card** — a widget section that exposes the same functionality inside embedded widgets.
* **Referral sidebar** — a simplified sidebar variant on some layouts.
## How it works
1. Open the referral surface in your community.
2. Copy your referral link or tap **Share** to send it through your OS share sheet.
3. When your friend signs up via the link, the referral achievement fires.
4. Both your accounts receive the configured rewards.
## Reward configuration
Each community configures:
* The reward for the referrer (points, XP, assets, or a combination).
* The reward for the referee (points, XP, assets, or a combination).
* Whether referrals have a daily / monthly cap.
## Visibility flags
* The referral entry in your navigation may be hidden if the community has referrals disabled.
* Coin / point visibility in the referral drawer respects the community's PointsSystem flag — if points are off, the drawer won't mention point rewards.
## Referral achievement
Referrals are backed by an achievement under the hood. Because the achievement is the plumbing, you won't see the referral achievement in your regular achievements list — it's managed by the community's referral config and only surfaces through the referral UI.
## Related
The backing mechanism.
Where your rewards arrive.
Referrals inside the widget.
# Rewards
Source: https://docs.nudj.cx/user-guide/rewards
Points, XP, reward assets, badges, and achievements
"Rewards" is an umbrella term. Inside that umbrella there are several distinct concepts:
* **Points** — a spendable currency (sometimes called Coins).
* **XP** — a permanent progression score.
* **Reward assets** — items you earn or buy (gift codes, vouchers, products, multipliers).
* **Giveaway entries** — entries into a draw for a prize.
* **Badges** — visual milestones awarded by completing achievements.
* **Achievements** — conditions that unlock badges, rewards, or both.
## Sections in this guide
What points are and how they behave.
How XP and levelling work.
Assets vs entries, digital vs physical.
How you come by rewards.
How to use what you've earned.
The countdown on some assets.
Featured rewards with extra visual treatment.
Visual achievement collection.
Reward both sides of a referral.
## What your community has
Many of these are feature-flagged per community. Points may be off in some communities (in which case the Coins section hides everywhere). Achievements or referrals may not be surfaced if the community doesn't use them. The rest of this tab is organised so you can read only what applies.
# Badges
Source: https://docs.nudj.cx/user-guide/rewards/badges
Visual collectibles awarded for achievements and milestones
Badges are visual collectibles — a small image and title — awarded when you satisfy the conditions of an achievement or complete a milestone event. Unlike reward assets, badges aren't spent or redeemed; they sit in your profile as a display.
## Earning badges
Badges are unlocked by:
* Completing an **achievement** that has a badge as its reward.
* Admin-granted events (for example, "Early Adopter" badges handed out manually).
When you unlock a badge you typically see a celebratory modal with the badge artwork and title.
## Viewing your badges
From the wallet or profile, open the **Badges** section. You'll see:
* A carousel of your earned badges.
* A grid or list of badges available to earn (progress shown where configured).
* A detail view for each badge with its description and when you earned it.
## Missed Out vs Sold Out
Some badges are time-bound. After the window closes, the badge card switches to a **Missed Out** state — no longer earnable. This is the same underlying state used for expired rewards, just styled for badges.
## Translations
Badge titles and descriptions support translations — your view depends on the language set for the community and your user preference.
## Related
The conditions behind badges.
Where badges display.
# Earning Rewards
Source: https://docs.nudj.cx/user-guide/rewards/earning
Where points, XP, and assets come from
There are several earning surfaces in the platform. All of them feed the same wallet.
## Challenges and actions
The main source. Each action inside a challenge has its own optional point / XP / reward allocation. Completing the final action of a challenge can also trigger a challenge-level distribution. See [Challenges](/user-guide/challenges).
## Games
Games use the same rewards pipeline. Depending on the game configuration:
* **Score-based** games (Memory, Catch, Flick, Basketball) distribute based on thresholds (minimum / maximum score ranges) or continuous score-to-reward conversion.
* **Outcome-based** games (Scratch) distribute based on which outcome is revealed.
When a game ends, the game-complete screen shows the distribution and the assets land in your wallet. See [Games](/user-guide/games/overview).
## Streaks
If streaks are configured, maintaining a streak can award points and/or XP on the configured interval. Completing a streak sub-goal may grant an additional reward. See [Streaks](/user-guide/streaks).
## Achievements
Achievements can unlock a reward asset or badge when their conditions are satisfied — for example, completing a target number of challenges, hitting an XP milestone, or participating in a specific event. See [Achievements](/user-guide/achievements).
## Referrals
A successful referral can distribute rewards to both the referrer and the referee. The exact split is configured per community. See [Referrals](/user-guide/referrals).
## Admin grants
Admins can manually grant points, XP, or reward assets (for example, as a correction or as a campaign perk). These appear in your wallet the same as any other earning.
## Multipliers and boosts
When you have an active XP Boost or Points Boost effect (from a redeemed multiplier reward or an admin grant), new earnings are multiplied for the duration. Only the highest active multiplier per type counts.
## Related
What points do.
What XP does.
Spending what you've earned.
# Points
Source: https://docs.nudj.cx/user-guide/rewards/points
The spendable currency in a community
Points are the spendable currency in a Nudj community. You earn them from challenges, actions, games, streaks, and referrals; you spend them in the shop on reward assets; they persist across sessions but are per-community (not shared across communities).
Your community may label points as **Coins** instead — it's the same thing, renamed via the theme. When the points system is disabled at a community level, points are hidden everywhere (wallet, home, widget, rewards).
## Earning points
Points come from:
* **Completing challenges and actions** — each action and challenge can configure a point payout.
* **Games** — score and outcome thresholds can distribute points.
* **Streaks** — extending a streak can award points on the configured interval.
* **Referrals** — both referrer and referee can be awarded points on a successful referral.
* **Admin-granted bonuses** — admins can manually grant points.
## Spending points
You spend points in the community's **shop** (or from inside the wallet, depending on configuration) to redeem:
* Reward assets — gift codes, vouchers, merch, and similar.
* Giveaway entries — entries into draws.
* Multipliers — e.g. an XP Multiplier or Points Multiplier that boosts future earnings.
When you redeem, the points are deducted and the asset lands in your wallet.
## Where your balance shows
* The wallet shows your full balance at the top.
* Home and widget surfaces show the balance inline when points are enabled.
* In the floating navigation button, the points entry is visible only when the community has points enabled.
## Multipliers and effects
When you've redeemed a **Points Multiplier** (or been granted a Points Boost effect by an admin), your earnings are boosted for the duration of the effect. The boost applies automatically to new earnings from challenges, actions, games, and achievements. Multiple effects don't stack — the highest active multiplier wins. Expired effects are cleaned up the next time you earn.
## Rounding
Point values are rounded consistently when they're awarded and displayed — the amount in the wallet equals the amount shown on the award screen.
## Related
Everywhere points come from.
Spending your balance.
Earning points via referrals.
# Redeeming
Source: https://docs.nudj.cx/user-guide/rewards/redeeming
Spending points and using reward assets
Redemption is the point where a reward asset converts into something usable — a code, a physical item on its way, or an effect applied to your account.
## Buying assets with points
If your community has a shop (or reward section with spendable items), you buy assets with points:
1. Open the shop / rewards list from the navigation.
2. Tap a reward to see its details, cost, and availability.
3. For free-quantity rewards, pick how many you want.
4. Tap **Redeem** (or similar) to spend points. The asset lands in your wallet.
## Using an asset
Once an asset is in your wallet:
1. Open the wallet and find the asset.
2. Tap it to open its detail view with the code, voucher, or instructions.
3. Digital codes are revealed on-screen; barcodes are rendered as UPC-A if the reward supports it.
4. Mark it as used (some redemption types are auto-marked; others you check in manually).
## Redemption expiry
Some rewards are time-limited — after you're granted the asset you have a fixed window to redeem. A countdown timer shows on the asset. See [Redemption expiry](/user-guide/rewards/redemption-expiry).
## Winning a giveaway
If you won a giveaway entry, the entry moves from "Unchecked" to "Won" in the wallet. The claim flow depends on the prize type — a digital prize appears as an asset; a physical prize may require you to confirm delivery details.
## Filtering and sorting
The wallet and shop both support filtering and sorting — by type, status, date, or cost — useful when you've accumulated a lot of items.
## Free vs paid
* **Free rewards** are awarded automatically when conditions are met (challenge completion, achievement, etc.).
* **Paid rewards** require a points redemption to obtain.
## Scheduled reward ends
If a reward was scheduled (start / end dates) and its end passes, any pending purchases or unredeemed assets may be invalidated automatically. You'll see a "Missed Out" state on the card after the window closes.
## Related
Assets vs entries.
Where assets live.
Timed redemptions.
# Redemption expiry
Source: https://docs.nudj.cx/user-guide/rewards/redemption-expiry
The countdown on time-limited reward assets
Some reward assets are time-limited: once you're granted the asset, you have a fixed window to redeem it before it expires. The timer on the asset shows how long you have left.
## How it behaves
* The timer starts when the asset is **allocated** to you (not when the reward was first created).
* When it reaches zero, the asset transitions to **Expired** and can't be redeemed.
* Expired assets remain visible in your wallet for reference.
## Where it shows
* On the asset card in the wallet.
* On the asset detail page.
* Optionally on the spotlight / featured card when the reward carries an expiry.
## Allocation without redemption
If a reward was allocated to you but the community allows immediate use (no sign-in required to claim), the expiry timer starts at allocation. You don't need to log in or refresh — the clock is already counting.
## What to do
Redeem sooner rather than later. If you can't redeem in time, the asset expires and the points (if spent) are not refunded — check the community's redemption policy if you think something went wrong.
## Related
How to redeem.
Where timers render.
Asset vs entry.
# Spotlight rewards
Source: https://docs.nudj.cx/user-guide/rewards/spotlight
Featured rewards with extra visual treatment
Spotlight is a display treatment that promotes specific rewards. A spotlight reward has the same underlying mechanics as any other reward — it's just presented with additional visual emphasis on the community home, in reward lists, and in the widget.
## Where spotlight appears
* **Community home** — a spotlight panel or banner highlights the featured reward.
* **Reward card** — the card is styled with an extra overlay / badge so it stands out.
* **Wallet** — if you've already earned a spotlight reward, its asset keeps the spotlight treatment in the wallet.
* **Widget** — widgets with the spotlight section enabled show the featured reward prominently at the top.
## Time-limited spotlights
Spotlight rewards are often tied to a schedule — a window during which the reward is promoted. When the window ends, the reward either unschedules (remains available without the spotlight) or becomes a "Missed Out" card, depending on the reward's schedule configuration.
## Related
The underlying reward mechanics.
Spotlight inside the widget.
Claiming a spotlight reward.
# Reward Types
Source: https://docs.nudj.cx/user-guide/rewards/types
Assets vs entries, digital vs physical, and special types
"Reward" on this platform has two main forms:
* **Reward assets** — items you own: gift codes, vouchers, products, multipliers. You either earn them (from a challenge, action, or game) or buy them with points.
* **Giveaway entries** — entries into a draw. If your entry wins, you're awarded a prize.
Both live in your wallet.
## Reward assets
Assets can be:
* **Digital codes** — revealed on-screen when you redeem and usually copied automatically to your clipboard. Some codes include a **UPC-A barcode** for in-store scanning.
* **Physical items** — shipped or collected via your community admin.
* **Multipliers** — redeeming grants an effect (XP Boost or Points Boost) for a configured duration.
* **Vouchers / links** — redemption produces a link or voucher code.
Assets are sometimes issued as **grouped allocations** — a single event grants you multiple identical assets that show up as a single stacked entry in the wallet, expanding on tap.
## Reward cards
Reward cards appear on the community home, in the shop, and in the widget. They come in a few variants (depending on the community theme):
* Standard card with title, image, and cost.
* 4:3 aspect ratio variant used in some communities.
* Expanded card with description and full details.
Reward cards display several states:
* **Available** — in stock and affordable.
* **Out of stock** — supply exhausted (Shopify-backed rewards can hide stock entirely).
* **Scheduled** — not yet available, with a countdown to start.
* **Missed Out** — the reward window has ended; you can no longer redeem.
* **Locked** — unlock conditions not yet met (level, achievement, or admin gating).
## Giveaway entries
Entries are "tickets" into a draw. A draw has a target number of winners and an end date. When the draw runs:
* Unchecked entries appear in the **Prize Entries** section of your wallet.
* Tap the entry to reveal whether you won.
* Winning entries can trigger claim actions (e.g. confirm address for physical prizes).
## Achievements as rewards
Some achievements grant reward assets when their conditions are met. See [Achievements](/user-guide/achievements).
## Related
Turning assets into real things.
Where assets live.
Featured reward treatment.
# XP
Source: https://docs.nudj.cx/user-guide/rewards/xp
Experience points: a permanent progression score
XP (Experience Points) is a permanent score that tracks your engagement in a community. Unlike points, XP is not spent — it only goes up, and it feeds things like leaderboard rank, levels, and progression displays.
## Earning XP
XP comes from the same sources as points — challenges, actions, games, streaks, referrals — but each source has its own XP payout independent of its points payout. You can earn just points, just XP, or both per action.
## Levels and progression
If your community uses a level configuration, your XP determines your current level. Progression may be linear (each level requires the same XP) or curved (each level requires more). The level is usually displayed near your avatar or in the profile.
## XP on leaderboards
Most leaderboards rank by XP. Filtered leaderboards (daily, weekly, monthly) only count XP earned inside that window; all-time leaderboards count all XP.
## XP Multiplier (Boost) effect
Redeeming an **XP Multiplier** reward (or being granted an XP Boost by an admin) boosts the XP you earn for a configured duration. The multiplier is applied automatically to new earnings — no action on your part. The highest active multiplier wins when multiple are in play, and expired ones are cleaned up the next time you earn XP.
## Where XP shows
* On the **floating navigation button** as a progress bar toward the next level.
* On the **community home** or profile drawer, with the current level beside it.
* On **leaderboards** as the ranking metric.
## Feature flags
XP is shown behind a gamification feature flag. Communities that have gamification disabled may hide the XP surface entirely. Communities that use XP as their only progression metric may hide the points balance instead.
## Related
Where XP ranks you.
Sources of XP.
Keep XP flowing daily.
# Signing in
Source: https://docs.nudj.cx/user-guide/signing-in
OTP passcode, anonymous browsing, and sign-in flows
Nudj uses one-time passcode (OTP) email authentication. Older installations may still show a magic-link flow, but new sign-in uses the passcode flow by default.
## The OTP flow
1. Enter your email on the sign-in screen.
2. Check your inbox — a short numeric passcode arrives.
3. Enter the passcode in the sign-in drawer.
4. You're signed in.
**Email scanner detection.** Some corporate email services scan links before delivery, which can consume a one-use passcode. If your login appears to "expire" immediately, request a new code — the system detects scanner-consumed passcodes and lets you retry cleanly.
## Resend timer
There's a short cooldown before you can request a new passcode. The resend timer persists if you navigate back to the email step, so you don't lose progress in a confusing way.
## Mobile keyboard handling
On mobile, the sign-in drawer positions itself so the on-screen keyboard doesn't cover the input. Tap the email or passcode field and the drawer adjusts automatically.
## Email validation
Common typos (missing `@`, invalid domain) are caught before the passcode is sent, so you don't burn attempts on a typo.
## Anonymous / guest sign-in
Some communities allow you to enter as a guest without providing an email. When supported, the sign-in modal shows a **Continue as guest** option. Guests get restricted access — see [Anonymous accounts](/user-guide/anonymous-accounts).
## Third-party login methods
Communities can enable additional login methods (social, enterprise SSO, API link). If configured, these appear in the sign-in drawer alongside email. When you land on a guarded action (like, comment, redeem), the login modal shows the configured options.
## Login modal triggers
You're shown the login modal when:
* You open a restricted page while not signed in.
* You tap a guarded action as a guest (like, comment, redeem, claim).
* Your session expires.
## Signing out
From the profile drawer, tap **Sign out**. Your session is cleared and you're returned to the sign-in screen or the guest view, depending on community configuration.
## Related
Guest access + conversion.
Joining after sign-in.
Common sign-in questions.
# Streaks
Source: https://docs.nudj.cx/user-guide/streaks
Maintain a daily habit and earn streak-based rewards
A streak measures consecutive activity in a community. Complete a qualifying action within the streak window (typically one per day) to extend your streak; miss a window and the streak resets.
## How streaks form
Each community defines:
* What **qualifies** as a streak-contributing action.
* The **window** — usually a day in the organisation's timezone.
* The **reset behaviour** — missing a window resets to 0.
* Any **rewards** tied to streak milestones.
The exact configuration varies per community, but the user-facing concept is the same: do the thing today, keep the streak going.
## Streak card
When streaks are enabled, your community typically surfaces a **streak card** showing:
* Your current streak length.
* The days of the current period as a row of status dots (completed / missed / pending).
* A countdown to the end of the current window so you know how long you have to extend.
* The next reward you'll unlock by continuing.
## Extending a streak
Complete any qualifying action in the current window (for example, finishing a challenge or completing a specific streak-tagged action). The streak card updates and your count goes up.
## Timezone
The streak window follows the **organisation's timezone**, not your device's. If the org is in UTC+0 and your phone is on UTC+8, the "today" window is the org's calendar day, not yours.
## Past days display
Past days in the streak show their completion status — filled dots for days where you extended, empty dots for days you missed. This makes it easy to see where the streak started / broke / restarted.
## Streak button in navigation
If your community uses the floating navigation button and has streaks enabled, the streak entry appears in the menu. Communities without streaks hide the button entirely.
## Feature flag
Streaks are community-configurable. A community with streaks disabled hides the streak card, button, and any streak-specific challenge actions.
## Related
Streak-contributing actions live in challenges.
How streak-fuelled XP ranks you.
Where streak rewards land.
# Wallet
Source: https://docs.nudj.cx/user-guide/wallet
Your balance, reward assets, prize entries, and redemption history
The Wallet is where you manage what you've earned: your points balance (if your community uses points), reward assets you own, prize entries for giveaways, and your redemption history.
## Points balance
If your community has points enabled, the Wallet shows your current balance at the top. This section — sometimes called "Coins" depending on your community's theme — is hidden entirely when the points system is disabled.
Whether a section reads "Points" or "Coins" depends on the community's theme configuration. Both refer to the same spendable currency.
## Reward assets
Reward assets are the items you've earned (gift codes, vouchers, products, multipliers) or purchased with points. They're grouped by reward in the wallet so identical items stack together — tap a stack to expand it and see individual entries with their own expiry dates.
Each asset has one of these statuses:
* **Unredeemed** — ready to use.
* **Redeemed** — already used; kept for reference.
* **Expired** — past its expiry; can't be redeemed.
Some rewards have an **allocation expiry** — after it's granted to you, you have a limited time to redeem before it's gone. A countdown timer on the asset shows how long you have left.
**UPC-A barcodes** are supported for rewards that scan in a physical store. The barcode renders from the redemption value when you open the asset.
**Spotlight rewards** are communities' featured or event rewards; they surface on the home page with their own spotlight treatment and carry through to the wallet with the same visual prominence.
## Prize entries
If you've entered a giveaway or sweepstakes, entries appear here with their status:
* **Pending** — draw date hasn't happened yet.
* **Unchecked** — draw completed; tap to reveal whether you won.
* **Won** — successful entry with prize details.
* **Lost** — unsuccessful entry.
Unchecked entries get their own section so you can check results in one place.
## Filtering and sorting
The assets list supports filtering and sorting — useful when you've accumulated a lot of rewards. Filters typically include redeemed/unredeemed/expired and reward type; sort options include earning date, expiry, and reward name.
## Empty states
New members see an empty wallet with guidance on earning their first reward — usually pointing at the active challenges or the community's featured reward.
## Who can see the wallet
* **Signed-in members** always see the wallet.
* **Anonymous / guest users** can view the wallet by default, so they can claim assets granted before sign-in. When a community enables **anonymous conversion enforcement**, guests are redirected to the sign-in flow before they can access the wallet — see [Anonymous accounts](/user-guide/anonymous-accounts).
## Layout variants
Communities can opt into a split layout via a theme setting (`walletLayoutVersion`) that separates the balance view from the asset view into two screens. The default layout shows everything on one screen.
## Accessing the wallet
* From the floating navigation button or bottom nav — the wallet entry is available unless disabled by community config.
* Directly via the URL `/{community-slug}/wallet`.
Inside the widget, the wallet has its own surface — see [Widget overview](/user-guide/widget/overview).
## Related
How redemption works.
The timer on allocated rewards.
What points do.
# Widget deep linking
Source: https://docs.nudj.cx/user-guide/widget/deep-linking
Direct-open URLs that route inside the widget iframe
Deep links let a host site open the widget to a specific screen — a reward, a challenge, or a wallet tab — in one step. This is useful for promotional emails, product-page links, or campaign CTAs that want to drop members straight into the relevant widget surface.
## How it works
A deep link is a normal URL that encodes the target route inside the widget's slug-based routing. When the widget opens, the embed loader routes directly to that target rather than the default landing view.
## What you can link to
* A specific reward card or reward detail.
* A specific challenge (opens the challenge detail inside the widget).
* The wallet view.
* A specific challenge action inside the wizard.
## From the host site
The host site is responsible for constructing deep links with the right parameters. The widget itself then honours the incoming route when it boots.
## Fallback
If a deep link references something that no longer exists (deleted reward, ended challenge), the widget falls back to the default landing view — it doesn't error.
## Related
The bigger picture.
Another direct-access pattern.
# Widget overview
Source: https://docs.nudj.cx/user-guide/widget/overview
The embeddable loyalty widget you may see inside a brand's store
The Nudj widget is an embeddable surface that brands can drop into their site or app (commonly a Shopify storefront). It gives members a compact loyalty UI — wallet snapshot, challenges, rewards, referrals, tiers, and more — without leaving the host site.
## How it's embedded
The host site loads the widget as an iframe. The widget runs the Nudj user app inside that iframe, scoped to the brand's community. Mobile nav positioning uses absolute positioning so it renders correctly inside the iframe.
## Signed-out state
If you open the widget as a guest, the widget shows a **signed-out value-prop** — a compact sell for what you'd gain by signing in (points balance, rewards, referrals). Tapping the sign-in CTA opens the sign-in flow.
## What's inside
Depending on the community's widget configuration, the widget can include:
* **Wallet snapshot** — balance and recent assets.
* **Quick actions** — shortcuts to the most common tasks ([Quick actions](/user-guide/widget/quick-actions)).
* **Tier display** — your current loyalty tier and progress ([Tiers](/user-guide/widget/tiers)).
* **Challenges carousel** — active and upcoming challenges.
* **Rewards list** — featured and available rewards.
* **Refer-a-friend card** — a compact referral surface ([Refer-a-friend](/user-guide/widget/refer-a-friend)).
* **Section titles with optional tooltips** — each section can include a small ? tooltip that explains what it contains.
## Card layouts
Widgets support different card layouts — direct item linking, featured products, AI-generated imagery on reward cards. The exact mix is configured per community.
## Deep linking
The widget supports deep links that open a specific reward, challenge, or wallet view directly. See [Deep linking](/user-guide/widget/deep-linking).
## Performance
The widget is optimised for fast load in a constrained iframe environment — minimal initial payload, progressive content, and the brand's theme colours applied without re-flashes.
## Related
Direct-open URLs.
Fast shortcuts.
Loyalty tiers.
Referrals inside the widget.
# Quick actions
Source: https://docs.nudj.cx/user-guide/widget/quick-actions
Shortcut buttons on the widget home
Quick actions are small, button-style shortcuts on the widget home that take you to common destinations in one tap. They're a rail of the most-used actions for the community — redeem, play, refer, etc.
## What's typically here
Communities configure their quick actions; common entries include:
* **Redeem** — jumps to the rewards list.
* **Earn / Challenges** — jumps to the active challenges.
* **Play** — jumps to the Games tab (if games are configured).
* **Refer** — opens the referral card.
* **Wallet** — jumps to the wallet view.
## Configuration
Quick actions are configured per community. Admins choose which entries to show, their order, and their labels. Different widgets in the same org can have different quick-action sets.
## Related
The bigger picture.
Direct routes.
One of the common quick actions.
# Refer-a-friend (widget)
Source: https://docs.nudj.cx/user-guide/widget/refer-a-friend
Referrals inside the embeddable widget
The widget exposes refer-a-friend as a dedicated section or card. You get the same functionality as the main app's [Referral drawer](/user-guide/referrals), reshaped to fit inside the widget iframe.
## What it looks like
* A compact card showing your referral link (or a Share button).
* Visible rewards for you and your friend (subject to the community's PointsSystem flag — if points are off the card won't advertise point rewards).
* A tap to share via the native share sheet or copy the link.
## How it behaves
Tapping the card opens the referral flow inline or in an expanded view. When your friend joins using the link, the community's referral achievement fires and both of you are rewarded.
## Differences from the main-app drawer
The widget variant is more compact — less explanatory copy, faster to open. The underlying behaviour (referral achievement, distribution to both parties) is identical.
## Related
Main-app referral drawer.
Widget context.
Where referral rewards land.
# Tiers
Source: https://docs.nudj.cx/user-guide/widget/tiers
Loyalty tiers displayed in the widget
Tiers are loyalty levels — bronze / silver / gold style progression — where each tier unlocks different benefits. The widget surfaces your current tier, your progress toward the next one, and the perks associated with each.
## What a tier is
A tier is a rung on a ladder. Each tier typically has:
* A **threshold** — the metric (XP, points, purchases) required to reach the tier.
* A **set of perks** — benefits you get while you're at or above that tier (exclusive rewards, multipliers, early access).
* A **visual treatment** — icon, colour, label.
## Where it shows
* The widget home can show your current tier prominently.
* A tier-progress meter shows how close you are to the next tier.
* Tier details expand to show the perks at each tier.
## How progression works
As you earn XP (or the configured tier metric), you move up. Most communities use XP as the tier metric, but it's configurable. Tier downgrades — when they exist — are community-defined (for example, rolling annual XP windows).
## Configuration
Tier labels, thresholds, artwork, and perks are all configured per community. The widget renders whatever the community has set up.
## Related
The common tier metric.
Ranking against other members.
The bigger picture.
# All Releases
Source: https://docs.nudj.cx/whats-new/all-releases
Recent Nudj platform releases with notable version notes
# All Releases
Notable Nudj platform releases with their own release notes pages. For the complete month-by-month narrative, see the [monthly highlights](/whats-new/highlights/2026-04).
Older release-note pages have been archived — the month-by-month story in the **Monthly Highlights** section is now the canonical changelog.
April 2026
April 2026
April 2026
April 2026
April 2026
April 2026
April 2026
April 2026
March 2026
March 2026
## Older releases
Earlier version notes are preserved in the archive (not surfaced in the sidebar). Browse them by file name under `whats-new/releases/archive/` in the repo, or use the [monthly highlights](/whats-new/highlights/2025-q2) to find what shipped when.
# May 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-05
Reward drops, admin feature flags, and OIDC SSO
## May 2025
May was about giving admins more levers — reward drops made one-off distribution trivial, the feature-flag system gave per-org toggles, and OIDC SSO made enterprise onboarding easier. Repeatable-challenges UI groundwork also landed, setting up later monthly cadences.
### For Admins & Community Managers
Distribute a reward to a group of users in one step — the foundation of today's drop workflow (#588).
Per-org feature toggles so teams can stage rollouts without code changes (#614).
Reworked rewards list with better filters and bulk actions (#673).
Add and remove platform administrators directly from settings (#696).
### For Enterprise
First-class OpenID Connect support for enterprise single sign-on (#618).
### For Community Members
Challenge progress now respects configurable period and completion caps (#623).
UI groundwork that later powered daily/weekly repeatable challenges (#630).
### In this period
* 8 PRs merged.
## Related
Q2 2025 rollup — the earliest admin analytics dashboards.
MCP server launch and the Nudj Lite framework.
# June 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-06
MCP server launch, achievements-as-actions, and the Nudj Lite framework
## June 2025
June was the first big developer-surface month — the MCP server launched, unlocking AI-agent-driven admin flows. On the platform side, achievements became first-class actions and the Nudj Lite framework shipped, giving us a leaner runtime for single-purpose brand deployments.
### For Developers & Integrators
The first Model Context Protocol server ships — AI assistants can now create challenges, rewards, and community content through the admin API (#693).
Early MCP tooling for generating challenge content from YouTube videos (#737).
### For Admins
Achievements can now be configured as action types that complete challenges, unifying the progression model (#725).
Revamped onboarding flow with domain configuration (#728).
### Platform capabilities
Lightweight deployment target for single-community branded experiences — reduced payload, faster boot (#758).
Companion agent runtime for Lite deployments (#757).
### In this period
* 6 PRs merged.
## Related
Reward drops and admin feature flags.
Anonymous user conversion and custom community tabs.
# July 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-07
Anonymous user conversion, custom community tabs, and the achievement page redesign
## July 2025
July was a user-experience month. Anonymous visitors could finally convert to members without losing progress, community admins got fully custom tabs, achievements got a visual refresh with badges, and a modern default layout became the starting template for new communities.
### For Community Members
Visitors can now complete challenges and earn points anonymously, then upgrade to a full account without losing progress (#856).
Refreshed achievements UI with badges, progress indicators, and clearer next-step cues (#824, #894).
Native Web Share support for posts and challenge invites (#890).
New communities now ship with an updated default layout template (#892).
### For Admins & Community Managers
Add, remove, and reorder tabs within a community — the tabs editor ships alongside a frontend render pass (#815, #865, #889).
Cleaner form UX when building action-based challenges (#817).
Full rich-text editor for community rules and admin-authored content (#897).
Tight modal for viewing and editing a community's metadata (#886).
First pass at the challenge/reward template gallery (#888).
### For Developers
One-click copy for the org client ID in Developer Settings (#876).
### In this period
* 13 PRs merged.
## Related
MCP server launch and the Nudj Lite framework.
Creator app, action wizard, and the Mintlify docs migration.
# August 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-08
Creator app, action wizard, and the Mintlify docs migration
## August 2025
August was a big month — 25 PRs shipped, spanning content-creation tooling (the Creator app and action wizard), compliance (OneTrust consent), documentation infrastructure (the move to Mintlify), and the first two per-community Lite experiences (Coke and Pampers).
### For Admins & Community Managers
The Creator app launches with its action wizard — a guided flow for building action-based challenges, including video actions (#861, #912, #944).
A new quiz-mode action type for knowledge-check challenges (#923).
Attach rewards to individual actions rather than whole challenges (#997).
Support for distributing up to 500,000 one-time codes as a reward (#954).
Admin UX for removing users and adjusting balances from within a community (#1006).
Plain-language condition builder for achievement unlock rules (#1007).
### For Community Members
First pass at the advent-calendar challenge type (#871).
Preview modals for rewards, achievements, and challenges before claiming or starting (#898).
Per-user font size controls and social-link fields in profiles (#911, #966).
Rewards and challenges now surface their scheduled-but-not-yet-live status (#983).
Tiled badge carousel on the achievements page (#965).
### For Enterprise & Shopify Merchants
OneTrust-powered consent management with geo-targeted messaging (#973).
First Nudj Lite deployment for a major brand partner (#930).
Second branded Lite deployment (#977).
Per-org control for which communities appear in the featured list (#899).
### For Developers
Documentation moved from HelpKit to Mintlify — interactive API playground, search, and code samples (#986).
First cut of the realtime voice-agent experiment (#982).
Cross-community context on action participations (#914).
### Platform polish
* Background image uploader (#996)
* Sort persistence across table views (#989)
* Shadcn consistency pass (#947)
* Logo redirect behaviour (#960)
### In this period
* 25 PRs merged.
## Related
Anonymous user conversion and custom community tabs.
Campaigns, video challenges, and rewards analytics.
# September 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-09
Campaigns, video challenges, and rewards analytics
## September 2025
A record 29 PRs shipped. Campaigns launched, video challenges went into admin, the rewards analytics suite finished, and the admin experience got a light-mode refresh alongside a new table design language.
### For Admins & Community Managers
Top-level campaigns let admins group challenges and push coordinated announcements (#1127).
Admin configuration surface for video-based actions and challenges (#1114, #1138).
Complete rewards-analytics dashboard (#1051) with CSV export (#1133).
Admin-authored community rules with agreement flow and legal-specific surface (#1093, #1099).
Reward wizard refresh with reward-supply UI (#1108, #1139).
Admin UI for configuring games, with logic validation (#1054, #1071).
Archive and restore communities without deleting data (#1038).
New admin table system and the light-mode refresh across the dashboard (#1155, #1173).
### For Community Members
Community post composer gets a redesign with image uploader and rich text (#1039, #1068, #1123).
End-of-challenge screen now suggests the best next challenge (#1092).
New action type that accepts an image upload as proof (#1101).
Unlock rewards with a one-off key code (#1102).
Deep-link to post-detail pages with comments and reactions (#1074).
### For Developers
Leaderboard configurations now localise titles and descriptions (#1062).
Cleaner challenge endpoints and an Integration-API refactor (#1016).
Nudj Lite now supports repeatable challenges (#1088).
Dedicated wizard for creating challenges from YouTube content (#1085).
### Platform polish
* Secret-code multi-use support (#1012)
* Advanced community settings (#1031)
* Admin nav surfaces the active community (#1141)
* Lite journey flow (#1148)
### In this period
* 29 PRs merged.
## Related
Creator app and the Mintlify docs migration.
Configurable XP per action and the Redis caching layer.
# October 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-10
Configurable XP per action, Redis caching, and action-level reward distribution
## October 2025
October's headliners were configurability and performance: admins could set XP per individual action, the API gained its Redis caching layer, and rewards could be attached and distributed at the action level. The MCP developer surface also expanded with Jira, Vercel, and skills integrations.
### For Admins & Community Managers
Set the XP value on individual actions rather than inheriting a flat per-challenge value (#1184).
Distribute rewards when specific actions complete, not just at challenge end (#1202).
Third generation of the challenge builder with action-wizard skip (#1186, #1227).
Convert a scheduled reward into a full challenge flow (#1223).
Streak action type that rewards consecutive-day check-ins (#1214).
Attach rewards directly to top-N leaderboard ranks (#1208).
Richer activity feed with per-event detail pages (#1242).
Full CSV export of challenge participation data (#1241).
### Performance
First-class Redis caching layer — leaderboards, rewards, and achievements now feel instant (#1169).
Tuned challenge endpoints for logged-in users (#1188).
### For Developers
MCP server gains Jira tooling, Vercel deployment context, and a skills framework (#1247).
Variable values can be localised per supported language (#1171).
New mutation for signalling a user has accepted a community's rules (#1250).
Server-side game session handling (#1251).
### Platform polish
* Challenge complete copy updates (#1157)
* Docs dev workflow improvements (#1176)
* Grouped reward assets (#1174)
* Redeemed asset carousel (#1230)
### In this period
* 19 PRs merged.
## Related
Campaigns and video challenges.
Bearer-token API auth and webhook log collection.
# November 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-11
Bearer-token API auth, webhook logs, and the accessibility pass
## November 2025
November was a quieter month with an outsize developer impact: Bearer-token API authentication landed (alongside its org-scoping guarantees), every webhook delivery got logged and surfaced in the admin UI, and the org settings area was consolidated into a single coherent surface. The accessibility pass also closed a long list of WCAG gaps across the user app.
### For Developers & Integrators
The `Authorization: Bearer` path launches across Integration and Admin APIs — RBAC-scoped, individually revocable, org-enforced (#1283). See [Authentication](/api-reference/authentication).
Every webhook delivery attempt is now recorded with payload, response status, and latency (#1272). Surfaced through `GET /webhooks/logs` — see [Webhooks](/api-reference/webhooks).
### For Admins & Community Managers
Every organisation-level setting now lives in one consolidated section of the admin dashboard (#1312).
New filter and sort controls across the rewards list (#1332).
Track every entry that made a giveaway-winner shortlist (#1342).
### For Community Members
Challenges with comment/like actions now show a countdown until they complete (#1285).
A wide WCAG-focused pass across the user app — keyboard nav, contrast, screen reader labels (#1330).
### In this period
* 7 PRs merged.
## Related
Configurable XP per action and Redis caching.
The Shopify partner app and email notification infrastructure.
# December 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-12
Shopify partner app, email notification infrastructure, and community theming v2
## December 2025
December was the start of the Shopify era. The partner app, account linking, checkout links, and end-to-end flows all shipped within a four-week window. Email infrastructure and scheduled notifications went live the same month, and community-level theming got its v2 treatment.
### For Enterprise & Shopify Merchants
The Shopify partner app ships — first-class integration with Shopify admin (#1402).
Link Shopify customer accounts to Nudj community profiles (#1407).
A dedicated reward type whose fulfilment is handled via Shopify (#1447, #1459).
Generate Shopify checkout URLs as a reward-fulfilment mechanism (#1492).
Full Shopify account → reward → checkout flow verified end-to-end (#1474).
### For Developers & Integrators
Unified email-sending infrastructure with scheduled notifications and per-org settings (#1513, #1517, #1571).
Webhook subscriptions can now filter by entity type — fewer irrelevant deliveries (#1485).
OIDC provider config is fetched automatically from the well-known URL (#1466).
### For Admins & Community Managers
Per-community branding and theme presets, including Shopify-aware overrides (#1434, #1545).
One-click duplicate across challenges, rewards, and other admin entities (#1412).
Cap how many copies of a reward can be allocated, independent of total supply (#1451).
Month-view calendar of active and scheduled challenges (#1511).
New voting action type for community decision-making (#1347).
### For Community Members
Repeatable-challenge cards are now presented in a carousel (#1413).
Anonymous users can hold an in-browser wallet until they sign up (#1463).
Parallax-style hero treatment on key user-app screens (#1569).
### Platform polish
* Leaderboard service refactor (#1372)
* Intercepted Next.js routes for modal overlays (#1498)
* Scheduled leaderboard "coming soon" state (#1560)
### In this period
* 23 PRs merged.
## Related
Bearer-token API auth and webhook logs.
OTP auth, the Shopify loyalty widget, and automated leaderboards.
# Q2 2025 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2025-q2
April 2025 product highlights — the start of the analytics suite
## April 2025
April was a quiet-but-foundational month — the first wave of admin analytics dashboards landed alongside the earliest leaderboard prize work. Too few changes merged to warrant a dedicated monthly page, so April is folded into this quarterly rollup.
### For Admins
First pass of the per-user analytics views in the admin dashboard (#484).
The landing dashboard that aggregates org-level metrics at a glance (#485).
Per-challenge participation and completion metrics (#554).
Early groundwork for attaching rewards to leaderboard ranks (#564).
### In this period
* 4 PRs merged.
## Related
Reward drops, admin feature flags, and OIDC SSO land.
Full release history.
# January 2026 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2026-01
OTP authentication, Shopify loyalty widget, and automated leaderboards
## January 2026
January was the month of the Shopify storefront widget launch — scaffold, config, theming, achievements, and the Shopify Members page all landed on the same rails. OTP replaced magic-link as the default authentication flow, notification preferences went to users, and leaderboards became fully automated.
### For Enterprise & Shopify Merchants
The Shopify storefront widget launches — scaffold, config, theming, and a simplified mode (#1634, #1635, #1646, #1659).
Achievements render inside the simplified-widget variant (#1674).
A members directory page rendered inside the Shopify admin (#1689).
Additional page types for the Shopify embed (#1722).
Refer-a-friend UI rendered inside the Shopify embed (#1733).
Points-for-spend integration that awards points based on Shopify order value (#1738).
Admin surface for configuring the Shopify widget (#1761).
A complete set of 16 Shopify webhook subscriptions wired up (#1780).
### For Community Members
One-time passcode sign-in replaces magic link as the default auth flow (#1642).
Configurable threshold for when a guest is prompted to convert to a full account (#1730).
Mobile-optimised floating bottom nav for the user app (#1570, #1792).
Vertical layout option for community pages (#1479).
Refreshed challenge-complete celebration screen (#1508).
### For Admins & Community Managers
Leaderboards now schedule themselves and distribute prizes automatically on close (#1775).
Per-user notification preferences with full opt-in/opt-out control (#1778).
Dedicated Games tab in the admin dashboard (#1741).
Send transactional emails in the user's preferred language (#1690, #1704).
Refreshed default-theme palette across the platform (#1784).
### For Developers
Funnel analytics for user drop-off through challenge flows (#1628).
New webhook event fired on action completion (#1772).
Major pass across the Mintlify docs site (#1707).
### In this period
* 27 PRs merged.
## Related
Shopify partner app + email infrastructure.
RBAC everywhere, effects system, and Shopify MCP.
# February 2026 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2026-02
RBAC everywhere, the effects system, and Shopify MCP
## February 2026
February was the biggest developer-side month yet. Role-based access control went from feature to platform-wide backbone: per-token RBAC, per-community scoping, client-side enforcement, and a new Moderator role. The effects system (XP Boost + Points Boost) landed as a discriminated-union abstraction on user community data, and Shopify MCP went from concept to shipped — both backend and UI. Thirty-two PRs in all.
### For Developers & Integrators
API tokens now carry role claims — permission checks happen at the token layer (#1816).
Tokens and roles can be scoped to a specific community (#1839, #1865).
RBAC now drives which UI surfaces render, not just which endpoints respond (#1864).
Organisation-level role checks across every sensitive admin endpoint (#1875).
A new Moderator role sits between Viewer and Manager in the hierarchy (#1865).
Backend and UI for MCP-driven Shopify admin flows (#1825, #1826).
MCP sessions can now carry org + community context across tool calls (#1887).
MCP tools respect the session's RBAC role — no privilege escalation via AI (#1894).
Admin UI for browsing webhook delivery logs (#1813).
New Integration API endpoint for a user's transaction history (#1828).
### For Admins & Community Managers
Drag-and-drop visual editor for custom game configurations (#1812).
Community-scoped XP-multiplier effect that stacks on user community data for a configurable duration (#1918).
Sibling Points-multiplier effect — multiple effects supported, highest active wins (#1949).
Standalone embeddable referral widget (#1892) with click tracking (#1915).
Bind a Shopify store to a specific community (#1819).
Rewards that unlock when a threshold value is met (#1847).
New Flick mini-game (#1841, #1844).
Per-game reward configuration (#1782).
Per-community level progression configuration (#1855).
### For Community Members
Refinements across the wallet experience (#1572).
New featured-content carousel on community landing (#1928).
UI polish across widget sections (#1906).
Admin-side emulator for previewing the embed experience (#1937).
### Platform capabilities
Platform-wide theme system unification (#1874).
Preset themes tuned for Shopify storefronts (#1886).
Switch to ElevenLabs for the voice-agent experience, with a push-to-talk mode (#1926, #1936).
New organisation-level dashboard (#1701).
### In this period
* 32 PRs merged.
## Related
OTP auth, Shopify loyalty widget, automated leaderboards.
Points expiration, referral pipeline, tiered achievements, bohemian rebrand.
# March 2026 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2026-03
Points expiration, referral pipeline, tiered achievements, and the bohemian rebrand
## March 2026
March was the single highest-volume month of the year with 47 PRs. Points expiration + delayed distribution + org-level points config shipped as one connected story. The referral distribution pipeline finished end-to-end. Tiered achievements + spotlight rewards + redemption expiry closed out the gamification-surface roadmap. Customer Data Hydration phases 2-4 went live for enterprise customers. And the bohemian rebrand swept through the admin panel.
### For Admins & Community Managers
Points now carry an expiry date — org-wide config with per-user visibility (#1934, #2006).
Queue points to distribute after a configurable delay (#1806).
Per-community referral config, acceptance, and end-to-end distribution with analytics (#1956, #1999, #2009, #2084).
Multi-tier achievement progression with per-tier rewards (#2130, #2162).
Headline-treated reward display with its own backend + frontend (#2056, #2102).
Rewards can now expire after claim if not redeemed in time (#2140, #2150).
Dedicated admin page for configuring loyalty tiers (#2198).
Reveal hints on actions at the cost of XP — backend and UI (#1975, #2064).
Two new question-action types: NPS survey and birthday capture (#2021, #2023).
Upload a CSV to distribute rewards at scale (#2043).
Refreshed engagement-stats dashboard (#1968).
### For Enterprise & Shopify Merchants
Backend infrastructure for enterprise data pipelines: phases 2–4 ship together (#2134).
Admin surface for configuring hydration targets and mappings (#2183).
OAuth-based data hydration path for Shopify stores (#2184).
Inline reward creation from within the Shopify admin extension (#1981).
Engagement chart rendered inside Shopify admin (#1985).
Shopify-side modal for tweaking game config (#1986).
Time-boxed points-multiplier promotions inside Shopify (#2010).
Reward a free Shopify product via the Discount Function API (#2160).
Starter templates for common Shopify achievement patterns (#2133).
Pre-configured leaderboard recipes for Shopify stores (#2220).
### For Community Members
Quick-action buttons inside the widget (#1940).
Standalone embeddable widget for non-Shopify websites (#1971).
Wallet nav splits points and XP into separate tabs (#1973).
Current loyalty tier now renders in the widget (#2187).
New widget card layouts and fal.ai-generated imagery (#2165).
Widget renders previews even when the user isn't signed in (#2060).
### For Developers
Action entities now carry an explicit status field (#1972).
Org-level on/off for the widget surface (#2002).
Onboarding checklist state is now authoritative server-side (#2020).
Embeddable achievements panel for third-party surfaces (#2086).
Reward milestones inside a running streak (#1954, #2000).
Render earnable points on Shopify product pages (#2163, #2190).
### Platform capabilities
The admin panel receives its bohemian visual rebrand (#2216).
Per-step colour controls across challenge flows (#2204).
Updated icon set across the admin nav (#2178).
### In this period
* 47 PRs merged.
## Related
RBAC everywhere, effects system, and Shopify MCP.
Birthday rewards, loyalty tier entry rewards, Shopify storefront widget suite.
# April 2026 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2026-04
Birthday rewards, loyalty tier entry rewards, and the Shopify storefront widget suite
## April 2026
April focused on closing the loop on rewards and the Shopify storefront widget suite. Birthday rewards auto-distribute, loyalty tiers now have entry rewards at each tier boundary, and four major Shopify-side widgets shipped: Loyalty Account, Ways to Earn, Refer-a-Friend, and Points at Checkout. A widget-performance pass took Lighthouse from 42 to 92+. The asset library and basketball 3D game also landed.
### For Admins & Community Managers
Automatically distribute a reward on each member's birthday (#2172).
Each loyalty tier can now have an entry reward that auto-distributes when a member crosses into it (#2215, #2243).
Centralised asset library for reuse across rewards, challenges, and brand assets (#1661).
New default starter templates across the admin panel (#2416).
### For Enterprise & Shopify Merchants
Dedicated account-summary widget for Shopify storefronts (#2224).
Storefront widget showing every way a customer can earn points (#2238, #2257).
Embeddable referral widget for Shopify storefronts (#2253).
Inline widget that shows earnable points on the Shopify checkout page (#2387).
Unified referral-widget surface across embed targets (#2240).
### Platform capabilities
A dedicated performance pass on the widget takes Lighthouse from 42 to 92+ (#2276).
Deep links into specific widget states from external URLs (#2287).
Configurable loading-state treatment (#2355).
Live-updating iframe preview on the branding-config screen (#2305).
### For Community Members
New basketball-themed 3D mini-game (#2407).
### For Developers & Integrators
Outbound webhooks for action-level events (#2391).
### In this period
* 17 PRs merged.
## Related
Points expiration, referral pipeline, and the bohemian rebrand.
Full release history.
# July 2026 Highlights
Source: https://docs.nudj.cx/whats-new/highlights/2026-07
The chat-first admin workspace: live preview editing, a task queue, tool cards, async images, widget section theming, and the Setup Guide panel
## July 2026
July reshaped the admin around the AI agent. The chat is now a full workspace: a panel beside the conversation with a live widget preview the agent drives, a session inventory, Brand Memory, and a new **Setup Guide** tab that walks you through onboarding task by task. You can queue instructions while the agent works and steer it mid-run, edit widget sections straight from the live preview, and let images generate and attach themselves in the background. Alongside it, widget section theming lets you style each section of the widget independently.
### For Admins & Community Managers
A panel beside the chat with Preview, Inventory, Brand, and Guide tabs — expandable to full width.
Open the onboarding checklist inside the chat and press Start to have the agent walk you through any task, one question at a time.
Queue follow-up instructions while the agent works, and steer it mid-run with a priority message that jumps the queue.
Edit, move, hide, or ask the agent about any widget section straight from the live preview, in tabbed Content / Layout / Style editors.
Every read and write renders a compact tool card with jump-to Preview and Edit actions for the entity involved.
Track what a run created, setup-guide progress, cited sources, and the live queue in one place.
### Platform capabilities
Images render in the background while the agent keeps working, then attach themselves to the right entity automatically.
Send the agent exactly what you're previewing so it edits what you're looking at.
### For Enterprise & Shopify Merchants
Style each widget section independently — per-section layouts, colour and treatment overrides, and element visibility.
Earn and Spend sections gain a Grid layout with 2, 3, or 4 image-first cards and hand-picked featured items.
### In this period
* The chat-first admin workspace redesign plus widget section theming.
## Related
Birthday rewards, loyalty tier entry rewards, and the Shopify storefront widget suite.
Full release history.
# What's New
Source: https://docs.nudj.cx/whats-new/index
Latest features, improvements, and updates to the Nudj platform
# What's New at Nudj
The home for product updates across the Nudj platform. Monthly highlights aggregate the biggest themes from each month; individual release notes cover notable versions.
**April 2026** — Birthday rewards, loyalty tier entry rewards, and the Shopify storefront widget suite.
## Featured launches of the year
The ten biggest ship-weights across the 2025-04 → 2026-04 window.
Full partner app, account linking, reward types, checkout links, and a four-widget storefront suite: Loyalty Account, Ways to Earn, Refer-a-Friend, Points at Checkout.
Per-token RBAC, community-scoped roles, a new Moderator role, client-side enforcement, and an RBAC-aware MCP server.
XP Boost + Points Boost as a discriminated union on user community data. Community-scoped, tier-aware multipliers.
Config UI, distribution pipeline, click tracking, analytics dashboard, and a standalone widget.
Three gamification-surface closers ship in the same month — backend + frontend splits for each.
Shopify widget, website embed widget, admin customization panel, deep linking, and a perf pass from Lighthouse 42 → 92+.
Platform-wide theme unification, admin UI, Shopify-aware presets, live preview iframe, configurable loading state.
Enterprise data integrations — backend phases 2–4, admin UI, Shopify OAuth hydration.
Authentication modernisation across user and admin — OTP replaces magic link, guest thresholds, full opt-in/opt-out controls.
Full developer surface for AI agents and integrators — MCP launch, Shopify MCP, Bearer-token auth, webhook delivery logs.
## Browse by month
Birthday rewards + Shopify widget suite
Points expiration + referral pipeline + bohemian rebrand
RBAC + Effects + Shopify MCP
OTP auth + Shopify loyalty widget
Shopify partner app + email infrastructure
Bearer API auth + webhook logs
XP per action + Redis caching
Campaigns + video challenges
Creator app + Mintlify docs
Anonymous conversion + custom tabs
MCP server + Nudj Lite
Reward drops + OIDC SSO
Admin analytics foundations
## Release cadence
We ship to production approximately **one week after** a change lands in our development environment — that buffer gives us time to validate quality before your members see changes. Notable releases get their own page under **Recent Releases**; everything else is captured in the monthly highlights.
Looking for something specific? Use the search bar above to find updates by feature name or PR number.
***
*Questions about a feature? See the [Admin Guide](/admin-guide/introduction) or the [User Guide](/user-guide/introduction).*
# More visible rewards, better creation tools
Source: https://docs.nudj.cx/whats-new/releases/v2.526.3
Released September 9, 2026
## 🔴 Release v2.526.3
⭐⭐⭐ Complex • 14 commits • 116 files • +8,920 / -317 lines
Members can find achievements ready to claim from the desktop sidebar, while campaign managers get restored Ask Nudj chat, a new GPT-6 Astra option, and more control over generated campaign images. XP leaderboards also reuse recent score work for faster repeat views. Security and access-control hardening is included.
This release brings earned rewards closer to the people who need to act on them. Members with completed but unclaimed achievements now get a visible reminder in the desktop sidebar and can open the claim flow from there. XP leaderboard reads also reuse fresh score calculations, which keeps rankings more responsive as a community grows.
Campaign managers can use Ask Nudj chat again and choose GPT-6 Astra for demanding creation work. Image generation now defaults to GPT Image 2.5 Flare, with Sunburst available when an image needs more detail. The same choices are available to the image tools used by connected workflows, including transparent backgrounds and multi-image references.
Security and access-control hardening is also included, along with internal delivery checks that make release diagnostics and campaign readiness more dependable.
## What's new
* See a clear desktop reminder when achievements are ready to claim
* Open completed achievements from the sidebar and keep reward progress moving
* Use restored Ask Nudj chat with GPT-6 Astra for campaign creation and refinement
* Create campaign images with GPT Image 2.5 Flare by default or choose Sunburst for detailed work
* Get faster repeat views of XP leaderboards as campaigns grow
* Security and access-control hardening
## For platform administrators
* **Restored Ask Nudj chat** – Return to AI-assisted campaign planning, refinement, and content work from the admin workspace.
* **GPT-6 Astra** – Choose a new reasoning-capable model for more demanding campaign conversations.
* **Image model choices** – Set GPT Image 2.5 Flare as the community default, or choose Sunburst, GPT Image 2, or Nano Banana for a different balance of detail and speed.
* Check: the image model setting in a community's chat options
* **Branded image generation** – Use transparent backgrounds and multiple reference images when creating campaign artwork.
## For community members
* **Unclaimed achievement reminders** – See how many completed achievements are waiting in the desktop sidebar and open them in one click.
* Check: a desktop community account with at least one completed, unclaimed achievement
* **Faster XP leaderboards** – Return to rankings and member positions with less waiting during repeat views.
* **Security and access-control hardening**
## Security
* Security and access-control hardening.
## Usage examples
### Choose an image style for a campaign
Set the community's default to **GPT Image 2.5 Flare** for fast, high-quality campaign artwork. Choose **GPT Image 2.5 Sunburst** when a hero image needs more intricate detail, or **Nano Banana** when speed matters most.
### Turn an achievement into a next step
When a member sees the achievement reminder in the desktop sidebar, they can open it, review the completed achievement, and claim the available reward without searching through the community.
## Apps updated
✓ Updated – unclaimed achievement reminders, faster XP leaderboard views, and access-control hardening
✓ Updated – shared XP score reuse for leaderboard reads and cache freshness improvements
✓ Updated – restored Ask Nudj chat, GPT-6 Astra, and configurable image-generation defaults
✓ Updated – Flare and Sunburst image generation with transparent and reference-image support
— No changes
— No changes
## Detailed changes
* Added a desktop sidebar card for signed-in members with completed, claimable achievements that have not been claimed.
* Added a drawer that lists the member's unclaimed achievements and opens the existing achievement claim experience.
* Kept the reminder hidden for anonymous members, communities without an active community context, and members with nothing to claim.
* Security and access-control hardening.
* Restored the Ask Nudj chat flow and made GPT-6 Astra available in the model picker.
* Updated model selection so supported reasoning controls work with GPT-5 and GPT-6 models.
* Added community-level image model selection with GPT Image 2.5 Flare as the default, plus Sunburst, GPT Image 2, and Nano Banana.
* Kept fast model variants out of the main picker while preserving their existing routing behavior.
* Improved recursive tool-schema handling so complex image and campaign tools can be presented reliably to the chat model.
* Added bounded shared score snapshots for Total XP leaderboard lists and member-position requests.
* Reused unchanged player scores between requests while adopting new XP in bounded batches, then fell back to the live calculation when the shared snapshot was unavailable or stale.
* Kept eligibility, exclusions, user details, and current leaderboard configuration checks fresh for each request.
* Added configuration-aware cache tags so leaderboard changes do not remain behind an old response.
* Added the image-model choices to the typed admin API contract.
* Security and access-control hardening.
* Added GPT Image 2.5 Flare and GPT Image 2.5 Sunburst to image generation and editing.
* Made Flare the fallback image model when a community has no saved default.
* Added OpenAI image sizing and quality handling for the new models, including transparent output support.
* Kept multi-image reference editing available across supported image models.
* Tightened endpoint matching so versioned image models resolve to the intended generator.
* Added the shared image-model enum and generated API types used by admin settings and image tools.
* Added XP revision metadata, indexes, bounded adoption, and Redis snapshot handling for leaderboard reuse.
* Made the leaderboard migration compare MongoDB values safely across BSON types before creating or updating placement data.
* Added source-map upload and release checks that preserve useful diagnostics when generated chunks or external processing take longer than expected.
* Added internal checks for configured client campaign readiness and browser-spec coverage.
## Technical details
The XP leaderboard work uses a short-lived, size-bounded snapshot keyed by the complete tenant and leaderboard scope. New XP updates advance only the affected player's revision, so a later request can refresh the changed score without rebuilding every unchanged score. If Redis, adoption, indexing, or snapshot validation is unavailable, the API uses the existing live calculation instead.
The admin and MCP image tools share one set of model names. GPT Image 2.5 Flare and Sunburst use OpenAI-style size and quality settings, while Nano Banana keeps its own image parameters. Community defaults are stored through the typed admin client and applied only when a prompt does not request a specific model.
Release tooling now uploads browser source maps before deployment, handles generated chunks, preserves failure backups, and stops waiting once the external processing handoff is complete. These changes do not alter campaign behavior, but they make production issues easier to diagnose. Security and access-control hardening is included.
## Related features
* Achievement claims
* Reward wallet
* Community leaderboards
* Ask Nudj
* AI image generation
* Brand Memory
## Contributors
**@DerekCounihan**
6 commits • +5,457 / -249 lines • 92 files
**@dchnudj**
4 commits • +2,812 / -50 lines • 22 files
**@HienH**
2 commits • +79 / -17 lines • 5 files
**@blankcode-alt**
1 commit • +443 / -22 lines • 5 files
**@nudj-changelog-bot\[bot]**
1 commit
## Release stats
| Metric | Value |
| - | - |
| Total Commits | 14 |
| Lines Added | +8,920 |
| Lines Removed | -317 |
| Files Changed | 116 |
| Complexity | Complex (3/5) |
***
*v2.526.3 deployed on September 9, 2026*
# Clearer rewards, stronger campaigns
Source: https://docs.nudj.cx/whats-new/releases/v2.530.3
Released September 10, 2026
## 🔴 Release v2.530.3
⭐⭐⭐ Complex • 23 commits • 512 files • +65,282 / -3,649 lines
Members can see points that are about to expire, active earning boosts, and clearer progress through challenges and leaderboards. Campaign managers can also tailor featured challenge and reward images directly from the Earn & Spend editor.
This release makes rewards and progress easier to understand at the moment members need them. The wallet now calls out the nearest expiring points, while every widget header can show an active points multiplier and its remaining time. Optional challenge steps no longer hold up completion, referral codes appear immediately after creation, and the widget keeps more space for the content members are viewing.
For campaign managers, featured challenge and reward cards can now use uploaded or generated artwork with guidance matched to the selected card layout. Behind the scenes, challenge XP, reward calculations, point-expiry handling, and leaderboard updates now stay aligned with the member activity that caused them.
Security and access-control hardening.
## What's new
* Help members use points before they expire with a clear wallet reminder
* Show active points multipliers and a live countdown in the widget header
* Let members skip optional challenge steps while keeping completion and rewards accurate
* Keep XP leaderboards and challenge progress aligned with newly earned activity
* Give campaign managers layout-aware image controls for featured challenges and rewards
## For platform administrators
* **Featured challenge and reward artwork** – Upload, replace, or generate card images from the Earn & Spend editor, with crop guidance for the selected layout.
* Check: a live Earn & Spend widget in each card layout you use
* **Shared AI image choices** – Keep the image models shown in community chat aligned with the models available to connected image-generation tools.
## For community members
* **Expiring points reminder** – See the amount of points expiring soon and the time remaining directly in the wallet.
* Check: a member wallet with points expiring within seven days
* **Active points boost countdown** – See the current multiplier and remaining time in compact, classic, and hero widget headers.
* Check: the widget header while a points boost is active
* **Optional challenge steps** – Skip optional actions without being blocked from completing the challenge.
* **More accurate challenge rewards** – Challenge progress uses the action values and active reward rules that members actually completed.
* **Current XP leaderboards** – Newly earned XP reaches member rankings without waiting for a full leaderboard rebuild.
* **Instant referral-code updates** – See a newly created referral code as soon as it is ready to share.
* **Cleaner widget navigation** – The hero header collapses on inner pages and returns to its full state on the home view.
* **Predictable game scoring** – Memory games respect a configured zero time bonus instead of adding an unintended bonus.
* **Reliable rewards around boost expiry** – Reward and XP actions continue cleanly when a points boost ends.
## Security
Security and access-control hardening.
## Usage examples
### Make featured cards fit the campaign design
Open the Earn & Spend editor, select a featured challenge or reward, and upload or generate its image. Nudj shows the recommended shape for the selected card layout, so the artwork is ready for the way members will see it.
### Help members spend expiring points
Give points an expiry date. Members will see the nearest expiring balance in their wallet, with an urgent treatment when the date is within seven days.
### Make a challenge more flexible
Mark an action as optional when members should be able to skip it. The challenge can still require all non-optional actions, while an all-optional challenge requires at least one completed action.
## Apps updated
✓ Updated – wallet expiry reminders, active boost visibility, referral refreshes, and smoother widget navigation
✓ Updated – challenge completion, reward accuracy, point expiry, and leaderboard freshness
✓ Updated – layout-aware featured challenge and reward image editing
✓ Updated – shared image model choices and more consistent image generation workflows
✓ Updated – memory-game time bonus handling
— No changes
## Detailed changes
* Added a localized wallet notice for the nearest future-dated point expiry, capped to the member's available balance and marked urgent within seven days.
* Added active points boost chips with multiplier and remaining-time countdowns to all widget header styles.
* Collapsed the hero header on widget sub-pages and restored the expanded home view when members return home.
* Refetched referral codes after creation so the new code and sharing state appear without a manual refresh.
* Reused the shared effect-time formatting for profile boost details.
* Let optional actions be skipped during challenge completion while preserving meaningful completion rules for all-optional challenges.
* Calculated challenge XP progress from action-level configuration and original XP values when boosts or tier multipliers are present.
* Cleared expired point and XP effects within the related write flow so reward actions do not race stale boost cleanup.
* Stamped leaderboard XP revisions when awards are recorded, allowing changed member scores to be picked up without rebuilding unchanged scores.
* Added accurate point-expiry event coverage for scheduled expiry processing.
* Security and access-control hardening.
* Replaced the featured-content image URL field with an image uploader for featured challenges and rewards.
* Added layout-specific crop ratios, recommended dimensions, and image-generation prompts for compact, promotional, grid, banner, and carousel cards.
* Preserved explicit image removal and fallback to the item's existing artwork when editing a featured card.
* Kept community image-model settings and connected image tools on the same model registry.
* Derived image model names, labels, guidance, defaults, and generation/edit mappings from the shared model registry.
* Kept model-specific image size, quality, aspect-ratio, and multi-reference behavior consistent across image generation and editing.
* Improved image-model input normalization so supported requests resolve to the intended model.
* Preserved a configured zero memory-game time bonus instead of treating zero as the default bonus multiplier.
* Added translated wallet expiry copy across the supported design-system locales.
* Added the shared AI image-model registry and referral community contract types used by the applications and tools.
* Added verified game-integration guidance and examples for teams connecting games to Nudj.
* Added focused coverage for expiring points, active boosts, optional actions, challenge XP ratios, leaderboard revisions, expired effects, referral refreshes, and featured-card image guidance.
* Kept source-map processing from blocking deployment completion when external processing is slow or unavailable.
## Technical details
Leaderboard XP revisions are stamped when an XP award is written. Readers can then refresh the changed member while keeping unchanged scores in the shared snapshot. Challenge metadata now reads action-level XP and original pre-multiplier values, and point and XP writes clear expired effects inside the related transaction. The admin image picker and MCP image tool now consume one registry for model names, labels, defaults, guidance, and image-generation behavior.
Security and access-control hardening.
## Related features
* Reward wallet
* Points expiry
* Points boosts
* Challenges and optional actions
* Community leaderboards
* Referral programs
* Earn & Spend widget cards
* AI image generation
* Memory games
## Contributors
**@DerekCounihan**
14 commits • +62,188 / -3,510 lines • 456 files
**@blankcode-alt**
4 commits • +1,651 / -94 lines • 46 files
**@HienH**
2 commits • +1,251 / -44 lines • 16 files
**@dchnudj**
2 commits • +261 / -261 lines • 4 files
**@nudj-changelog-bot\[bot]**
1 commit
## Release stats
| Metric | Value |
| - | - |
| Total Commits | 23 |
| Lines Added | +65,282 |
| Lines Removed | -3,649 |
| Files Changed | 512 |
| Complexity | Complex (3/5) |
***
*v2.530.3 deployed on September 10, 2026*
# Brand every widget detail
Source: https://docs.nudj.cx/whats-new/releases/v2.533.0
Released September 11, 2026
## 🔴 Release v2.533.0
⭐⭐ Moderate • 7 commits • 137 files • +7,888 / -856 lines
Campaign teams can now style the widget by clicking the element they want to change, tailor section button copy, and keep light and dark themes in step. Members get consistent renamed point labels across languages and can make their cookie choice inside the community rules flow.
This release makes widget setup much easier to judge and much faster to adjust. Brand Kit previews now take you straight from a widget element to its matching colour control, while Ask Nudj's style mode lets you click any supported element, try a new colour, and see the result immediately before saving it.
It also gives campaigns more control over the words members see. Teams can name section buttons in the language of the campaign, those labels render across the widget's supported layouts, and renamed points no longer fall back to the default language. When first-party cookie consent is required, members can answer that question inside the community rules dialog instead of working through a separate onboarding step.
## What's new
* Click a widget element in Brand Kit to find and edit its matching brand colour
* Use Ask Nudj style mode to change light or dark widget colours with a live preview, reset, and save flow
* Give section buttons campaign-specific labels for earning, spending, referrals, streaks, leaderboards, games, achievements, and receipt scanning
* Keep custom point names, plurals, and abbreviations when members switch to a non-default language
* Let members choose cookie preferences inside the community rules dialog when consent is required
## For platform administrators
* **Click-to-edit brand colours** – Select an element in the Brand Kit widget preview to open its matching core or advanced colour control.
* Check: the light and dark widget previews, including the colour controls you use most often
* **Ask Nudj style mode** – Click a rendered widget element, choose the colour role to edit, preview the change live, then save, reset, or cancel it without leaving the preview.
* Check: the Ask Nudj widget preview in both light and dark modes
* **Editable section button labels** – Set the main button copy for Earn & Spend, Earn, Spend, Achievements, Leaderboard, Daily Game, Streak, Referral, and Receipt Scanning sections.
* Check: the live widget preview and the published widget for each section whose copy changed
* **Consistent point naming controls** – Edit the point name, plural name, and abbreviation from one set of settings values, with the chosen values reflected in the widget preview.
* Check: the points settings preview after changing the singular, plural, and abbreviation
## For community members
* **Cookie choices during community entry** – When first-party consent is required, choose to accept, reject, or manage cookies inside the rules dialog before continuing.
* Check: first-time entry to a community where cookie consent is enabled
* **Renamed points in every language** – Keep the community's chosen point name, plural, and abbreviation when viewing the widget in a non-default language.
* Check: the widget in a non-default language after custom point names are saved
## Apps updated
✓ Updated – integrated cookie choices, custom widget button copy, and consistent point names across languages
No changes
✓ Updated – click-to-edit Brand Kit colours, Ask Nudj style mode, widget copy controls, and points naming
✓ Updated – section button labels in widget panel configuration
No changes
No changes
No changes
## Usage examples
### Match button copy to a campaign
Open Widget Settings or Ask Nudj, edit the section header, and give its primary button a label that matches the campaign. For a referral campaign, you might change the default button to `Invite a friend`.
### Tune a widget colour from the preview
Open Brand Kit and select the widget colour editor. Click the part of the preview you want to change, choose the light or dark palette, adjust the colour, and save when the preview looks right. In Ask Nudj, turn on style mode for the same click-to-edit workflow across supported widget elements.
## Technical details
* Added the member-facing cookie choice card to the community rules flow when first-party consent is required, with accept, reject, settings, and keyboard-friendly focus coordination.
* Kept the rules agreement locked until the cookie decision is made, then moves the agreement and confirmation controls into view on smaller screens.
* Passed custom section button labels through the populated, empty, loading, and error states that expose those buttons, while preserving accessible names.
* Preserved configured point names, plural names, and abbreviations when the widget switches to a non-default locale.
* Added the preview-only colour-picking and style-mode message handling used by admin previews.
* Added click-to-edit colour picking to Brand Kit previews. The preview identifies the selected colour role and opens the matching basic or advanced colour field, including the selected light or dark mode.
* Added Ask Nudj style mode with live draft updates, token selection, save and cancel behavior, reset-to-default controls, and automatic readability adjustments for foreground colours.
* Shared section header editing between Widget Settings and Ask Nudj, including visibility, title, description, and supported primary button labels.
* Made points naming read from and write to the value that takes precedence across the widget configuration and language configuration.
* Added `ctaText` to the panel read and update contract for sections that have a primary button, with validation for unsupported sections and null reset behavior.
* Extended the shared model, generated API client, and Shopify widget configuration types so the section copy shape stays aligned across consumers.
* Added translated consent, style-mode, and colour-update messages across the supported design-system locales.
* Carried recent nightly test results into the lane team digest and added coverage for the digest's run, issue, and assignment handling.
* Kept authenticated nightly smoke recordings on access-controlled run artifacts and narrowed the nightly report to its durable failure record.
## Related features
* Widget customisation
* Brand Kit
* Ask Nudj
* Community Points
* Community rules
* Localisation
## Contributors
**@DerekCounihan**
3 commits • +5,912 / -614 lines • 113 files
**@blankcode-alt**
2 commits • +467 / -15 lines • 9 files
**@dchnudj**
2 commits • +1,509 / -227 lines • 28 files
## Release stats
| Metric | Value |
| - | - |
| Total Commits | 7 |
| Lines Added | +7,888 |
| Lines Removed | -856 |
| Files Changed | 137 |
| Complexity | Moderate (2/5) |
***
*v2.533.0 deployed on September 11, 2026*
# Straight to the win
Source: https://docs.nudj.cx/whats-new/releases/v2.535.18
Released September 15, 2026
## 🔴 Release v2.535.18
⭐⭐⭐ Complex • 49 commits • 1,003 files • +27,808 / -103,500 lines
Campaign teams can now send members straight to a widget section or a specific challenge, reward, achievement, or game. Members get a more rewarding claim moment, a launcher badge that includes unread notifications, smoother game detail pages, and their community's own points name everywhere. Admins get clearer period data, dependable community selection, and a preview experience that matches the phone.
This release shortens the distance between a campaign message and the action you want a member to take. An email, button, or game screen can open the exact place in the embedded widget, even when the member needs to sign in first. The widget checks that the requested content belongs in that community and retries temporary lookups so members land in the right place.
Achievement claims now feel like a payoff. Members see a larger badge, a count-up for the points they earned, confetti, and a short completion animation. The launcher badge also counts unread inbox notifications, so members have one clear signal when something new is waiting. Points are now labelled with the name your community configured, right across the member experience and in every supported language.
Campaign teams get more dependable previews, community switching, and colour review. Leaderboard exclusions files now carry the period they belong to, and the points expiry card states clearly when your organisation manages points centrally. Game detail pages use the smoother, image-matched layout by default. Security and access-control hardening.
## What's new
* Open a widget section or a specific member item from a campaign button or link
* Turn achievement claims into a clear celebration with animated points and confetti
* Show claimable achievements and unread notifications in one launcher badge
* Keep member-facing wording in your community's own points name
* Show leaderboard exclusions files dated to the period they came from
## For platform administrators
* **Public widget navigation** – Send members to a specific widget section or item from a campaign CTA, including challenges, rewards, achievements, and games.
* Check: the campaign links or buttons that open your embedded widget
* **Current leaderboard distribution view** – Open a leaderboard's distribution page on the current period and load the selected leaderboard directly.
* **Reliable community switching** – Move between communities without an old selection being restored after a refresh or navigation.
* **Aligned preview panes** – Keep the phone preview positioned consistently across Brand Kit and other admin preview panels.
* Check: the previews you use for mobile widget and theme review
* **Visible accessibility review** – Bring colour accessibility findings into view when a theme has contrast issues, with a responsive colour layout for narrower editors.
* Check: light and dark theme colour editing when a contrast warning appears
* **Transparent AI artwork** – Generate PNG artwork with a real transparent background on supported ChatGPT ImageGen models, avoiding a second background-removal pass that can soften edges.
* Check: a badge or achievement image generated through Ask Nudj
* **Dated leaderboard exclusions file** – Download a period's exclusion template with the period's first and last day already filled in, so an exclusion applies to that period only.
* Check: an exclusions template downloaded from a leaderboard period
* **Clearer points expiry settings** – Points expiry shows the switch as unavailable while the organisation's points settings are being checked, and warns when expiry set at community level will not be applied.
* **Clean create-community drafts** – A saved draft no longer reappears in the form after you create the community or clear the draft.
## For community members
* **Celebration claim modal** – See the achievement badge arrive at a larger size, watch the points count up, and get confetti when you claim.
* **Unified launcher badge** – See a single count for claimable achievements and unread inbox notifications, including after closing the widget.
* **Your community's points name** – Read your community's own points name wherever points appear, including balances, claim buttons, and screen-reader labels.
* Check: the points wording across your member pages
* **Smoother game detail pages** – Open game details in the parallax layout by default, with a colour transition that matches the artwork while it loads.
* Check: a branded game detail page on desktop and mobile
* **Fresh XP rankings** – See pending XP included in leaderboard results after concurrent activity settles.
* **Return to the action** – When enabled for your organisation, return to the action page after following an external-link action instead of losing your place.
* **Smoother sign-in handoff** – Keep your widget session on track when simultaneous sign-in requests arrive.
## Usage examples
### Open a specific place in the widget
Use the public embed API to connect a campaign button to the right member experience. Section panels do not need an item ID; item panels do.
```js theme={null}
window.nudj("open", { panel: "streak" });
window.nudj("open", { panel: "reward", entityId: "<24-character-id>" });
window.nudj("navigate", { panel: "challenge", entityId: "<24-character-id>" });
```
If the member is signed out, Nudj keeps the approved target and opens it after sign-in. If a section is disabled for the community, the request falls back to its view when one was supplied.
### Link a campaign CTA to a member's reward
Add a button to an email, campaign page, or authenticated game screen that calls `open` with a reward ID. Members can review the reward in the Spend view without first searching through the widget.
## Apps updated
✓ Updated – widget deep links, achievement celebrations, unread launcher counts, points naming, and smoother game details
✓ Updated – leaderboard refreshes now adopt pending XP after a lease wait
✓ Updated – dated exclusions files, clearer points expiry, dependable community selection, and aligned previews
✓ Updated – native transparent-background handling for supported AI image models
No changes
No changes
No changes
## Detailed changes
* Extended the public embed API so `open` and `navigate` can target widget views, sections, or individual challenges, rewards, achievements, and games.
* Queued the latest navigation request until the widget is ready, then replayed approved targets after sign-in when needed.
* Kept item lookups community-scoped and aligned with the lists members can actually see, including paginated achievements and transient lookup retries.
* Fell back to the requested view when a target section is unavailable for the community, without prompting a signed-out member to authenticate for a destination that cannot open.
* Returned members to the action page after configured external-link actions.
* Kept the embed launcher badge in sync with both claimable achievements and unread inbox notifications, including when the panel closes.
* Recovered the user link flow when two simultaneous registrations arrive for the same member, and kept anonymous identities anonymous on a repeat link.
* Security and access-control hardening.
* Read the community's configured points name once and reuse it across balances, wallet statistics, reward cards, claim buttons, drawers, and screen-reader labels.
* Fell back to the standard wording when no custom name is configured, or when the configured name is the untranslated default.
* Added named wording variants for every supported language, including singular and plural forms.
* Reworked the achievement claim modal into a shared celebration with a larger image, badge glow, animated points counter, confetti, sound support, and a short exit animation.
* Kept admin and link previews read-only while still showing the celebration treatment.
* Made parallax the default game detail presentation, with smoother hero sizing, image-matched transition colours, brand-colour fallbacks, and lighter overlays while artwork loads.
* Sampled the full hero artwork for its dominant colour and started the transition from the community's brand colour, so dark artwork no longer turns the surface grey or black.
* Adopted pending XP after a leaderboard refresh waits for another refresh owner, with one additional adoption attempt when XP arrives during snapshot creation.
* Loaded the selected leaderboard configuration directly on its distribution page and defaulted the period selector to the current period.
* Dated a downloaded exclusions template to the period on screen, in the board's own timezone, so an uploaded exclusion stays inside that period; an open board leaves its last day blank, and clearing both dates makes a row permanent.
* Removed stale community restoration from the admin context so the selected community remains the one the current session requested, and surfaced a community lookup failure instead of rendering without community data.
* Kept phone previews aligned across admin preview panes and automatically revealed contrast findings when theme colours need attention.
* Stopped the points expiry card from claiming an organisation setting was applied when the organisation's points configuration could not be read.
* Guarded the create-community autosave against a pending save restoring a draft that was already cleared.
* Sent native transparency settings to supported ChatGPT ImageGen endpoints and kept background removal for models that need it.
* Preserved PNG output for transparent images so badge and achievement artwork keeps real alpha rather than a painted checkerboard.
* Centralised the AI image model registry used by shared models, admin image flows, and MCP image generation, and recorded the image payloads in the MCP replay corpus.
* Validated reward tag and campaign references as organisation IDs on both create and update.
* Added tiered exploration achievement guidance and proof examples to the game integration documentation.
* Added a permanent benchmark community and repeatable seed data for testing query behaviour at large scale.
* Limited development deployments to affected applications and added lighter local pull-request validation to shorten feedback loops.
* Added a CommonJS entry point to the shared Redis package so the end-to-end seed runner can load it directly, without a build step or a shim.
* Security and access-control hardening.
## Technical details
The widget navigation contract now carries an optional `view`, `panel`, and `entityId`. The loader queues one latest request before iframe readiness. The widget validates the target, checks community feature availability, applies the same visibility rules as its rendered lists, and preserves approved targets across sign-in. Item panels never claim, complete, or purchase anything as part of navigation.
Leaderboard reads now adopt pending XP after lease acquisition and retry adoption if XP lands between adoption and snapshot creation. The admin distribution page reads a leaderboard configuration by its ID instead of loading a page of configurations and searching locally.
Reward create and update inputs validate `tags` and `campaigns` as organisation IDs. Points naming resolves from the merged community theme through a single helper, so every member surface reads the same label. Game detail pages default to parallax, and hero colour extraction samples the whole artwork.
AI image generation now uses native alpha on supported ChatGPT ImageGen models and keeps the existing background-removal path for other models. Transparent output is mirrored as PNG. Shared model metadata keeps the admin picker and MCP tool aligned.
Internal performance work added a large benchmark community for query analysis and affected-app development deployments. Security and access-control hardening.
## Related features
* Embedded widget
* Widget deep links
* Achievement claims
* In-app notifications
* Community leaderboards
* Game detail pages
* Points and XP naming
* AI image generation
* Game integrations
## Contributors
**@DerekCounihan**
37 commits • +24,492 / -102,593 lines • 950 files
**@dchnudj**
5 commits • +1,323 / -812 lines • 25 files
**@blankcode-alt**
4 commits • +1,470 / -106 lines • 45 files
**@HienH**
1 commit • +228 / -28 lines • 6 files
**@nudj-changelog-bot\[bot]**
2 commits
## Release stats
| Metric | Value |
| - | - |
| Total Commits | 49 |
| Lines Added | +27,808 |
| Lines Removed | -103,500 |
| Files Changed | 1,003 |
| Complexity | ⭐⭐⭐ Complex (3/5) |
***
*v2.535.18 deployed on September 15, 2026*
# Direct paths to more wins
Source: https://docs.nudj.cx/whats-new/releases/v2.535.2
Released September 14, 2026
## 🔴 Release v2.535.2
⭐⭐⭐ Complex • 31 commits • 765 files • +13,949 / -91,746 lines
Campaign teams can now send members straight to a widget section or a specific challenge, reward, achievement, or game. Members also get a more rewarding claim moment, a launcher badge that includes unread notifications, smoother game detail pages, and fresher leaderboard progress.
This release shortens the distance between a campaign message and the action you want a member to take. An email, button, or game screen can open the exact place in the embedded widget, even when the member needs to sign in first. The widget checks that the requested content belongs in that community and retries temporary lookups so members land in the right place.
Achievement claims now feel like a payoff. Members see a larger badge, a count-up for the points they earned, confetti, and a short completion animation. The launcher badge also counts unread inbox notifications, so members have one clear signal when something new is waiting.
Campaign teams get more dependable previews and community switching, while game detail pages use a smoother, image-matched layout by default. Leaderboards also pick up XP that arrived while a refresh was waiting, keeping rankings closer to the activity that produced them. Security and access-control hardening.
## What's new
* Open a widget section or a specific member item from a campaign button or link
* Turn achievement claims into a clear celebration with animated points and confetti
* Show claimable achievements and unread notifications in one launcher badge
* Create clean transparent badge artwork with supported AI image models
* Keep game visuals smooth and leaderboard XP current during busy activity
## For platform administrators
* **Public widget navigation** – Send members to a specific widget section or item from a campaign CTA, including challenges, rewards, achievements, and games.
* Check: the campaign links or buttons that open your embedded widget
* **Current leaderboard distribution view** – Open a leaderboard's distribution page on the current period and load the selected leaderboard directly.
* **Reliable community switching** – Move between communities without an old selection being restored after a refresh or navigation.
* **Aligned preview panes** – Keep the phone preview positioned consistently across Brand Kit and other admin preview panels.
* Check: the previews you use for mobile widget and theme review
* **Visible accessibility review** – Bring colour accessibility findings into view when a theme has contrast issues, with a responsive colour layout for narrower editors.
* Check: light and dark theme colour editing when a contrast warning appears
* **Transparent AI artwork** – Generate PNG artwork with a real transparent background on supported ChatGPT ImageGen models, avoiding a second background-removal pass that can soften edges.
* Check: a badge or achievement image generated through Ask Nudj
## For community members
* **Celebration claim modal** – See the achievement badge arrive at a larger size, watch the points count up, and get confetti when you claim.
* **Unified launcher badge** – See a single count for claimable achievements and unread inbox notifications, including after closing the widget.
* **Smoother game detail pages** – Open game details in the parallax layout by default, with a colour transition that matches the artwork while it loads.
* Check: a branded game detail page on desktop and mobile
* **Fresh XP rankings** – See pending XP included in leaderboard results after concurrent activity settles.
* **Return to the action** – When enabled for your organisation, return to the action page after following an external-link action instead of losing your place.
* **Smoother sign-in handoff** – Keep your widget session on track when simultaneous sign-in requests arrive.
## Usage examples
### Open a specific place in the widget
Use the public embed API to connect a campaign button to the right member experience. Section panels do not need an item ID; item panels do.
```js theme={null}
window.nudj("open", { panel: "streak" });
window.nudj("open", { panel: "reward", entityId: "<24-character-id>" });
window.nudj("navigate", { panel: "challenge", entityId: "<24-character-id>" });
```
If the member is signed out, Nudj keeps the approved target and opens it after sign-in. If a section is disabled for the community, the request falls back to its view when one was supplied.
### Link a campaign CTA to a member's reward
Add a button to an email, campaign page, or authenticated game screen that calls `open` with a reward ID. Members can review the reward in the Spend view without first searching through the widget.
## Apps updated
✓ Updated – widget deep links, achievement celebrations, unread launcher counts, smoother game details, and external-action return flow
✓ Updated – leaderboard refreshes now adopt pending XP after a lease wait
✓ Updated – dependable community selection, aligned previews, accessibility review, and current leaderboard distribution views
✓ Updated – native transparent-background handling for supported AI image models
No changes
No changes
No changes
## Detailed changes
* Extended the public embed API so `open` and `navigate` can target widget views, sections, or individual challenges, rewards, achievements, and games.
* Queued the latest navigation request until the widget is ready, then replayed approved targets after sign-in when needed.
* Kept item lookups community-scoped and aligned with the lists members can actually see, including paginated achievements and transient lookup retries.
* Fell back to the requested view when a target section is unavailable for the community, without prompting a signed-out member to authenticate for a destination that cannot open.
* Returned members to the action page after configured external-link actions.
* Kept the embed launcher badge in sync with both claimable achievements and unread inbox notifications, including when the panel closes.
* Security and access-control hardening.
* Reworked the achievement claim modal into a shared celebration with a larger image, badge glow, animated points counter, confetti, sound support, and a short exit animation.
* Kept admin and link previews read-only while still showing the celebration treatment.
* Made parallax the default game detail presentation, with smoother hero sizing, image-matched transition colours, brand-colour fallbacks, and lighter overlays while artwork loads.
* Adopted pending XP after a leaderboard refresh waits for another refresh owner, with one additional adoption attempt when XP arrives during snapshot creation.
* Loaded the selected leaderboard configuration directly on its distribution page and defaulted the period selector to the current period.
* Removed stale community restoration from the admin context so the selected community remains the one the current session requested.
* Kept phone previews aligned across admin preview panes and automatically revealed contrast findings when theme colours need attention.
* Sent native transparency settings to supported ChatGPT ImageGen endpoints and kept background removal for models that need it.
* Preserved PNG output for transparent images so badge and achievement artwork keeps real alpha rather than a painted checkerboard.
* Centralised the AI image model registry used by shared models, admin image flows, and MCP image generation.
* Added tiered exploration achievement guidance and proof examples to the game integration documentation.
* Added a permanent benchmark community and repeatable seed data for testing query behaviour at large scale.
* Limited development deployments to affected applications and added lighter local pull-request validation to shorten feedback loops.
* Security and access-control hardening.
## Technical details
The widget navigation contract now carries an optional `view`, `panel`, and `entityId`. The loader queues one latest request before iframe readiness. The widget validates the target, checks community feature availability, applies the same visibility rules as its rendered lists, and preserves approved targets across sign-in. Item panels never claim, complete, or purchase anything as part of navigation.
Leaderboard reads now adopt pending XP after lease acquisition and retry adoption if XP lands between adoption and snapshot creation. The admin distribution page also reads a leaderboard configuration by its ID instead of loading a page of configurations and searching locally.
AI image generation now uses native alpha on supported ChatGPT ImageGen models and keeps the existing background-removal path for other models. Transparent output is mirrored as PNG. Shared model metadata keeps the admin picker and MCP tool aligned.
Internal performance work added a large benchmark community for query analysis and affected-app development deployments. Security and access-control hardening.
## Related features
* Embedded widget
* Widget deep links
* Achievement claims
* In-app notifications
* Community leaderboards
* Game detail pages
* AI image generation
* Game integrations
## Contributors
**@DerekCounihan**
25 commits • +12,857 / -91,604 lines • 693 files
**@dchnudj**
3 commits • +573 / -69 lines • 10 files
**@HienH**
1 commit • +228 / -28 lines • 6 files
**@blankcode-alt**
1 commit • +137 / -27 lines • 6 files
**@nudj-changelog-bot\[bot]**
1 commit
## Release stats
| Metric | Value |
| - | - |
| Total Commits | 31 |
| Lines Added | +13,949 |
| Lines Removed | -91,746 |
| Files Changed | 765 |
| Complexity | ⭐⭐⭐ Complex (3/5) |
***
*v2.535.2 deployed on September 14, 2026*