Thanks for your interest in contributing to JSONCraft! This project is a browser-based tool that converts JSON into TypeScript, Python, GraphQL, and SQL models — and contributions of all kinds are welcome.
- Getting Started
- Ways to Contribute
- Development Setup
- Project Structure
- Submitting a Pull Request
- Adding a New Language Generator
- Code Style Guidelines
- Reporting Bugs
- Suggesting Features
- Code of Conduct
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/JSONCraft.git cd JSONCraft - Open
index.htmlin your browser — no build step or dependencies required.
- 🐛 Fix a bug
- ✨ Add a new language generator
- 🎨 Improve the UI or CSS
- 📝 Improve documentation
- 🧪 Add or improve JSON test cases
- 💡 Suggest ideas via GitHub Issues
JSONCraft has zero dependencies and runs entirely in the browser. There is no npm install, no build pipeline, and no bundler.
jsoncraft/
├── index.html ← UI structure
├── style.css ← Theming, layout, dark/light mode
└── script.js ← All conversion logic lives here
To work on it:
- Open
index.htmlin your browser directly, or use a simple local server:npx serve . # or python3 -m http.server
- Edit files and refresh your browser to see changes.
- Create a branch from
mainwith a descriptive name:git checkout -b feature/rust-struct-generator # or git checkout -b fix/nested-array-detection - Make your changes and test them in the browser.
- Commit with a clear message:
git commit -m "feat: add Rust struct generator" - Push to your fork:
git push origin feature/rust-struct-generator
- Open a Pull Request against the
mainbranch of this repository. - Fill in the PR description explaining what you changed and why.
PRs are reviewed as time allows. Please be patient and responsive to feedback.
The roadmap includes Go, Rust, Java, Kotlin, Zod, and Prisma. If you'd like to add one:
- Add a new conversion function in
script.jsfollowing the pattern of existing generators (e.g.generateTypeScript,generatePython). - Add a corresponding button/tab in
index.html. - Handle nested objects and arrays consistently with the existing generators.
- Test with a variety of JSON inputs including nested objects, arrays, nulls, and mixed types.
- Note the new language in your PR description.
- Vanilla JS only — no frameworks or libraries. Keep it zero-dependency.
- Use
camelCasefor variables and functions. - Keep generator functions self-contained and easy to read.
- Comment any non-obvious logic, especially type inference or edge case handling.
- Avoid breaking the dark/light theme toggle when touching CSS.
Open an Issue and include:
- A description of the problem
- The JSON input that triggered the bug
- The expected output vs. the actual output
- Browser and OS (since this is a browser-based tool)
Open an Issue with the label enhancement and describe:
- What you'd like to see added
- Why it would be useful to developers using JSONCraft
- Any examples of expected input/output
This project follows the Contributor Covenant Code of Conduct. By participating, you agree to uphold a welcoming and respectful environment for everyone.
Happy crafting! 🛠️