How CreatorContent works

User procedures for creators, listeners, and staff — aligned with what the dev site supports today.

Last reviewed: July 11, 2026 · Technical docs

Each procedure below maps to a user journey from our product plan. Status labels reflect the current build on dev.creatorcontent.net, not the full long-term vision.

Status legend
  • Works today You can complete this in the UI now
  • Partial Core path works; some steps missing or simplified
  • Planned Not built yet on dev

Roles

Creator

Owns one or more publications (shows). Uses Studio to publish posts and episodes, set paywalls, and view subscribers.

Listener / reader

Follows shows for free or pays for a subscription tier. Uses Account for your on-site Feed, following, and paid memberships.

Platform admin

Staff with is_admin. Uses Admin for users, publications, comped subs, and audit — not the same as Studio.

User procedures

Works today Creator

Journey 1 — Creator launches an audio-first publication

  1. Register and log in.
  2. Create a publication (name, slug, branding).
  3. In Studio → Episodes, add an episode (title; publish as free).
  4. Share the publication home URL and public podcast RSS.
  5. Optional later: enable monetization in Settings, mark episodes paid, share the pricing page.

Dev site notes: Studio opens at Publications → Open a show. Wizard: /studio?new=1 (5 steps). Episodes: Quill editor, save draft, then upload audio (MP3/M4A). Requires php artisan storage:link on the server. Public RSS: /feed/{slug}.

Works today Creator

Journey 2 — Creator runs a newsletter + companion podcast

  1. Use a mixed-type publication (posts + episodes).
  2. Studio → Posts: create and publish a post.
  3. Studio → Episodes: publish a related episode.
  4. Listeners see both on the publication home; paywall rules apply per item.

Dev site notes: Posts and episodes use Quill for body/summary/show notes. Schedule with a future date/time (cron: content:publish-scheduled). Posts can link a companion episode in Studio. Pin items to float them in the feed, or mark them Featured for the homepage module. Assign one category and multiple tags from Studio. Comments on published posts/episodes when enabled.

Works today Listener

Journey 3 — Listener discovers content and pays

  1. Open an episode or post from a shared link.
  2. If locked: read/hear preview, open pricing.
  3. Subscribe to a paid tier (checkout).
  4. Return to content with full access; copy member RSS from Account → $ Subscriptions.

Dev site notes: Paywall and preview work. Checkout uses Stripe when configured, or dev mock checkout when STRIPE_MOCK_CHECKOUT is enabled. Account → Billing for payment history and Stripe customer portal (when Stripe customer exists).

Works today Listener

Journey 4 — Free follower only

  1. On publication pricing page, choose Follow free (email if logged out).
  2. Confirm email (link in inbox when FOLLOW_REQUIRE_CONFIRMATION is on).
  3. Receive updates; read free items in Account → Feed (on-site, not email).
  4. Upgrade anytime from a paywall CTA.

Dev site notes: Follow may require email confirmation (default on dev). Welcome email sends after confirm. Feed aggregates posts/episodes from followed publications on-site.

Works today Creator

Journey 5 — Creator turns on monetization

  1. Studio → Settings: enable monetization and publish the show.
  2. Set tier name and price (monthly/yearly).
  3. Complete Payouts → Connect Stripe for live payouts.
  4. Mark catalog items free vs paid; pricing page goes live.
  5. Monitor subscribers, analytics, and payouts.

Dev site notes: Checkout and Stripe Connect work on dev with test keys. Tiers sync to Stripe Prices. Subscribers: list, CSV export/import (free follows). Coupons and PPV supported.

Works today Listener

Journey 6 — Listener uses only a podcast app

  1. Add public RSS in Apple Podcasts / Pocket Casts (/feed/{publication}).
  2. Free episodes appear in the app.
  3. Pay on the website; add member RSS URL from Account.
  4. Paid episodes appear in the private feed.

Dev site notes: Public and member RSS endpoints work. Member feed requires an active subscription token. Paid checkout sends member RSS URL by email; also copy from Account → $ Subscriptions.

Works today Creator · Listener

