AURA — User Guide

Your Hybrid AI Label Manager

How to run your label from one dashboard.


Table of Contents

  1. Getting Started
  2. How AURA Is Built
  3. The Dashboard
  4. Managing Your Artist Roster
  5. Release Pipeline
  6. Rights & Contracts
  7. Demo Inbox
  8. Promo Campaigns
  9. Calendar & Tasks
  10. Revenue Tracking
  11. AI Assistant
  12. Content Engine
  13. Settings
  14. Security & Access
  15. Quick Reference

1. Getting Started

Signing In

  1. Navigate to https://auralabels.app
  2. Enter your username and password
  3. You'll land on the Dashboard

Your session lasts 7 days (or 5 minutes if "Remember me" was unchecked). After that, you'll be redirected to sign in again.

The Interface

AURA has three main regions:

Surface Route What you do there
Dashboard / Today's priorities at a glance
AI Assistant /ai Generate copy and strategy with AI
Artists /artists Manage your roster
Releases /releases Track your release pipeline
Contracts /contracts Manage rights and agreements
Demo Inbox /demos Review artist submissions (auto-ingested via email webhook)
Settings /settings Configure AI Router, data export/import, team access
Landing Page / (public) Public — product info, features, Notify Me
Login /login (public) Authenticate to access your label
Showcase /showcase (public) nk-lib component gallery
Privacy Policy /privacy (public) Legal — data handling
Terms of Service /terms (public) Terms of use
Investor Deck /investors (public) Investor presentation

2. How AURA Is Built

System Architecture

AURA has five layers that work together, routed through a Cloudflare Workers API:

┌────────────────────────────────────────────────────────────────┐
│                      React SPA (nk-lib UI)                      │
│                      auralabels.app                             │
└──────────────────────────┬─────────────────────────────────────┘
                           │ JWT token
                           ▼
┌────────────────────────────────────────────────────────────────┐
│              Cloudflare Workers API (edge)                      │
│  ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌────────────────┐ │
│  │ Artists   │ │ Releases  │ │ Contracts │ │ AI (provider   │ │
│  │ CRUD      │ │ CRUD      │ │ CRUD      │ │  agnostic)     │ │
│  └───────────┘ └───────────┘ └───────────┘ └────────────────┘ │
│  ┌───────────┐ ┌───────────┐ ┌───────────┐                    │
│  │ Demos     │ │ Files/R2  │ │ Webhook   │                    │
│  │ CRUD      │ │ storage   │ │ (public)  │                    │
│  └───────────┘ └───────────┘ └───────────┘                    │
└──────────────────────────┬─────────────────────────────────────┘
                           │
              ┌────────────┼────────────┐
              ▼            ▼            ▼
┌─────────────────┐ ┌──────────┐ ┌──────────┐
│  Neon Postgres   │ │Cloudflare│ │Cloudflare│
│  (Drizzle ORM)   │ │ KV       │ │ R2       │
│  Multi-tenant    │ │ (cache,  │ │ (files,  │
│  data storage    │ │  limits) │ │ artwork) │
└──────────────────┘ └──────────┘ └──────────┘

Route Map

Surface API Endpoints
Dashboard /api/artists, /api/releases, /api/contracts, /api/demos
Artists /api/artists
Releases /api/releases
Contracts /api/contracts, /api/files
Demo Inbox /api/demos, /api/webhook/:uuid (public intake)
AI Assistant /api/ai/generate, /api/ai/chat
Settings /api/admin (export, import, clear data)

Demo Ingestion Flow

Demos arrive automatically via Elastic Email webhook — no Make.com or external services needed:

Artist sends email → Elastic Email processes →
  POST /api/webhook/:uuid?secret=WEBHOOK_SECRET
    
  1. Parse sender email, subject, body, attachments
  2. Extract track title from subject patterns
  3. Upload MP3 files to Cloudflare R2 (auto-stored)
  4. Insert into Demos table with attachment URL
  5. Response: { status: "ok", id, attachmentUrl }

File Storage

Files (artwork, contract PDFs, demo MP3s) are stored in Cloudflare R2 and served through /api/files/:key. Uploads require authentication; served files are publicly cacheable with a 1-year TTL.

Security

Layer What It Does
JWT Authentication HS256-signed tokens with 24h expiry. Tokens carry username, role, and tenantId.
Bcrypt Hashing Timing-safe password comparison prevents username enumeration attacks.
Rate Limiting IP-based rate limiting on login (20 attempts / 15 min).
Multi-Tenant Isolation Every query is scoped by tenantId. Super admins see all; label users see only their data.
Webhook Secret Timing-safe XOR verification on incoming demo webhooks.

