First off, thank you for considering contributing to SkillDeck! It's people like you that make SkillDeck such a great tool. We welcome contributions of all kinds – not just code – including documentation, bug reports, feature suggestions, and community support.
This project and everyone participating in it is governed by the SkillDeck Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to conduct@skilldeck.dev.
- Ensure the bug was not already reported by searching on GitHub under Issues.
- If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
- Open a new issue with a clear title and detailed description.
- Explain why this enhancement would be useful to most SkillDeck users.
- If you're proposing a new feature, you may want to read the Vision Document first to understand the project's goals.
Unsure where to begin? You can start by looking through help-wanted and good-first-issue issues:
- Good first issues – small changes ideal for newcomers.
- Help wanted issues – a bit more involved.
The SkillDeck documentation site lives in the skilldeck-user-docs/ folder and is built with Astro Starlight. We welcome improvements to the docs, including:
- Fixing typos or clarifying existing content
- Adding new tutorials, how‑to guides, or explanations
- Improving code examples
- Translating content into other languages
- Ensure you have Node.js (v20 or later) and pnpm installed.
- Navigate to the docs folder:
cd skilldeck-user-docs - Install dependencies:
pnpm install
- Start the development server:
pnpm run dev
- Open
http://localhost:4321in your browser. The site will automatically reload when you save changes.
- All documentation content is in
src/content/docs/. Files are organized by language (e.g.,en/) and then by version (latest/,v0-2/, etc.). Most contributions should go underen/latest/. - If you're adding a new page, remember to include frontmatter at the top with
titleanddescriptionfields. - Use the custom components (
Nudge,Checkpoint,Feedback) where appropriate – they're already imported and ready to use.
- Fork the repository and create a branch (e.g.,
docs/fix-typo). - Make your changes in the
skilldeck-user-docs/folder. - Test locally to ensure everything looks correct.
- Commit your changes with a clear message (e.g.,
docs: fix typo in installation guide). - Open a pull request against the
mainbranch.
- Fork the repo and create your branch from
main. - If you've added code that should be tested, add tests.
- If you've changed APIs, update the documentation.
- Ensure the test suite passes.
- Make sure your code lints (Rustfmt, Clippy, Biome).
- Issue that pull request!
- Rust (latest stable) – install via rustup
- Node.js (v20 or later) – install via nvm or from nodejs.org
- Tauri CLI –
cargo install tauri-cli - pnpm (package manager) –
npm install -g pnpm
-
Clone the repository:
git clone https://github.com/skilldeck/skilldeck.git cd skilldeck -
Install frontend dependencies:
pnpm install
-
Run in development mode:
pnpm tauri dev
This will start the Rust backend and the Vite dev server, and open the Tauri window.
- Rust unit tests:
cargo test --workspace - Rust integration tests:
cargo test --test integration - React component tests:
pnpm test - End-to-end tests: (coming soon)
- Rust: We use
rustfmtandclippy. Runcargo fmtandcargo clippybefore committing. - TypeScript/React: We use Biome. Run
pnpm lintandpnpm format.
See ARCHITECTURE.md for an overview of the codebase organization.
- Discord: Join our Discord server for real-time chat.
- GitHub Discussions: Use Discussions for questions, ideas, and general conversation.
Thank you for contributing! 🚀