Journey 7 — Multi-show creator (profile hub)

  1. Creator enables public profile and lists shows on profile.
  2. Listener visits /@creator-slug.
  3. Opens a show → /{publication-slug} → follow or subscribe.
  4. Creator switches active publication in Studio via the dropdown.

Dev site notes: Profile URLs: /@slug and /u/slug (toggle public + set @handle in Account → Settings). Hub lists publications with “show on profile” enabled. Studio publication switcher unchanged.

Works today Everyone

Journey 8 — Sign up and sign in (email, phone, or Google)

  1. Register at /register — name plus email and/or phone (at least one contact), or use Continue with Google.
  2. Verify each contact you added at /register/verify (email code/link, SMS code) — skip if you signed up with Google.
  3. Set password at /register/password — you are logged in and sent to Studio (passwordless Google accounts skip this on first OAuth signup).
  4. Log in later: /login — Password, Email code, Phone code, or Continue with Google.
  5. Forgot password: /forgot-password (email/password accounts only) → reset link → /login.
  6. Optional: after login, verify contact via /email/verify if banner appears (does not block Studio).

Dev site notes: Google OAuth works when GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET are set (staff can verify at Admin → OAuth). GitHub and Apple sign-in are not enabled yet. Email/phone signup is 3 steps (verify contacts, then password). Twilio required for real SMS; dev OTP often uses code 123456. Phone-only accounts cannot use forgot-password until they add an email in Account → Settings.

Feature guides

Quick reference for capabilities beyond the core journeys above.

Works today

Podcast & RSS

Public feed at /feed/{slug}; member feed after paid checkout. Studio → Distribution for Apple/Spotify steps and public “Listen on” links. Rich iTunes tags (season, duration, explicit) in RSS.

Works today

Import from another host

Studio → Import: paste your old RSS URL, preview episodes, import metadata and queue audio download. Imports run via background jobs (scheduler/queue). Does not migrate subscribers.

Works today

SEO & sharing

Set default SEO in Studio → Settings and Account → Profile Settings. Per-post/episode overrides in the content editor. Open Graph tags, share buttons, dynamic /sitemap.xml, and /robots.txt on public pages.

  • Reader: Share buttons + OG previews on any public show/post/episode page.
  • Creator: Studio → Settings (defaults) and the post/episode editor (per-item SEO).
  • Admin: Admin → Settings (platform-wide SEO defaults, when configured).
Works today

Analytics

Studio → Analytics: subscriber counts, revenue, web page views and play starts (last 30 days). Add an optional GA4 Measurement ID per publication; platform admins can set a platform-wide ID in Admin → Settings.

Works today

Email & audience

Publish notifications, Studio → Segments (export CSV), Studio → Broadcast (one-shot email to a segment). Broadcast includes a newsletter collection helper that inserts selected recent posts/episodes.

Works today

Privacy & account

Account → Settings: export your data (JSON) or delete your account. Email delivery preferences live under Account → Notification preferences.

Works today

Copyright & safety

Report content from any post/episode. Rights holders: DMCA takedown. See Content guidelines.

Works today

Explore & search

Explore and Search browse publications, posts/episodes, or creator profiles (mode=profiles). Filter by audio, writing, or paid tiers. Logged-in users see From your shows (content mode) and Creators you follow (profiles mode).

Works today

Categories & tags

Studio → Taxonomy: manage publication-local categories and tags. New publications get starter labels; creators can seed, rename, delete, and assign them in the post/episode editor. Public category and tag pages live under /{slug}/categories/{category} and /{slug}/tags/{tag}.

  • Reader: Public category/tag pages (/{slug}/categories/{category}, /{slug}/tags/{tag}).
  • Creator: Studio → Taxonomy and the post/episode editor.
Works today

Featured content

Enable in Studio → Settings → Feature visibility. Mark any post or episode as Featured in the editor to show it in a homepage feature module. This is separate from pinned content, which controls feed ordering.

  • Reader: Publication home (feature module on /{slug} when enabled).
  • Creator: Studio → Settings (Feature visibility) and the post/episode editor (Featured toggle).
