Skip to main content
Thank you for your interest in contributing to Inkdown! This guide will help you get started with contributing to the project.

Prerequisites

Before you begin contributing, make sure you have the following installed:

Fork and Clone

  1. Fork the repository on GitHub by clicking the “Fork” button at the top right of the repository page
  2. Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/inkdown.git
cd inkdown
  1. Add the upstream remote to keep your fork synchronized:
git remote add upstream https://github.com/inkdown/inkdown.git

Finding Issues to Work On

Good First Issues

Look for issues labeled good first issue - these are specifically curated for new contributors and typically involve:
  • Documentation improvements
  • Simple bug fixes
  • UI/UX enhancements
  • Adding tests

Bug Reports

Found a bug? Before creating an issue:
  1. Search existing issues to avoid duplicates
  2. Reproduce the bug on the latest version
  3. Gather information:
    • Steps to reproduce
    • Expected vs actual behavior
    • Screenshots or videos (if applicable)
    • System information (OS, version)
Open a bug report

Feature Requests

Have an idea for a new feature?
  1. Check existing discussions - someone might have suggested it already
  2. Open a discussion first before implementing to get feedback
  3. Describe the use case and why it would benefit users
Start a feature discussion

Pull Request Process

Before You Start

  1. Comment on the issue you want to work on to avoid duplicate work
  2. Ask questions if anything is unclear
  3. Get approval for large features or breaking changes

Creating Your PR

  1. Create a branch from main:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-bug-fix
Branch naming conventions:
  • feature/ - New features
  • fix/ - Bug fixes
  • docs/ - Documentation changes
  • refactor/ - Code refactoring
  • test/ - Adding or updating tests
  1. Make your changes following the code style guidelines
  2. Run checks before committing:
bun run check        # Lint and typecheck
bun run test         # Run tests (if applicable)
  1. Commit your changes following the commit convention:
git add .
git commit -m "feat(editor): add vim mode support"
  1. Push to your fork:
git push origin feature/your-feature-name
  1. Open a Pull Request on GitHub:
    • Fill out the PR template completely
    • Link related issues
    • Add screenshots for UI changes
    • Request review from maintainers

PR Checklist

Before submitting, ensure:
  • Code follows the coding guidelines
  • All checks pass (bun run check)
  • Tests added for new functionality (when applicable)
  • Documentation updated (if needed)
  • Commits follow the commit convention
  • PR description is clear and complete

Review Process

  1. A maintainer will review your PR within a few days
  2. Address feedback by pushing new commits to your branch
  3. Tests must pass - CI checks run automatically
  4. Once approved, a maintainer will merge your PR

Commit Convention

We use Conventional Commits to maintain a clean git history.

Format

<type>(<scope>): <description>

[optional body]

[optional footer]

Types

TypeDescription
featNew feature
fixBug fix
docsDocumentation
styleCode style (formatting, etc.)
refactorCode change that neither fixes a bug nor adds a feature
perfPerformance improvement
testAdding or updating tests
choreMaintenance tasks

Examples

feat(editor): add vim mode support

fix(sync): resolve conflict detection issue

docs(readme): update installation instructions

refactor(core): simplify plugin loading logic

test(sync): add tests for encryption service

Types of Contributions

Documentation

Documentation improvements are always welcome:
  • Fix typos and grammatical errors
  • Add examples and clarifications
  • Improve navigation and structure
  • Write tutorials and guides
Documentation is located in the docs/ directory.

Code

Contribute to the codebase:
  • Fix bugs
  • Implement new features
  • Improve performance
  • Add tests
  • Refactor code

Plugins

Want to create a plugin? Check out our Plugin Development Guide.

Themes

Create custom themes for Inkdown:
  • Follow the theme structure guidelines
  • Use CSS variables for colors
  • Test in both light and dark modes

Getting Help

Need assistance?

Recognition

Contributors are recognized in:
  • CONTRIBUTORS.md file
  • Release notes
  • GitHub contributors page
  • Our eternal gratitude 💜

Next Steps

Welcome to the Inkdown community! 🎉