Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ragaeeb/paragrafs/llms.txt
Use this file to discover all available pages before exploring further.
Welcome Contributors!
Contributions are welcome! We appreciate your interest in improving Paragrafs. Please make sure your contributions adhere to the coding standards and are accompanied by relevant tests.Getting Started
Follow these steps to set up your development environment:Fork the repository
Fork the Paragrafs repository on GitHub to your account.
Install Bun
Paragrafs uses Bun as its runtime and package manager. Install it if you haven’t already:
Development Workflow
Code Quality Checks
Before submitting your changes, ensure they meet our quality standards:All three commands (lint, build, and test) should pass without errors before submitting a pull request.
Project Structure
Paragrafs uses a Bun-native toolchain:tsdown
Official bundler for compiling TypeScript (configured in
tsdown.config.ts)Biome
Fast linter and formatter (configured in
biome.json)Bun Test
Built-in test runner with coverage support
ESM
Modern ES modules format for all output
Coding Standards
TypeScript
- Write type-safe code with proper TypeScript annotations
- Avoid
anytypes when possible - Use interfaces for public APIs
- Export types alongside implementations
Code Style
Formatting
Formatting
Biome handles code formatting automatically. Run
bun run lint to format your code.Naming Conventions
Naming Conventions
- Use camelCase for functions and variables
- Use PascalCase for types and interfaces
- Use SCREAMING_SNAKE_CASE for constants
- Use descriptive names that explain intent
Documentation
Documentation
- Add JSDoc comments for public APIs
- Include examples in complex functions
- Document parameters and return types
- Explain any non-obvious behavior
Testing Requirements
When writing tests:- Cover both happy paths and edge cases
- Use descriptive test names that explain what’s being tested
- Aim for high code coverage (check with
bun test --coverage) - Test public APIs, not implementation details
- Include tests for Arabic text handling when relevant
Example Test
Submitting Changes
Demo App Development
Paragrafs includes a Svelte + Vite demo app in thedemo/ directory:
Demo Commands
The demo depends on the local package via
file:.., so demo:build automatically runs bun run build first.Contribution Ideas
Looking for ways to contribute? Here are some ideas:Bug Fixes
Check the issues page for reported bugs
Documentation
Improve examples, add tutorials, or clarify existing docs
Performance
Optimize algorithms for better performance
Features
Propose new features that enhance transcription processing
Tests
Increase test coverage or add edge case testing
Language Support
Enhance support for languages beyond Arabic
Code Review Process
After submitting a pull request:- Automated checks will run (CI build, tests, linting)
- Maintainer review - a project maintainer will review your code
- Feedback - you may receive requests for changes
- Approval - once approved, your PR will be merged
- Release - your changes will be included in the next release
Community Guidelines
- Be respectful and constructive in discussions
- Follow the code of conduct (if available)
- Help other contributors when possible
- Ask questions if something is unclear
License
By contributing to Paragrafs, you agree that your contributions will be licensed under the MIT License.Questions?
Open an Issue
Have questions about contributing? Open an issue and we’ll help you get started!