Issue Policy
Before contributing, please understand our issue guidelines to keep things organized:Suggesting a File Format
When suggesting a file format, you must at minimum:Check for duplicates
Make sure that there isn’t already an issue about the same format, and that we don’t already support it.
Explain the conversion
Explain what you expect the conversion to be like (what medium is it converting to/from). It’s important to note that simply parsing the underlying data is not sufficient.For example, simply treating SVG images as raw XML data without supporting conversion to raster images would defeat the point.
If this seems like a lot, please remember - a developer will have to do 100x more work to actually implement the format. Doing a bit of research not only saves them precious time, it also weeds out “unserious” proposals that would only bloat our to-do list.
Bug Reports
If you’re submitting a bug report, you only need to check if the problem isn’t already reported by someone else. Bug reports are generally quite important.Development Setup
To set up Convert to it! for local development:Clone with submodules
Clone the repository WITH SUBMODULES. Omitting submodules will leave you missing a few dependencies.
Install Bun
Install Bun if you haven’t already.
Optional: Generate Format Cache
For better performance, you can generate a format cache:Wait for initial build
When you first open the page, it’ll take a while to generate the list of supported formats for each tool. Wait for the
Built initial format list message in the console.Export cache data
In the browser console, use
printSupportedFormatCache() to get a JSON string with the cache data.Contribution Guidelines
Format Support Philosophy
When implementing a new file format, please treat the file as the media that it represents, not the data that it contains.Example: If you were making an SVG handler, you should treat the file as an image, not as XML.
Code Quality
- Follow the existing code style and patterns
- Use TypeScript for type safety
- Add appropriate error handling
- Test your handler with various input files
Pull Request Process
- Create a new branch for your feature
- Implement your changes following the handler creation guide
- Test thoroughly with multiple file variations
- Submit a pull request with a clear description of:
- What format(s) you’re adding
- How the conversion works
- Any limitations or known issues
- Links to format specifications or references used
Getting Help
For questions or discussions:- Review existing handlers in
src/handlers/for examples - Check the Architecture page for system overview
- See Creating Handlers for step-by-step guide
- Open a GitHub issue for specific problems (following the guidelines above)