Development
Development guides and best practices for building with BISO Sites
Development Guides
Welcome to the development guides section. This section provides comprehensive guides for common development tasks and workflows.
Available Guides
Development Workflow
Daily development workflow including running apps, making changes, and using the monorepo tools.
Topics Covered:
- Running development servers
- Making code changes
- Using Turbo tasks
- Branch management
Authentication
Authentication patterns and implementation using Appwrite Auth.
Topics Covered:
- User registration and login
- Session management
- Role-based access control
- Protected routes
Database Operations
Working with Appwrite Database including CRUD operations and queries.
Topics Covered:
- Creating documents
- Querying data
- Relationships
- Permissions
Forms
Form handling patterns with react-hook-form and Zod validation.
Topics Covered:
- Form setup
- Validation schemas
- Server actions
- Error handling
Internationalization
Implementing multi-language support with next-intl.
Topics Covered:
- Message catalogs
- Language switching
- Translation patterns
- Dynamic content
Styling
Styling with Tailwind CSS and the design system.
Topics Covered:
- Tailwind configuration
- Custom tokens
- Component styling
- Responsive design
Testing
Testing strategy and best practices.
Topics Covered:
- Type checking
- Linting
- Manual testing
- Integration tests
Quick Links
For New Developers
- Start with Development Workflow
- Learn Authentication Patterns
- Practice Form Handling
- Master i18n
See the guides above for links to each topic.
Common Tasks
- Adding a new page: Check routing in Web App or Admin App documentation
- Database operations: See the Database Guide above
- Styling components: Read the Styling Guide above
- Form validation: Follow the Forms Guide above
Related Documentation
- Repository Architecture
- API Package
- UI Components
Navigate using the sidebar tabs to access related documentation.
Best Practices
Code Style
- Use TypeScript strict mode
- Follow Prettier formatting (2-space indent)
- Use Conventional Commits
- Run
bun run lintbefore committing
Component Guidelines
- Use PascalCase for components
- Co-locate styles and logic
- Prefer composition over inheritance
- Document complex components
State Management
- Use React Server Components by default
- Lift state only when needed
- Use server actions for mutations
- Cache expensive computations
Performance
- Optimize images with Next.js Image
- Use dynamic imports for heavy components
- Implement proper loading states
- Monitor bundle size
Need Help?
- Browse these development guides
- Check Troubleshooting
- Review Commands Reference
- Read package-specific documentation
