Multi-Tenant & Team Features
One account. Multiple sites. Unlimited team members. BlackOps Center's multi-tenant architecture lets you manage your entire content empire from a single dashboard—whether you're a solo creator with multiple brands or an agency managing dozens of clients.
Multi-Tenant Architecture
What Is Multi-Tenancy?
In BlackOps Center, a tenant (also called a site) is an isolated content workspace. Each site has its own:
- Custom Domain:
yourclient.comoryourclient.blackopscenter.com - Content: Blog posts, newsletters, reservoirs
- Branding: Logo, colors, theme
- Team Members: Collaborators with specific roles
- Settings: Independent configuration
- Analytics: Separate performance tracking
Single-Tenant vs. Multi-Tenant
Single-Tenant (Old Way)
- One account = One website
- Multiple sites = Multiple logins
- No data sharing
- Painful to manage at scale
Multi-Tenant (BlackOps Center)
- One account = Many websites
- Single login, switch sites
- Optional data sharing
- Scales effortlessly
Use Cases
Solo Creator with Multiple Brands
Your Account ├─ benenewton.com (Personal blog) ├─ techstartuptips.com (Side project) └─ consultingbrand.com (Business site) Single login, switch between sites instantly
Agency Managing Clients
Agency Account ├─ client-saas.com (Tech client) ├─ client-ecommerce.com (Retail client) ├─ client-consulting.com (B2B client) └─ ... 20+ more sites Each client isolated, separate billing, team access
Enterprise Multi-Brand
Company Account ├─ mainbrand.com (Corporate site) ├─ product-a.com (Product line A) ├─ product-b.com (Product line B) └─ blog.mainbrand.com (Content hub) Shared content libraries, separate publishing
Creating & Managing Sites
Create a New Site
- Log in to blackopscenter.com/admin
- Click "Create New Site" in the site switcher
- Configure:
- Site Name: Internal identifier (e.g., "Tech Blog")
- Subdomain:
techblog.blackopscenter.com(free) - Custom Domain:
techblog.com(optional, pro plan) - Timezone: Publishing schedule reference
- Click "Create Site"
- Site is ready in ~30 seconds
Site Switcher
In the top-left corner of the dashboard, the site switcher lets you jump between your sites instantly:
┌─ Site Switcher ───────────────┐ │ 🌐 Tech Blog (current) │ │ 📝 Personal Site │ │ 🚀 SaaS Client │ │ ─────────────────────────── │ │ ➕ Create New Site │ └────────────────────────────────┘ Keyboard shortcut: Cmd/Ctrl + K → "Switch site"
Site Settings
Each site has independent settings:
- General: Name, description, timezone
- Branding: Logo, favicon, colors, theme
- Publishing: Default author, tags, categories
- SEO: Metadata, OpenGraph, Twitter cards
- Integrations: Analytics, social accounts, third-party tools
- Team: Members, roles, permissions
Team Collaboration
Team Roles
BlackOps Center has 4 role levels (per site):
1. Owner
- Full Access: Everything including billing and site deletion
- Can Do: Add/remove team, change settings, publish, delete site
- Limit: One owner per site (transferable)
2. Admin
- Operational Control: Can manage content and team
- Can Do: Publish content, manage team (except owner), change most settings
- Cannot Do: Delete site, change billing, remove owner
3. Editor
- Content Control: Can create and publish content
- Can Do: Write, edit, publish posts; manage drafts; upload media
- Cannot Do: Change settings, manage team, access billing
4. Viewer
- Read-Only Access: Can see content but not change it
- Can Do: View published content, read analytics, browse reservoirs
- Cannot Do: Create/edit content, change settings, publish
- Use Case: Clients reviewing content before launch
Inviting Team Members
- Go to Settings → Team
- Click "Invite Member"
- Enter email address
- Select role (Owner, Admin, Editor, Viewer)
- Optional: Add personal message
- Click "Send Invitation"
- They receive email with signup/login link
- They join your site with assigned role
Team Dashboard
┌─ Team Members ─────────────────────────────────┐ │ │ │ 👤 Ben Newton (Owner) │ │ Last active: 2 hours ago │ │ Content: 24 posts, 12 drafts │ │ │ │ 👤 Sarah Chen (Editor) │ │ Last active: 1 day ago │ │ Content: 8 posts, 3 drafts │ │ [Change Role ▼] [Remove] │ │ │ │ 👤 Mike Johnson (Viewer) │ │ Last active: 3 days ago │ │ Content: View only │ │ [Change Role ▼] [Remove] │ │ │ │ ✉️ Pending: alex@example.com (Editor) │ │ Invited 2 days ago │ │ [Resend] [Cancel] │ │ │ └─────────────────────────────────────────────────┘
Activity Log
Track team actions for accountability:
Recent Activity: • Sarah published "React 19 Features" (2 hours ago) • Ben updated site settings (4 hours ago) • Sarah created draft "Next.js 15 Guide" (yesterday) • Mike viewed analytics dashboard (2 days ago) • Ben invited alex@example.com as Editor (2 days ago)
Content Isolation & Sharing
Data Isolation (Default)
By default, sites are completely isolated:
- Content: Posts, drafts, reservoirs are site-specific
- Team: Members of Site A can't see Site B
- Settings: Independent configuration
- Analytics: Separate tracking
- Billing: Optional per-site billing (enterprise)
Cross-Site Content Sharing (Pro Feature)
Share content between your own sites:
Shared Reservoirs
- Go to Site A → Reservoirs
- Select a reservoir
- Click "Share with Other Sites"
- Select Site B, Site C, etc.
- Set permissions:
- Read-Only: Other sites can view, not edit
- Contribute: Other sites can add items
- Full Access: Other sites can edit/delete
Use Case: You have a "General Marketing" reservoir shared across all your B2B client sites.
Syndicated Content
Publish once, syndicate everywhere: 1. Write post on Site A (primary) 2. Mark as "Syndicate to Site B, Site C" 3. Post appears on all sites 4. Canonical URL points to Site A (SEO-safe) 5. Edit on Site A → updates everywhere
Use Case: Company news published on corporate blog, automatically cross-posted to product blogs.
Billing & Subscription Management
Base + Add-On Model
BlackOps Center uses a flexible pricing model:
Base Subscription: $297/month Includes: 1 site + core features Additional Sites: $100/site/month - Add as many sites as you need - Remove sites anytime - Prorated billing Example Pricing: • 1 site: $297/month • 3 sites: $297 + (2 × $100) = $497/month • 10 sites: $297 + (9 × $100) = $1,197/month
Adding Sites
- Create new site in dashboard
- Automatic Stripe subscription update
- $100/month added to next invoice
- Prorated if mid-cycle
Removing Sites
- Go to site settings
- Click "Delete Site"
- Confirm deletion (irreversible)
- Stripe subscription decreases $100/month
- Prorated credit applied
⚠️ Site Deletion Warning
Deleting a site permanently removes all content, reservoirs, analytics, and team access. This cannot be undone. Export your data first if you need a backup.
Enterprise Billing
For agencies and large teams (10+ sites):
- Volume Discounts: Reduced per-site cost at scale
- Per-Site Billing: Optional separate invoices per client
- White-Label Billing: Client sees your branding on invoices
- Custom Contracts: Annual agreements, custom terms
Contact sales for enterprise pricing.
Custom Domains
Setting Up Custom Domains
- Go to Settings → Domain
- Enter your domain (e.g.,
techblog.com) - Add DNS records at your registrar:
Type: A Name: @ Value: 76.76.21.21 Type: CNAME Name: www Value: cname.blackopscenter.com
- Click "Verify Domain"
- Wait 5-10 minutes for DNS propagation
- SSL certificate auto-provisioned
- Site live at custom domain
Subdomain Strategy
Use subdomains for multi-site organizations:
Company: example.com Sites: • example.com (corporate) • blog.example.com (content hub) • docs.example.com (documentation) • product-a.example.com (Product A) • product-b.example.com (Product B) Single domain, multiple sites, unified brand
Security & Access Control
Row-Level Security (RLS)
BlackOps Center uses PostgreSQL RLS to enforce site isolation at the database level:
-- Every query automatically filtered by site_id SELECT * FROM posts WHERE site_id = current_site_id(); -- Prevents: • Cross-site data leaks • Unauthorized access to other sites • SQL injection across tenants -- Enforced: • At database level (not app level) • Cannot be bypassed • Audited and tested
API Security
All API routes validate site access:
// Example: Fetching posts
async function requireSiteAccess(request) {
const user = await getUser(request)
const siteId = request.headers.get('x-site-id')
// Verify user has access to this site
const access = await checkUserSiteAccess(user.id, siteId)
if (!access) {
throw new UnauthorizedError('No access to this site')
}
return { user, siteId }
}Two-Factor Authentication (2FA)
Enable 2FA for account security:
- Go to Account Settings → Security
- Click "Enable 2FA"
- Scan QR code with authenticator app (Authy, 1Password, etc.)
- Enter 6-digit code to verify
- Save backup codes
Protects all sites under your account.
Agency Features
White-Label Dashboard
Hide BlackOps Center branding for client-facing dashboards:
- Custom Logo: Replace BlackOps Center logo with yours
- Custom Domain:
dashboard.youragency.com - Branded Emails: Notifications from your domain
- Custom Support: Your support link instead of ours
Available on enterprise plans.
Client Reporting
Generate white-label reports for clients:
- Performance Dashboards: Traffic, engagement, conversions
- Content Inventory: What was published this month
- ROI Tracking: Content performance vs. goals
- Scheduled Delivery: Auto-email reports monthly
Client Portals
Give clients limited access without full dashboard access:
- Invite client as Viewer
- They see:
- Published content
- Analytics dashboard
- Content calendar
- They cannot see:
- Drafts or WIP
- Team settings
- Billing information
- Other clients' sites
Best Practices
Site Organization
- Consistent Naming: "Client Name - Site Type" (e.g., "Acme Corp - Blog")
- Use Folders: Group related sites (coming soon)
- Document Ownership: Keep track of who owns what in external docs
Team Management
- Least Privilege: Give minimum necessary access
- Regular Audits: Review team access quarterly
- Offboarding: Remove access immediately when team members leave
Content Sharing
- Share Strategically: Don't share everything across all sites
- Read-Only Default: Limit who can edit shared reservoirs
- Audit Trails: Monitor who accesses shared content
Troubleshooting
Cannot Access Site
Cause: You don't have permissions for this site
Fix:
- Check if you're invited to the site
- Verify invitation wasn't sent to different email
- Ask site owner to resend invitation
Custom Domain Not Working
Cause: DNS records not configured correctly
Fix:
- Verify DNS records at your registrar
- Wait 24-48 hours for full DNS propagation
- Check status in Settings → Domain
- Use
dig yourdomain.comto verify DNS
Billing Issue After Adding Site
Cause: Stripe webhook delay or payment method issue
Fix:
- Check Settings → Billing for status
- Verify payment method is valid
- Contact support if charge didn't process
Next Steps
- Content Reservoirs: Build content libraries per site
- Campaign Management: Run campaigns across sites
- API Documentation: Programmatic site management
Scale doesn't have to mean chaos. With the right multi-tenant architecture, you can manage 50 sites as easily as 1.