Thanks for your interest in contributing! JavaMem is a browser-based Java memory visualizer built to correct the mental models that textbooks get wrong. Every contribution — big or small — helps developers learn better.
- Check the open issues to see what needs work
- Issues labeled
good first issueare great starting points if you're new to the project - If you want to work on something, comment on the issue first so we don't duplicate effort
JavaMem has zero dependencies — no npm, no build step, no backend.
# 1. Fork the repo and clone it
git clone https://github.com/YOUR_USERNAME/JavaMem-Java-Memory-Visualizer.git
# 2. Open the file directly in your browser
open index.html # macOS
start index.html # Windows
xdg-open index.html # LinuxThat's it. Edit index.html, refresh the browser, see changes instantly.
- Fork the repository
- Create a branch with a descriptive name:
git checkout -b fix/hashmap-bucket-rendering git checkout -b feature/queue-visualization
- Make your changes in
index.html - Test manually — open in Chrome, Firefox, and Safari if possible
- Commit with a clear message:
git commit -m "fix: correct LinkedList node spacing on small screens" git commit -m "feat: add Queue data structure visualization"
- Push and open a Pull Request against
main
Before submitting, please make sure:
- The visualizer renders correctly in a modern browser
- No existing feature is broken
- New syntax (if added) is documented in the README's Supported Syntax section
- Code is readable — add a comment if something isn't obvious
| Type | Examples |
|---|---|
| 🐛 Bug fixes | Rendering glitches, broken interactions, wrong memory behavior |
| ✨ New data structures | Queue, PriorityQueue, Deque, Graph |
| 📖 Documentation | Clearer explanations, fixing typos, adding examples |
| 🎨 UI improvements | Better colors, responsive layout, accessibility |
| ⚡ Performance | Smoother animations, faster rendering |
| 🧪 Edge cases | Unusual inputs, boundary conditions |
- Don't add external libraries or npm dependencies — JavaMem must stay a single self-contained HTML file
- Don't change the core educational intent — every visual choice is deliberate (see the README's "Why I Built This" section)
- Don't submit AI-generated code dumps without testing and understanding them
Open a GitHub Discussion or comment on an existing issue. All skill levels welcome.
By contributing, you agree that your contributions will be licensed under the MIT License.