Development Guide
This guide outlines the development workflow, processes, and best practices for contributing to the Wrkbelt platform.
Development Setup
Environment Files
To run the project locally, you'll need two environment files:
apps/ui/.env- Environment variables for the UI applicationapps/api/.env- Environment variables for the API application
Contact Spencer Marx to receive the current environment files. These files contain sensitive information and should not be committed to the repository.
Project Organization
For details on code structure and organization standards, please refer to our Coding Standards documentation.
Development Workflow
Kanban Board
We use Jira to track our work. Access our current release board here:
Git Workflow
Our Git workflow differs based on our release phase:
Pre-Release of V0.0.1
Trunk-Based Development (Simplified)
- Release Branch:
main - Feature Flags: Not yet required
- Deployment Control: Manual via Netlify & GitHub Actions
- Version Tracking: Git tags
Post-Release of V0.0.1
GitFlow-Inspired Model
- New Features:
- Branch from
develop - Branch naming:
feat/WEN-123-feature-description - Use Feature Flags for gating new functionality
- Branch from
- Release Branch:
main(protected) - Staging Deployments:
- Create
release/vX.Y.Z-rcbranch fromdevelop - Merge to
mainfor deployment
- Create
PR Process
Our pull request process remains consistent across both workflow models:
- One PR per Jira ticket (1:1 relationship)
- If a PR becomes too large, contact Spencer Marx to help break down the work
- Every PR requires a code review
- Pre-V0.0.1: Spencer Marx is the permanent code reviewer
- Post-V0.0.1: Any engineer's review is acceptable
- Merge to the appropriate branch upon approval
Commit Standards
We strive for atomic commits that:
- Address a single concern
- Have clear, descriptive messages
- Are small enough to be easily reviewed
- Allow for straightforward rollback if needed
Feature Flags
We use Flagsmith to manage feature flags across our application.
Setup
To work with feature flags:
- Request an invite link from Spencer Marx to access our Flagsmith instance
- Consider the default state for features when flags are unavailable
- Plan flag values for different environments (Local, Develop, Staging, Production)
Feature flags are implemented differently in the UI and API components. Please refer to the UI-specific and API-specific documentation for implementation details.
Process
For Release V0.0.1 and beyond:
- Feature flags must be requested in advance in the relevant Jira ticket
- If no feature flag is requested in a ticket, none is needed
- Always implement fallback behavior in case the flag service is unavailable
- Consider environment-specific values for each flag
Visual Documentation
For complex UX flows or bug reporting, we encourage the use of screen recordings.
Recommended Tool
Loom is our recommended tool for creating screen recordings.
The free version of Loom limits videos to 5 minutes. Keep your recordings concise and focused on the specific flow or issue you're documenting.
Quick Summary of Best Practices
- Follow our Coding Standards for consistent code quality
- Create atomic, focused commits with clear messages
- Include appropriate tests with all changes
- Document new features, APIs, or significant changes
- Use feature flags for controlled rollout of new functionality