Documentation Index
Fetch the complete documentation index at: https://docs.synapsebuilder.org/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Shopify has quality standards for extensions that appear in the Shopify App Store. Synapse generates code that follows these standards automatically.Quality Requirements
Performance
Fast loading and responsive
- Load in under 500ms
- No blocking operations
- Optimized bundle size
- Efficient re-renders
Accessibility
Usable by everyone
- Keyboard navigation
- Screen reader support
- Sufficient color contrast
- Clear focus states
User Experience
Intuitive and helpful
- Clear messaging
- Proper error handling
- Loading states
- Mobile-optimized
Security
Safe and compliant
- Data validation
- Secure API calls
- No sensitive data exposure
- GDPR compliant
Shopify’s Extension Guidelines
1. Performance Standards
Extensions must meet these performance benchmarks:| Metric | Requirement | Best Practice |
|---|---|---|
| Initial Load | < 500ms | < 300ms |
| Bundle Size | < 50KB | < 30KB |
| Time to Interactive | < 1s | < 500ms |
| Memory Usage | < 5MB | < 3MB |
- What Synapse Does
- What You Should Avoid
✅ Generates minimal, optimized code✅ Only imports used components✅ Avoids unnecessary dependencies✅ Uses React.memo for expensive renders✅ Lazy loads non-critical features
2. Accessibility (A11y)
Extensions must be accessible to all users:Keyboard Navigation
Keyboard Navigation
Screen Readers
Screen Readers
Content must be readable by screen readers:Requirements:
- Label all form inputs
- Describe icons and images
- Use semantic HTML
- Announce dynamic changes
Color Contrast
Color Contrast
Text must have sufficient contrast:
Synapse automatically:
| Element | Min Contrast | WCAG Level |
|---|---|---|
| Body text | 4.5:1 | AA |
| Large text | 3:1 | AA |
| UI components | 3:1 | AA |
- Uses Shopify UI components (compliant by default)
- Avoids custom colors
- Tests contrast ratios
Focus States
Focus States
Interactive elements must show focus:Requirements:
- Visible focus indicator
- Consistent across extension
- Not removed with CSS
3. User Experience
Clear Messaging
Tell users what your extension does:
- Use plain language
- Be specific
- Set expectations
Loading States
Show when processing:
- Use skeleton loaders
- Show progress bars
- Don’t block interaction
4. Security & Privacy
Data Validation
Validate all inputs:
Secure API Calls
Use HTTPS and authentication:
No Sensitive Data
Don’t log or expose:
- Credit card numbers
- Passwords
- API keys
- Personal information
GDPR Compliance
Respect privacy:
- Get consent for data collection
- Allow data deletion
- Provide privacy policy
- Honor do-not-track
Code Quality Standards
TypeScript
All extensions must use TypeScript:Error Boundaries
Catch and handle errors:Testing
Include tests for critical logic:Validation Process
Synapse validates extensions before deployment:Static Analysis
Checks code quality:
- TypeScript compilation
- ESLint rules
- Import validation
- Bundle size
API Validation
Verifies Shopify APIs:
- Valid extension targets
- Allowed components
- Correct GraphQL queries
- Proper hooks usage
Runtime Testing
Tests execution:
- Loads without errors
- Handles edge cases
- Performance benchmarks
- Memory leaks
Common Violations
Issues Synapse prevents:Using Unsupported APIs
Using Unsupported APIs
❌ Problem: Calling APIs not in Shopify’s allowlist✅ Solution: Synapse only generates code using approved APIs
Missing Error Handling
Missing Error Handling
❌ Problem: Unhandled promise rejections✅ Solution: Synapse wraps API calls in error handlers
Performance Issues
Performance Issues
❌ Problem: Large bundles, blocking operations✅ Solution: Synapse optimizes dependencies and code
Accessibility Failures
Accessibility Failures
❌ Problem: Missing labels, poor contrast✅ Solution: Synapse uses semantic components
App Store Requirements
If publishing to Shopify App Store:Listing Requirements
- Clear Description: Explain what your extension does
- Screenshots: Show extension in action (3-5 images)
- Privacy Policy: Link to privacy policy
- Support Contact: Email or support URL
Technical Requirements
- GDPR Compliance: Handle user data properly
- Error Handling: Graceful failures
- Documentation: User guide and setup instructions
- Localization: Support multiple languages (if applicable)
Review Process
- Automated Testing: Shopify runs automated checks
- Manual Review: Human reviewers test functionality
- Approval: App is approved or feedback is provided
- Publication: Live in App Store
Best Practices Checklist
Before deploying extensions:- Loads in under 500ms
- Bundle size under 50KB
- All inputs are validated
- Error states are handled
- Loading states are shown
- Keyboard accessible
- Screen reader compatible
- Sufficient color contrast
- Works on mobile devices
- No console errors
- No memory leaks
- Tests pass
- TypeScript types complete
- Documentation added
Next Steps
Validation
Learn how Synapse validates extensions
Debugging
Debug issues and optimize performance
Best Practices
Advanced optimization techniques
Troubleshooting
Fix common issues