First of all — thank you for considering contributing to JustCode.
This project exists to make coding feel clearer, less frustrating, and more collaborative.
Every contribution, big or small, helps move us closer to that goal.
Whether you’re fixing a typo, improving UI, optimizing backend logic, or adding a brand-new feature — you’re welcome here.
You can contribute in many ways:
- 🐛 Fix bugs
- ✨ Add new features
- 🎨 Improve UI/UX
- 🧠 Improve AI prompts or explanations
- 📄 Improve documentation
- ⚡ Optimize performance
- 🧪 Add tests
- 🌍 Improve accessibility or responsiveness
If you’re unsure where to start, check the Issues tab for:
good first issuehelp wanted
- Please comment on an issue before starting work.
- Wait for a maintainer to assign the issue to you.
- This helps avoid duplicate work and conflicts.
Before contributing, it helps to know what we’re working with:
- React.js
- Tailwind CSS
- Framer Motion
- Firebase
- Node.js
- Express.js
- MongoDB (Atlas)
- Socket.io (DevZone collaboration)
- OpenAI GPT APIs
- jsPDF
- UUID
JustCode follows a client–server architecture:
-
Client (Frontend)
Built with React and Tailwind CSS. Handles the code editor UI, user interactions, AI requests, and real-time collaboration interface. -
Server (Backend)
Built with Node.js and Express.js. Manages API routes, AI prompt handling, real-time socket connections, and database operations. -
Database
MongoDB is used to store user sessions, code data, and collaboration-related information. -
Realtime Layer
Socket.io enables live collaboration features in DevZone.
This separation ensures scalability, maintainability, and clear responsibility between components.
Click the Fork button at the top right of this repository.
git clone https://github.com/YOUR-USERNAME/JustCoding.git
cd JustCodingFrontend
cd client
npm installBackend
cd server
npm installCreate a .env file in the backend directory and add required keys:
MONGO_URI=your_mongodb_uri
OPENAI_API_KEY=your_openai_keynpm run devnpm run devAlways create a new branch for your work:
git checkout -b feature/your-feature-nameExamples:
fix/editor-bug
feature/pdf-export-improvement
ui/devzone-enhancementWrite clear, meaningful commit messages:
git commit -m "Fix: prevent editor crash on empty input"- Add: for new features
- Fix: for bug fixes
- Update: for improvements
- Refactor: for code restructuring
- Docs: for documentation changes
Before opening a PR, make sure:
- Your code runs locally without errors
- You’ve tested your changes
- You’ve followed existing code style
- You’ve updated documentation if needed
- When creating a PR, include:
- What problem your PR solves
- What changes you made
- Screenshots or screen recordings (for UI changes)
- Any known limitations or follow-ups
If you’re working on GPT prompts or AI features:
- Keep prompts clear, safe, and user-friendly
- Avoid leaking user data
- Test outputs with multiple examples
- Prefer explainability over verbosity
- Keep the UI clean and intuitive
- Maintain dark/light theme compatibility
- Avoid unnecessary animations
- Ensure responsiveness across devices
- Follow existing project structure and patterns
- Use meaningful variable and function names
- Keep files focused and readable
- Be respectful and constructive
- No harassment, discrimination, or toxic behavior
- Feedback should be kind, specific, and actionable
- This project follows a Code of Conduct — please respect it in all interactions.
If you’re stuck:
- Open a discussion
- Comment on an issue
- Ask questions — curiosity is welcome here
JustCode exists because coding shouldn’t feel lonely or overwhelming. Thanks for helping make this space better, smarter, and more human.