Works today

Contact forms

Enable in Studio → Settings → Feature visibility. Publications can show a Contact button, homepage widget, and /{slug}/contact page. Logged-in messages route to Studio → Messages.

  • Reader: /{slug}/contact.
  • Creator: Studio → Settings (Feature visibility) and Studio → Messages.
Works today

Related content

Enable in Studio → Settings → Feature visibility. Related posts and episodes are suggested from shared tags/category, with manual related shows still managed under Studio → Settings → Also check out.

  • Reader: Related section on post/episode pages (when enabled).
  • Creator: Studio → Settings (Feature visibility + Also check out) and Studio → Taxonomy.
Works today

Theme switch

Logged-in users can choose System, Light, or Dark from the account dropdown. The choice is saved locally in the browser.

  • Reader: User menu (top right) → Theme (System/Light/Dark).
  • Creator: Same as Reader (applies anywhere you’re logged in).
Works today

Creator public profile

Your hub at /@{handle} (also /u/{handle}). Enable in Account → Profile Settings; choose which publications appear. Listeners can follow shows from your profile.

Works today

Fan mail

Turn on in Studio → Settings → Feature visibility. Followers/subscribers message via the publication widget; you reply in Studio → Messages. Readers use Account → Messages.

Works today

Direct messages

Message a creator from their public profile (/@{handle}). Conversations live in Account → Messages alongside show messages/contact-form threads.

Works today

Comments

Enable per show in Studio → Settings (Allow comments) or per post/episode. Readers comment on published items; creators moderate in Studio → Comments (replies supported).

  • Reader: Comments section on any post/episode page (when enabled).
  • Creator: Studio → Comments and Studio → Settings (Allow comments).
  • Admin: Admin → Content (archive/moderation tooling).
Works today

Events

Enable in Studio → Settings → Feature visibility. Schedule posts as events in Studio → Events. Optional public Events tab/calendar and home-page link on the publication site.

  • Reader: Publication home → Events tab (when enabled).
  • Creator: Studio → Events and Studio → Settings (Feature visibility).
Works today

Google sign-in

Continue with Google on /login and /register when Google OAuth credentials are configured. Platform admins can test credentials at Admin → OAuth.

Works today

Also check out

Studio → Settings → Also check out: cross-promote up to six other published shows (optional note). Blocks appear on your publication home, about, posts, and episodes.

  • Reader: “Also check out” blocks on publication pages (home/about/post/episode).
  • Creator: Studio → Settings → Also check out.
Works today

Subscribe embed

Public subscribe widget at /{slug}/embed (e.g. follow/pricing CTAs). Copy iframe HTML from Studio → Monetization → Tiers when monetization is on.

  • Reader: Public embed page (/{slug}/embed) and publication pricing page (/{slug}/pricing).
  • Creator: Studio → Monetization (tiers + embed snippet).
Works today

Custom domain

Studio → Domain: add a hostname, pay the one-time setup fee, and point your DNS. Once your domain points at us we verify it and issue an SSL certificate automatically — your show goes live on your own domain (home, posts, episodes, archive, and RSS at /feed).

The moving parts

  1. Save & pay: enter the hostname (e.g. podcast.yourbrand.com) and pay the one-time fee → status paid.
  2. Point DNS: at your DNS host, add the CNAME to the exact target shown in Studio.
  3. DNS check: a scheduled job confirms the domain resolves to the platform (CNAME to the shown target, or an A record to our IP).
  4. SSL: once DNS checks out, we automatically request + install a free Let's Encrypt certificate (Apache + certbot, one cert per domain).
  5. Go live: status flips to active; the domain serves the show over HTTPS and becomes its public URL. Studio → Domain shows DNS-verified / certificate-issued progress and the last check.

Automatic SSL runs where the platform has it enabled; otherwise staff activate after DNS. Ops detail: custom-domain-ssl.md.

  • Creator: Studio → Domain (save, pay, watch provisioning status).
  • Admin: Admin → Publications (domain status/support; manual activate fallback).
Works today

