Hello! mimetype.io is an open-source Next.js project that provides a comprehensive database and resources related to various MIME types. We welcome contributors of all levels to join us and make this platform even better.
The site is statically generated: every page is built ahead of time from
src/mimeData.json, which is the file most contributions
touch.
- Node.js (v24 — see
.nvmrc)
- Fork and clone the repository.
git clone https://github.com/patrickmccallum/mimetype-io.git- Navigate into the project directory.
cd mimetype-io- Install the dependencies.
npm install- Start the dev server.
npm run devnpm test runs everything CI runs: formatting, TypeScript, data validation,
a production build, and assertions against the exported pages.
npm testDescriptions in src/mimeData.json are Markdown, not HTML:
| Want | Write |
|---|---|
| A new paragraph | a blank line (\n\n) |
| Bold | **bold** |
| Inline code | `code` |
| Link to another type | [application/zip](/application/zip) |
| External link | [label](https://example.com) — opens in a new tab automatically |
Raw HTML is rejected by the validator and would render as literal text anyway, since descriptions are rendered to React elements rather than injected as HTML.
If you only changed src/mimeData.json, npm run test:data is the quick check
— it catches malformed entries, duplicate names, and cross-links that would make
one mimetype's page overwrite another's.
Contributions are welcome and greatly appreciated!
- Fork the project.
- Create a new branch for your feature (
git checkout -b feature/newFeature). - Commit your changes (
git commit -m 'Add newFeature'). - Push to your feature branch (
git push origin feature/newFeature). - Open a Pull Request.
For any queries, feel free to reach out either here, with an issue, or at contact [at] mimetype [dot] io