Getting Started
Fork the repository
Fork the iStory repository on GitHub
Development Workflow
Branch Naming Convention
Use descriptive prefixes for your branches:feature/
New features or enhancements
fix/
Bug fixes
docs/
Documentation updates
chore/
Maintenance tasks
Commit Messages
Follow Conventional Commits style:The format is:
type(scope): description. Common types: feat, fix, docs, style, refactor, test, chore.Code Style & Standards
Linting
The project uses ESLint and TypeScript. Run these before submitting:TypeScript Guidelines
Always define types
Always define types
Use interfaces for objects
Use interfaces for objects
Avoid type assertions
Avoid type assertions
React/Next.js Patterns
Server Components
Use for pages that fetch data (metadata, SEO)
Client Components
Use
"use client" for interactive UIComponent Organization
Testing Requirements
Writing Tests
All new features should include tests:Running Tests
Before submitting your PR:Pull Request Process
Ensure quality checks pass
- Linting passes (
npm run lint) - All tests pass (
npx vitest run) - Production build succeeds (
npm run build) - Code follows existing patterns
Update documentation
If you’ve changed:
- API routes → Update
docs/API_REFERENCE.md - Database schema → Update
docs/DATABASE_SCHEMA.md - Testing patterns → Update
docs/TESTING_GUIDE.md
Create pull request
Push your branch and open a PR with:
- Clear title describing the change
- Detailed description of what and why
- Screenshots for UI changes
- Link to related issues
PR Template
Contribution Guidelines
What to Contribute
Bug Fixes
Fix issues listed in GitHub Issues or bugs you discover
Features
Implement features from the roadmap or propose new ones
Documentation
Improve guides, add examples, fix typos
Tests
Increase test coverage, add edge cases
Before Starting Major Work
For significant features or breaking changes, open an issue first to discuss the design and scope. This prevents wasted effort if the approach isn’t aligned with the project direction.
Code of Conduct
Be respectful and inclusive. Follow the guidelines inCODE_OF_CONDUCT.md:
- Use welcoming and inclusive language
- Be respectful of differing viewpoints
- Accept constructive criticism gracefully
- Focus on what’s best for the community
- Show empathy towards other community members
Security Issues
Allow time for the team to respond and patch before public disclosure.Community Resources
Discord
Join the community for questions and discussions
GitHub Discussions
Long-form discussions about features and architecture
Twitter/X
Follow @eStoryApp for updates
Development Environment
Recommended Tools
- Editor: VS Code with ESLint and Prettier extensions
- Node.js: Version 18 or higher
- Package Manager: npm (comes with Node.js)
- Wallet: MetaMask for Web3 testing
- Database: Supabase account (free tier works)
Useful Commands
| Command | Description |
|---|---|
npm run dev | Start development server |
npm run build | Build for production |
npm run lint | Run ESLint checks |
npx vitest | Run tests in watch mode |
npx playwright test --ui | Run E2E tests with UI |
npx hardhat compile | Compile smart contracts |
Recognition
All contributors are recognized in the project README and release notes. Thank you for making iStory better! 🎙️📚
Questions?
If you have questions about contributing:- Check existing GitHub Discussions
- Ask in the Discord community
- Open a new discussion for general questions
- Only open issues for specific bugs or feature requests