Help with Coding
If you're a software developer and would like to contribute to the project, please get involved. Code contributions are very welcome, and every helping hand makes a real difference.
Getting Started
- Browse the DPD Project Board for open and in-progress issues.
- Comment on any issue to find out more, or get in touch by email.
- Read the full CONTRIBUTING.md for the complete contribution workflow, including development setup, pull request process, and commit conventions.
Contribution Areas
- Bug fixes — squash a bug you've encountered.
- New features — implement something from the project board or your own idea.
- Exporters — improve existing dictionary exporters (GoldenDict, Kindle, Apple Dictionary, PDF, etc.) or create new ones.
- Webapp / Frontend — improve the dpdict.net web interface.
- Browser extension — work on the WXT-based cross-browser extension.
- Documentation — improve developer docs or this website.
The best way to get started is to find something that you want DPD to do, and make it happen.
Languages
- Python: Most of the project backend is written in Python.
- HTML CSS JS: Most of the frontend is written in HTML, CSS and vanilla JavaScript.
- Go: A few of the more time-consuming operations, like the Deconstructor and generating Frequency tables, are written in Go.
- TypeScript: The cross-browser extension is built with WXT and TypeScript.
- Markdown: This website and all the project docs are written in Markdown.
Development Prerequisites
You only need Git and uv (for Python dependency management) to get started. Go and Node.js are only required for their specific components. See the CONTRIBUTING.md for full setup instructions, and the Quick Start Guide for database usage.