development-workflow
Apply when setting up the development environment, running dev server, building, testing, or deploying the extension. Covers npm commands, CORS configuration, debugging, and deployment to ChurchTools.
When & Why to Use This Skill
This Claude skill provides a comprehensive development workflow for building, testing, and deploying ChurchTools extensions. It streamlines the entire lifecycle by automating environment setup, managing local development servers, and providing standardized procedures for CORS configuration and production deployment, significantly reducing the barrier to entry for extension developers.
Use Cases
- Initial environment setup: Quickly configuring .env files and local dependencies for a new ChurchTools extension project.
- Local development and debugging: Running a Vite-powered dev server and troubleshooting iframe-specific issues like Safari cookie restrictions and CORS errors.
- API Integration testing: Verifying the churchtoolsClient connection and testing API endpoints directly within the extension context.
- Production deployment: Executing a reliable build-and-package pipeline to generate ZIP files ready for upload to the ChurchTools administration interface.
| name | development-workflow |
|---|---|
| description | Apply when setting up the development environment, running dev server, building, testing, or deploying the extension. Covers npm commands, CORS configuration, debugging, and deployment to ChurchTools. |
Development Workflow
Environment Setup
- Copy
.env-exampleto.env - Configure ChurchTools URL and extension key:
VITE_KEY=your-extension-key VITE_CHURCHTOOLS_URL=https://your-instance.church.tools
Development Commands
npm run dev # Start dev server with hot-reload (port 5173)
npm run build # Production build
npm run preview # Preview production build
npm run deploy # Build and package for ChurchTools
npm run prettier:write # Format code
CORS Configuration
For local development, configure CORS in ChurchTools:
- Admin > System Settings > Integrations > API > Cross-Origin Resource Sharing
- Add
http://localhost:5173
Safari Cookie Issues
Safari has stricter cookie handling. Solutions:
- Use Vite proxy so API calls go through local server
- Run dev server with HTTPS using mkcert
Testing Checklist
- Start dev server:
npm run dev - Check browser console for errors
- Test responsive design
- Verify ChurchTools integration
- Build test:
npm run build - Deploy test:
npm run deploy
Deployment Process
- Format code:
npm run prettier:write - Build:
npm run build - Package:
npm run deploy - Upload
.zipto ChurchTools Admin > Extensions - Configure extension settings
- Test in production
Debugging
Browser console tests:
// Test API connection
churchtoolsClient.get('/whoami').then(console.log).catch(console.error)
// Check extension context
console.log('Extension context:', {
url: window.location.href,
parent: window.parent !== window,
churchtoolsClient: !!window.churchtoolsClient
})
Build Output
Check build output:
ls -la dist/
ls -lh dist/assets/
Extension Context
- Extensions run in iframe context
- Use
window.parent.postMessagefor communication with ChurchTools - Access ChurchTools API via
churchtoolsClient