3. The Dashboard

The Dashboard is your operational cockpit. It shows everything that needs your attention today in a vertical stack of collapsible card sections.

What You See

All sections use NkReveal for animated expand/collapse — keep what matters open, collapse the rest.


4. Managing Your Artist Roster

Viewing Your Roster

Navigate to Artists (/artists). Each artist card shows name, avatar (colored initial), genre tags, and contract status.

Adding an Artist

  1. Click + Add Artist (top-right)
  2. Fill in: Name, Instagram handle, Bio
  3. Upload an avatar photo (optional)
  4. Click Save

Editing an Artist

  1. Click an artist from the list to open their detail panel
  2. Edit any field
  3. Click Save

5. Release Pipeline

Viewing Releases

Navigate to Releases (/releases). Each release shows catalog number, title, artist, type (EP / Album / Single / Compilation), release date, and artwork thumbnail.

Creating a Release

  1. Click + New Release
  2. Enter: Title, Catalog Number, Type, Artist(s), Release Date
  3. Upload artwork (optional)
  4. Click Save

Release Types

Type Description
EP Extended play — 2-5 tracks
Album Full-length release — 6+ tracks
Single Single track release
Compilation Various artists collection

6. Rights & Contracts

Viewing Contracts

Navigate to Contracts (/contracts). Each contract shows artist, title, status (draft / signed / expired), and linked release.

Creating a Contract

  1. Click + New Contract
  2. Select the artist and link a release (optional)
  3. Set title and terms
  4. Upload the signed PDF (optional)
  5. Click Save

7. Demo Inbox

How Demos Arrive

Demos arrive automatically via the public webhook endpoint (/api/webhook/:uuid) connected to Elastic Email. When an artist emails the label, Elastic Email forwards the message to AURA which:

No Make.com, no external configuration — everything happens in the Worker.

Reviewing Demos

  1. Navigate to Demo Inbox (/demos)
  2. Use the segmented filter tabs to filter by status: New Listening Interested Rejected Accepted
  3. Search by email, subject, or track title
  4. Click a demo to open its detail panel
  5. Listen to the MP3 attachment directly in the browser (inline audio player)
  6. Update the Status dropdown as you progress through your review

Demo Statuses

Status Meaning Next Step
New Unreviewed Open, listen, evaluate
Listening Currently evaluating Finish your review
Interested Want to follow up Contact the artist
Rejected Not a fit Deleted permanently
Accepted Signing the artist Create artist profile + contract

Demo Workflow

  1. New → open detail, listen to the MP3 preview
  2. If promising → Listening
  3. If you want to sign → Interested → reach out to artist
  4. If you sign them → Accepted → create Artist profile + Contract
  5. If not a fit → Rejected

8. Promo Campaigns

Navigate to Promo Campaigns (/promo) to plan and track marketing campaigns for your releases.


9. Calendar & Tasks

Navigate to Calendar (/calendar) to manage tasks and deadlines across your label.


10. Revenue Tracking

Navigate to Revenue (/revenue) to track earnings, payouts, and performance across artists and releases.


11. AI Assistant

What It Does

The AI Assistant generates copy and strategy wired to your actual label data.

Using the AI Assistant

  1. Navigate to AI Assistant (/ai)
  2. Type your prompt — be specific:
  3. Click Generate
  4. Review, copy, edit, or regenerate

AI Router

In Settings, you can configure which AI provider to use. AURA supports: OpenRouter (default), OpenAI, Anthropic, Groq, Together, DeepSeek, Google AI Studio, and Workers AI (fallback). Your API key is stored server-side, never exposed to the frontend.


12. Content Engine

The Content Engine generates platform-specific content (Instagram captions, Spotify bios, press releases, etc.) with automatic character limit enforcement.


13. Settings

Accessing Settings

Navigate to Settings (/settings). Configure your label.

What You Can Configure

Signing Out

Use the User Menu (top-right) or Settings → Session card.


14. Security & Access

Authentication

Data Isolation

Every label's data is partitioned by tenantId. Users only see their own label's data. Super admins can access all tenants.

File Storage


15. Quick Reference

Status Overview

Entity Statuses
Artists — (single entity, no workflow status)
Releases — (single entity, release date tracked)
Contracts Draft, Signed, Expired
Demos NewListeningInterestedRejected / Accepted

Getting Help


AURA — Your Hybrid AI Label Manager. Built with nk-lib design system.

Brand mark: orange arc + geometric A. Type: Space Grotesk + Geist.