Complete Supabase CMS integration for Astro websites, including database schema design, RLS policies, content management workflows, and client setup.
Adds complete Supabase CMS integration for Astro, including database schemas, RLS policies, and content workflows. Use it when building content-managed Astro sites that need draft/publish workflows, versioning, and real-time updates.
/plugin marketplace add vanman2024/ai-dev-marketplace/plugin install website-builder@ai-dev-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
examples/blog-with-cms-example.mdexamples/media-management-example.mdexamples/multi-tenant-cms-example.mdexamples/realtime-content-updates-example.mdscripts/apply-migration.shscripts/apply-rls-policies.shscripts/generate-supabase-types.shscripts/setup-supabase-cms.shscripts/test-rls-policies.shtemplates/client/supabase-client.tstemplates/queries/content-queries.tstemplates/queries/paginated-queries.tstemplates/realtime/content-subscription.tstemplates/rls/basic-policies.sqltemplates/rls/draft-publish-policies.sqltemplates/rls/multi-tenant-policies.sqltemplates/schemas/blog-schema.sqltemplates/schemas/media-schema.sqltemplates/schemas/pages-schema.sqltemplates/workflows/draft-publish.tsComplete Supabase CMS integration for Astro websites, including database schema design, RLS policies, content management workflows, and client setup.
This skill provides comprehensive Supabase CMS support:
Run the setup script to initialize Supabase CMS in an Astro project:
bash scripts/setup-supabase-cms.sh [project-path]
This script:
Use schema templates to design content tables:
Blog/Posts Schema:
# Read template for blog content
Read: templates/schemas/blog-schema.sql
Read: templates/schemas/blog-with-categories.sql
Pages Schema:
# Read template for static pages
Read: templates/schemas/pages-schema.sql
Media/Assets Schema:
# Read template for media management
Read: templates/schemas/media-schema.sql
Multi-tenant Schema:
# Read template for multi-tenant content
Read: templates/schemas/multi-tenant-schema.sql
Apply schema migrations to Supabase:
bash scripts/apply-migration.sh [migration-file]
This script:
Implement Row Level Security policies:
Basic RLS Templates:
Read: templates/rls/basic-policies.sql
Read: templates/rls/multi-tenant-policies.sql
Read: templates/rls/draft-publish-policies.sql
Apply RLS Policies:
bash scripts/apply-rls-policies.sh [table-name] [policy-type]
Policy types:
public-read: Anyone can read, authenticated can writeowner-only: Only owner can read/writedraft-publish: Public reads published, owner manages draftsmulti-tenant: Tenant isolation with RLSUse workflow templates for content operations:
Draft/Publish Workflow:
Read: templates/workflows/draft-publish.ts
Features:
Content Versioning:
Read: templates/workflows/versioning.ts
Features:
Setup Supabase client in Astro:
Client Configuration:
Read: templates/client/supabase-client.ts
Read: templates/client/server-client.ts
Query Patterns:
Read: templates/queries/content-queries.ts
Read: templates/queries/filtered-queries.ts
Read: templates/queries/paginated-queries.ts
Generate types from database schema:
bash scripts/generate-supabase-types.sh [project-path]
This creates:
Enable real-time content updates:
Realtime Templates:
Read: templates/realtime/content-subscription.ts
Read: templates/realtime/live-preview.ts
Features:
created_at, updated_at timestampsslug fields with unique constraintsstatus enum for draft/published statespublished_at for schedulingmetadata JSONB for flexible fields# Use blog schema template
Read: templates/schemas/blog-schema.sql
# Customize for your needs, then apply
bash scripts/apply-migration.sh migrations/001_create_posts.sql
# Apply draft-publish policies
bash scripts/apply-rls-policies.sh posts draft-publish
# Test policies
bash scripts/test-rls-policies.sh posts
// Read query template
Read: templates/queries/content-queries.ts
// Use in Astro page
import { supabase } from '@/lib/supabase'
const { data: posts } = await supabase
.from('posts')
.select('*')
.eq('status', 'published')
.order('published_at', { ascending: false })
// Read realtime template
Read: templates/realtime/content-subscription.ts
// Subscribe to content changes
const subscription = supabase
.channel('content-changes')
.on('postgres_changes'
{ event: '*', schema: 'public', table: 'posts' }
handleContentChange
)
.subscribe()
supabase db lintALTER TABLE posts ENABLE ROW LEVEL SECURITY;auth.uid() for user-specific policiesbash scripts/generate-supabase-types.sh.astro cache directoryCreate employment contracts, offer letters, and HR policy documents following legal best practices. Use when drafting employment agreements, creating HR policies, or standardizing employment documentation.
Implement GDPR-compliant data handling with consent management, data subject rights, and privacy by design. Use when building systems that process EU personal data, implementing privacy controls, or conducting GDPR compliance reviews.