Guide for CMS Admins
This guide covers managing content in the Loop Health Payload CMS admin interface.
Accessing the CMS
- Navigate to the admin URL (e.g.,
https://admin.loop.health/cms) - Sign in with your Clerk credentials
- Your access level depends on your
adminRole:
| Role | Access |
|---|---|
admin | Full access to all collections and settings |
staff | Read/write access to content collections |
support | Read-only access |
CMS Collections
Content Collections
| Collection | Purpose | Group |
|---|---|---|
| Pages | Static pages (about, terms, privacy) | Content |
| Blog Posts | Blog articles with rich text | Content |
| FAQs | Frequently asked questions | Content |
| Help Articles | Help center documentation | Content |
| Testimonials | Customer testimonials | Content |
| Research Papers | Referenced research papers | Content |
| Research Summaries | AI-generated research summaries | Content |
Catalog Collections
| Collection | Purpose | Group |
|---|---|---|
| Peptides | Peptide compound catalog | Catalog |
| Stacks | Curated protocol stacks | Catalog |
| Goals | Health optimization goals | Catalog |
| Supplements | Supplement products | Commerce |
| Supplement Bundles | Bundle deals | Commerce |
| COAs | Certificates of Analysis | Catalog |
Service Collections
| Collection | Purpose | Group |
|---|---|---|
| Coaching Tiers | Coaching subscription levels | Services |
| Team Members | Staff profiles | Services |
| Courses | Educational courses | Services |
| Retreats | Wellness retreats | Services |
| Membership Tiers | Membership levels | Services |
| Live Sessions | Upcoming live sessions | Services |
| Loop Live | Recorded live sessions | Services |
Community Collections
| Collection | Purpose | Group |
|---|---|---|
| Stack Comments | User comments on stacks | Community |
| Stack Reactions | User reactions on stacks | Community |
System Collections
| Collection | Purpose |
|---|---|
| Users | CMS admin users (auto-created from Clerk) |
| Media | Uploaded images and files |
Managing Peptides
Creating a Peptide Entry
- Go to Catalog → Peptides
- Click Create New
- Fill in:
- Name — Display name (e.g., “BPC-157”)
- Slug — URL-friendly identifier (e.g., “bpc-157”)
- Category — Peptide category (recovery, growth-hormone, etc.)
- Description — Rich text description
- Benefits — Key benefits
- Protocols — Recommended protocols with dosages
- Research — Link to research papers
- Commerce — BigCommerce product linking
- Publish to make it live
Peptide Fields
| Field | Type | Description |
|---|---|---|
| Name | Text | Display name |
| Slug | Text | URL identifier (unique) |
| Category | Select | Peptide category |
| Description | Rich Text | Detailed description |
| Short Description | Text | Summary for cards |
| Image | Media | Product image |
| Benefits | Array | List of benefits |
| Side Effects | Array | Potential side effects |
| Contraindications | Array | Known contraindications |
| Protocols | Array | Recommended dosing protocols |
| Research Papers | Relationship | Linked research papers |
| BigCommerce ID | Number | E-commerce product ID |
| Status | Select | Draft, Published, Archived |
Managing Stacks
Creating a Stack
- Go to Catalog → Stacks
- Click Create New
- Add:
- Name — Stack name (e.g., “Recovery Stack”)
- Description — What this stack is for
- Items — Peptides/supplements included
- Goals — Health goals this stack addresses
- Featured Image — Stack cover image
- Publish to make it live
Stack Items
Each stack item includes:
- Peptide — Link to a peptide entry
- Dosage — Recommended dosage
- Frequency — How often to take
- Duration — How long to use
- Notes — Special instructions
Managing Blog Posts
- Go to Content → Blog Posts
- Click Create New
- Write your post using the rich text editor (Lexical)
- Set:
- Title — Post title
- Slug — URL identifier
- Category — Post category
- Author — Author selection
- Featured Image — Cover image
- Meta Description — SEO description
- Publish or Save as Draft
Rich Text Editor
The CMS uses Lexical editor with support for:
- Headings (H1–H6)
- Bold, italic, underline, strikethrough
- Ordered and unordered lists
- Links
- Images
- Code blocks
- Block quotes
- Tables
Managing Help Articles
Help articles power the in-app help center:
- Go to Content → Help Articles
- Create articles organized by category:
- Getting Started
- Account & Billing
- Lab Results
- Protocols
- Wearables
- Luna AI
- Prescriptions
- Each article has:
- Title — Question or topic
- Slug — URL identifier
- Category — Help category
- Content — Rich text answer
- Order — Display order within category
Media Management
Uploading Media
- Go to Media
- Click Upload or drag and drop files
- Supported formats: JPEG, PNG, WebP, AVIF, SVG, PDF
- Images are automatically optimized for web delivery
S3 Storage
If configured, media files are stored in Amazon S3. Otherwise, they’re stored locally in the Payload uploads directory.
Cache Revalidation
When you publish or update content, the CMS automatically revalidates Next.js caches using makeRevalidateHook(). This ensures the consumer-facing site shows the latest content within seconds.
Revalidation Tags
| Collection | Cache Tag |
|---|---|
| Peptides | peptides |
| Stacks | stacks |
| Goals | goals |
| Blog Posts | blog-posts |
| FAQs | faqs |
| Help Articles | help-articles |
| Testimonials | testimonials |
| COAs | coas |
Seeding Data
To seed the CMS with initial data (peptides, stacks, goals):
pnpm --filter @loop/admin seedAdditional seed scripts:
pnpm --filter @loop/admin seed:help-articles
pnpm --filter @loop/admin seed:treatments
pnpm --filter @loop/admin seed:researchTips
- Always preview before publishing — use the Preview button to see how content looks
- Use slugs consistently — slugs are used for URL routing and API references
- Link research papers — peptide entries should reference supporting research
- Upload high-quality images — they’ll be optimized automatically
- Check for broken links — especially in rich text content