Content Management
ShipKit uses a dual CMS approach with Payload CMS for structured content and Builder.io for visual page building.
Overview
The content management system provides:
- Structured content management with Payload CMS
- Visual page building with Builder.io
- Media asset management
- Role-based access control
- Rich text editing with Lexical
- PostgreSQL storage
Payload CMS
Core Configuration
Collections
Features Collection
Media Collection
FAQs Collection
Rich Text Editor
Payload CMS is configured to use the Lexical editor:
Builder.io Integration
Setup
Environment Configuration
Required environment variables:
Media Management
Storage Configuration
Media files are stored in the public directory and served statically:
Image Processing
Image optimization is handled using Sharp:
Access Control
Role-Based Access
Content Types
Structured Content
- Features
- FAQs
- Testimonials
- Media assets
- RBAC configurations
Visual Content
- Landing pages
- Marketing pages
- Custom layouts
- Dynamic sections
Development Workflow
-
Structured Content
- Define collections in Payload CMS
- Set up access control
- Configure fields and validation
- Implement hooks if needed
-
Visual Content
- Create templates in Builder.io
- Define custom components
- Set up preview environments
- Configure publishing workflows
Performance Considerations
-
Image Optimization
- Automatic WebP conversion
- Multiple size variants
- Lazy loading support
- CDN integration ready
-
Content Delivery
- API response caching
- Static generation where possible
- Incremental Static Regeneration
- Edge caching support
Security Implementation
-
Access Control
- Role-based permissions
- API key management
- Preview URL protection
- Media access control
-
Data Protection
- Input sanitization
- Output escaping
- CSRF protection
- Rate limiting
Best Practices
-
Content Modeling
- Use appropriate field types
- Implement validation rules
- Maintain relationships
- Document field purposes
-
Media Management
- Organize assets logically
- Use descriptive filenames
- Add alt text for images
- Optimize for performance
-
Development
- Version control content models
- Test access control
- Document custom components
- Maintain type safety
Notes
- Payload CMS runs on the same database as the main application
- Builder.io is used for marketing and landing pages
- Media files are optimized automatically
- Access control is enforced at both CMS and API levels