CONTRIBUTING
BUILD TOOLS FOR THE PEOPLE
We build tools, you build the future. Whether you're fixing bugs, adding components, or improving documentation, your work helps make powerful design tools accessible to anyone who needs to be heard.
CODE OF CONDUCT
Our values and principles
NO BULLSHIT
We support each other and work together without pretense
Direct communication, honest feedback, mutual respect
ACCESSIBILITY
Design tools should be available to everyone who needs them
WCAG compliance, screen reader support, keyboard navigation
TOOL BUILDING
We build tools, not messages - your voice is yours
Neutral platform for powerful communication
QUALITY
We maintain brutal standards and uncompromising accessibility
Code quality, design integrity, user experience
DEVELOPMENT SETUP
Get started with local development
BASH
# Fork and clone the repository
git clone https://github.com/b7r-dev/fyt.git
cd fyt
# Install dependencies
npm install
# Build Go CLI
cd cli && go build -o ../fyt .
cd ..
# Start development server
./fyt dev
# or
npm run dev
# Run validation
./fyt validate
# Build for production
./fyt build
# or
npm run buildRequirements:
- Node.js 22+
- Go 1.21+
- npm or yarn
DESIGN PRINCIPLES
Core guidelines for contributions
COLOR SEPARATION
All colored elements must have 2px white separation for print clarity
Mandatory for brutal aesthetic and print optimization
REVOLUTIONARY TYPOGRAPHY
Use fonts that honor movement traditions: Bebas Neue, Anton, Courier Prime, Zilla Slab
Historical authenticity in type choices
PRINTING PRESS SIMULATION
Include halftone patterns and registration marks where appropriate
Authentic printing press aesthetic
ACCESSIBILITY FIRST
Ensure WCAG AA compliance minimum, AAA preferred
Screen readers, keyboard navigation, high contrast
HISTORICAL AUTHENTICITY
Research the graphic design heritage you're referencing
Honor movement traditions and design history
COMPONENT DEVELOPMENT
Step-by-step guide
RESEARCH HISTORICAL CONTEXT
Understand the movement or design tradition you're referencing
FOLLOW NAMING CONVENTIONS
Use descriptive names (e.g., BrutalAlert, HumanistQuote)
IMPLEMENT COLOR SEPARATION
Use printing press utilities for proper color separation
ADD TYPESCRIPT TYPES
Ensure full type safety with proper interfaces
INCLUDE DOCUMENTATION
Add YAML documentation in content/components/
TEST RESPONSIVENESS
Ensure components work across all devices and screen sizes
VERIFY ACCESSIBILITY
Test with screen readers and keyboard navigation
CODE STYLE
Standards and conventions
TYPESCRIPT
Use TypeScript for all new code with proper type definitions
No any types - use proper interfaces
NAMING CONVENTIONS
PascalCase for components, camelCase for functions
Follow existing patterns in codebase
TAILWIND CSS
Use Tailwind classes with our custom design tokens
Maintain brutal aesthetic with utility classes
COMMENTS & DOCS
Include JSDoc comments for complex functions
Document intent and edge cases
FORMATTING
Maintain consistent indentation (2 spaces)
Organize imports: React, third-party, local
LINTING & TYPE CHECKING
Run npm run lint and npx tsc --noEmit before committing
Fix all errors and warnings
PULL REQUEST PROCESS
How to submit changes
- Create Feature Branch:
git checkout -b feature/your-feature-name - Make Changes: Follow coding standards and design principles
- Test Your Work: Ensure everything works in development mode
- Update Documentation: Add or update relevant documentation in
content/ - Commit with Clear Messages: Use descriptive commit messages
- Submit Pull Request: Include clear description of changes
Pull Request Template:
MARKDOWN
**Description:**
Brief description of what this PR does
**Type of Change:**
- [ ] Bug fix
- [ ] New component
- [ ] Documentation update
- [ ] Design token update
- [ ] Breaking change
**Testing:**
- [ ] Tested in development mode
- [ ] Tested responsive design
- [ ] Tested accessibility
- [ ] Validated YAML content
**Documentation:**
- [ ] Updated relevant documentation
- [ ] Added component documentation (if applicable)
- [ ] Updated changelogDOCUMENTATION
Single source of truth
The application's documentation site (
content/ directory) is the single source of truth for all technical documentation.Documentation updates should be made in the
content/ directory, NOT in repository markdown files. Repository markdown files (README.md, LICENSE, CONTRIBUTING.md) are for project overview and contribution guidelines only.Documentation Structure:
content/pages/docs/guides/- Implementation guidescontent/pages/docs/technical/- Technical documentationcontent/pages/docs/audits/- Audits and reportscontent/components/- Component documentationcontent/design-tokens/- Design system tokenscontent/blog/- Blog posts and articles
Adding Documentation:
- Create YAML files in the appropriate
content/directory - Follow the structure of existing documentation files
- Ensure dual linking: link from at least two other pages
- Update navigation if adding new sections
- Test links in the application
- Run validation:
./fyt validate
Documentation Format:
- Use YAML format for content files
- Include clear sections: Overview, Features, Implementation, Testing
- Add related documentation links
- Include code examples where relevant
- Use proper metadata (title, description, keywords, slug)
See also: Project TODO for documentation migration tasks
BUG REPORTS
How to report issues effectively
USE CLEAR TITLE
Describe the issue concisely in the title
EXPECTED VS ACTUAL
Describe what should happen vs what does happen
STEPS TO REPRODUCE
Provide detailed steps to reproduce the issue
SCREENSHOTS & ENVIRONMENT
Add screenshots if relevant. Specify browser, device, and OS
CONSOLE ERRORS
Include any console errors or warnings
FEATURE REQUESTS
Proposing new features
DESCRIBE USE CASE
Explain the user need and problem being solved
Focus on real-world communication needs
DESIGN PHILOSOPHY
Explain how it fits our brutal/humanist aesthetic
Maintain bold design principles
HISTORICAL CONTEXT
Include historical or movement context if relevant
Honor graphic design heritage
ACCESSIBILITY
Consider accessibility implications
WCAG compliance and inclusive design
IMPLEMENTATION
Suggest implementation approach if you have ideas
Technical details and considerations
WE ESPECIALLY WELCOME
Priority contribution areas
HIGH PRIORITY
HISTORICALLY-INFORMED COMPONENTS
Components that honor movement traditions and graphic design heritage
ALWAYS WELCOME
ACCESSIBILITY IMPROVEMENTS
Enhancements to screen reader support, keyboard navigation, and WCAG compliance
NEEDED
DOCUMENTATION ENHANCEMENTS
Improved guides, examples, and technical documentation
ONGOING
PERFORMANCE OPTIMIZATIONS
Bundle size reduction, build time improvements, runtime performance
CORE MISSION
PRINT OPTIMIZATION FEATURES
Enhanced print styles, ink conservation, paper size optimization
RECOGNITION & NEXT STEPS
Celebrating contributors and getting started
CONTRIBUTOR RECOGNITION
Significant improvements recognized in documentation and release notes
We celebrate those who advance our mission
CHECK PROJECT TODO
View current priorities and open tasks
Link: /docs/todo
REVIEW DOCUMENTATION
Understand the design system and implementation details
Link: /docs
BROWSE COMPONENTS
Explore the component library and design patterns
Link: /components
ASK QUESTIONS
Use GitHub issues for questions and discussions
Community support available
READ CONTRIBUTING.MD
Reference full contribution guidelines on GitHub
Additional details and policies