Stripe operations

Admin → Stripe: connection checks, test-mode readiness checklist, Connect status, billing rows, cancel-at-period-end support, payments ledger, and failed webhook retry.

Works today

Coupons & pay-per-view

Discount codes in Studio → Monetization → Coupons. One-time prices on posts/episodes (Buy for $X); unlocks in Account → Purchases.

Works today

Merch store

Sell physical or digital products from your show. Manage products and orders in Studio → Merch; readers buy at /{slug}/store with Stripe checkout (shipping details collected at checkout).

  • Reader: Public store (/{slug}/store) and product pages.
  • Creator: Studio → Merch (products + orders).
Works today

Saved & notifications

Account → Saved bookmarks posts and episodes. In-app notifications on Account home and Feed. Email digests configurable under Account → Notification preferences.

Admin & operations

Staff-only tools under Admin (requires is_admin, plus verification on dev).

Works today

Admin dashboard

Platform overview and quick staff entry points (stats, lookups, and operational links). Not the same as Creator Studio.

Works today

User administration

Search users, view account status, toggle admin access, impersonate for support, and trigger password reset emails (where applicable).

Works today

Subscription operations

Support tooling for paid memberships: look up subscriptions, comp access, rotate member RSS tokens, and cancel when needed.

Works today

Audit log

Trace sensitive actions (support operations, integrations checks, and staff changes) for debugging and accountability.

Works today

Development notes

Internal notes and feature-note tooling for staff coordination. Used to attach feature notes to specific UI sections (including cards on this page).

Works today

Twilio & messaging

Operational checks for SMS/email OTP and messaging status (balance, test SMS/email) when Twilio is configured.

Works today

Media library

Platform media management for uploaded assets (review and removal) used across publications and pages.

Works today

Admin access verification

Extra verification step required before using Admin (2FA middleware on dev). You’ll be redirected here if verification is required.

Sign in, sign up & passwords

Signup: /register — name + email and/or phone → /register/verify (verify each contact you added) → /register/password → Studio.

Login: /loginContinue with Google (when configured), Password, Email OTP, or SMS OTP (existing accounts). Forgot password (email/password accounts only).

Google OAuth: Same button on register and login. Requires GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET in server env. Admins: /admin/oauth to verify status.

Reset password: /forgot-password — works for accounts with an email on file.

Technical detail: authentication.md in developer docs.

FAQ

What is the difference between Following and $ Subscriptions?

Following is free: you join the show’s email list and get free content plus updates in your Feed (on-site). Subscriptions are paid: you unlock member posts/episodes and receive a member RSS URL for podcast apps. You can do both, or either.

What URL do I share for my show?

Share the publication home: https://dev.creatorcontent.net/{publication-slug} (e.g. /signal-desk). That is different from your creator profile /@{user-slug}, which lists multiple shows.

Where do I get the member (private) podcast feed?

After a successful paid checkout, open Account → $ Subscriptions, find the show, and copy the member RSS URL. Paste it into your podcast app as a private feed.

Do I need an account to listen or follow?

No account is required to browse free posts, episodes, or public RSS. Free follow (guest) only stores your email on the show’s follower list after you confirm a link—it does not create a CreatorContent login. Sign up at /register for Feed, paid checkout, and subscriptions. Logged-in users follow with their account email.

What demo logins exist for testing?

After php artisan db:seed: Jordan Ellis (creator@demo.test / password, demo shows). Casey Morgan (reader@demo.test / password). Taylor Brooks (admin@demo.test / password). See docs for the full testing checklist.

Can I buy a single episode without subscribing?

Yes, when the creator sets a one-time price on a post or episode in Studio. Use Buy for $X on the content page (not the pricing page). Some items are hybrid (subscribers get them free); others are PPV-only and require a purchase even if you subscribe. Your unlocks appear under Account → Purchases.

Can I use my own domain for a show?

In Studio → Domain, save a hostname (e.g. podcast.yourbrand.com) and pay the one-time setup fee (default $50). Studio shows the exact CNAME target to add at your DNS host.

Then it provisions itself: a scheduled job checks that your domain points at the platform, and once it does we automatically issue and install an SSL certificate (Let's Encrypt) and flip the domain to active — usually within a few minutes of DNS propagating. Studio → Domain shows DNS verified / certificate issued progress and the last check result. When active, the show loads on your domain over HTTPS (home, posts, episodes, archive, RSS at /feed).

Where automatic provisioning isn't enabled, staff activate the domain after DNS is in place (on dev you can use Activate domain after payment). Ops detail: custom-domain-ssl.md.

How do I start in Studio?

Go to Studio → Publications. Create or Open a show. Sidebar: Posts, Episodes, Settings, Domain, Subscribers, Analytics, Payouts, Media. Use Switch in the bar to change shows, or All publications to go back.

How do I upload podcast audio?

Studio → Episodes → create or edit an episode → Save (draft is fine) → choose an audio file → Upload audio. Files are stored on the server under Laravel storage (public disk). The site needs php artisan storage:link once so listeners can play episodes.

What is Studio vs Account vs Admin?
  • Studio — creators manage their own publications.
  • Account — readers manage follows, Feed, paid subs, and Purchases (one-time buys).
  • Admin — platform staff: users, publications (incl. Connect/domain status), subscriptions, Purchases (PPV refunds on dev), content archive, audit, and the MCP AI test console.
Can AI help manage a publication?

Foundation is available for staff testing: publications can enable an AI management MCP feature, admins can create scoped bearer tokens, inspect tool logs, run MCP tools, and test an AI chat in Admin → MCP. The current safe model supports read tools, draft/checklist writes, scoped documents, and proposal records. Studio can review, approve, and apply whitelisted proposals for publication settings, taxonomy, profile settings, and draft updates. Publishing and monetization setup are owner handoff proposals so paid or externally authorized steps still happen in Studio.

How do I import episodes from Buzzsprout, Anchor, or another host?

Studio → Import → paste your old public RSS feed URL → Preview → select episodes → Import. Metadata and audio are copied; subscribers and reviews are not migrated.

How do I improve social link previews?

Set default SEO title/description in Studio → Settings (publication) and Account → Profile Settings (creator page). Override per post or episode in the content editor SEO block.

How do I delete my account or export my data?

Account → Settings → Privacy: download a JSON export or delete your account (requires password confirmation). Deletion unpublishes your shows and cancels subscriptions where possible.

How do I report copyright infringement?

Rights holders can submit a notice at /dmca. For general content issues, use Report on the post or episode page.

What is not built yet?

Examples still open: sticky/cross-page audio player, podcast-app analytics (Spotify/Apple breakdown), auto-transcription, gift subscriptions, GitHub/Apple OAuth sign-in, creator-owned email sending domain, CDN/S3 audio hosting at scale. Google sign-in is available when OAuth credentials are configured.

AI/MCP proposal approval supports the first safe operation set: publication settings, taxonomy, profile settings, and draft updates. Team, domain, destructive, and broader live-management changes still need future operation support or guided handoffs.

Platform capabilities (summary)
  • Publications, posts/episodes (Quill), audio upload, import from RSS, PPV, tiers, coupons, merch store, pinned + featured content, subscribe embed
  • Categories/tags, related content, table of contents, contact forms, social sharing, dark/light switch
  • Rich podcast RSS, Distribution guide, Listen on links, custom domain, SEO/social meta tags, dynamic sitemap/robots, Also check out recommendations
  • Explore + Search (publications, content, profiles; audio/writing/paid filters; From your shows)
  • Creator public profiles (/@{handle}), Google sign-in, multi-show profile hub
  • Comments (moderation), fan mail, direct messages, events calendar, saved items, notifications, email digests
  • Broadcast email with newsletter collection helper, segments export, team permissions, web analytics + optional Google Analytics
  • Admin Stripe dashboard with test-mode checklist, billing support, payment ledger, failed webhook retry, and MCP AI test console
  • Account export/delete, DMCA workflow, content reports

Home · Explore · Search · Help · Sign up · Developer docs