Thank you for your interest in contributing to GroqTales, an AI-powered Web3 storytelling platform! We welcome developers, writers, designers, and blockchain enthusiasts to help us build a creative, open, and secure platform. Please read this guide before getting started.
- SWOC'26 Participation
- Code of Conduct
- How Can I Contribute?
- Using Issue Templates
- Development Setup
- Repository Structure & Architecture
- Coding Guidelines
- Pull Request Process
- Testing Guidelines
- Labeling & Tagging
- Documentation
- Community & Support
Are you contributing as part of Social Winter of Code (SWOC) 2026? Please see our SWOC'26.md for program-specific guidelines, point systems, and communication channels.
Note: Ensure your PRs are tagged with the
SWOC'26label to be eligible for program points.
We are committed to providing a welcoming and inclusive environment for everyone. By participating, you agree to:
- Be respectful of different viewpoints and experiences.
- Gracefully accept constructive criticism.
- Focus on what is best for the community and project.
- Show empathy toward other community members.
For more, see CODE_OF_CONDUCT.md.
GroqTales uses labels to help contributors understand scope, difficulty, and expectations.
- Bug 🐛 – Something is broken or behaving incorrectly
- Feature ✨ – New functionality or enhancement
- Task 📋 – Documentation, refactors, cleanup, or non-feature work
- [BIG] 🚀 – Large, multi-step features requiring discussion
- Security 🔐 – Vulnerabilities or sensitive issues (use responsible disclosure)
- Easy – Beginner friendly, good first issue
- Medium – Requires familiarity with the codebase
- Hard – Complex logic or architectural changes
You can contribute in several ways:
- Reporting Bugs: Use the
bug_report.mdtemplate and provide detailed steps to reproduce. - Suggesting Features: Use the
feature.mdtemplate to propose new ideas. - Code Contributions: Pick up issues labeled
good first issue. - Web3/Blockchain: Use the
web3_issue.mdtemplate for Monad/NFT-related contributions. - Security: Use the
security.mdtemplate for vulnerabilities. - Documentation: Help improve the README, Wiki, or code comments.
Before opening any issue or pull request, you must use the relevant template provided in .github/ISSUE_TEMPLATE/.
Templates include:
bug_report.md– For bugs or unexpected behaviorfeature.md– For new features or enhancementsweb3_issue.md– For blockchain/NFT/Web3-specific issuessecurity.md– For vulnerabilities or security concernsbasic.md– For small tasks, typos, or minor requestsother.md– For anything not covered above
Please choose the correct template when opening an issue:
- Basic Issue – Small improvements, UI tweaks, or questions
- Bug Report – Crashes, broken UI, incorrect behavior
- Feature Request – New features or enhancements
- [BIG] Feature Proposal – Large ideas needing design discussion
- Security Report – Security-related issues (do not disclose publicly)
Choosing the right template helps maintainers respond faster.
Please fill out all required sections in the template to help us triage and resolve your issue quickly.
To get started with development:
-
Clone the Repository:
git clone [https://github.com/IndieHub25/GroqTales.git](https://github.com/IndieHub25/GroqTales.git) cd GroqTales -
Install Dependencies:
npm install
-
Environment Variables: Copy
.env.exampleto.env.localand fill in:
GROQ_API_KEY– Groq AI key (required)MONAD_RPC_URL– Monad blockchain endpointUNSPLASH_API_KEY– (Optional) for placeholder visuals
- Run Development Server:
npm run dev
Visit http://localhost:3000 in your browser.
GroqTales is organized for scalability and modularity. Here’s a high-level overview:
GroqTales/
│
├── .github/ # Issue templates, workflows, configs
├── app/ # Next.js app (pages, routing, layouts)
├── components/ # Reusable React UI components
├── contracts/ # Solidity smart contracts for NFT minting
├── lib/ # Utilities, API integrations, helpers
├── public/ # Static assets (images, icons, etc.)
├── scripts/ # Deployment and automation scripts
├── test/ # Contract tests (e.g., Hardhat/Foundry)
├── tests/ # Frontend/backend test cases
├── types/ # Shared TypeScript types/interfaces
├── wiki/ # Project Wiki and guides
├── .env.example # Example environment variables
├── package.json # Project dependencies and scripts
├── tailwind.config.js # TailwindCSS config
├── README.md # Main project overview
├── CONTRIBUTING.md # Contribution guidelines
├── CONTRIBUTORS.md # List of contributors
├── SECURITY.md # Security policy
└── ... # Other config and support files
- Frontend: Built with Next.js, React, TailwindCSS, and shadcn/ui for a modern, responsive UI.
- Backend: Node.js API routes handle authentication, story generation, and blockchain interactions.
- Blockchain: Monad SDK and Solidity smart contracts manage NFT minting and ownership.
- AI: Groq API powers story and comic generation.
- Database: MongoDB stores user data, stories, and metadata.
- Testing: Jest/React Testing Library for frontend; Hardhat/Foundry for smart contracts.
- JavaScript/TypeScript: Follow the Airbnb Style Guide.
- React/Next.js: Use functional components and hooks. Follow Next.js routing and data-fetching conventions.
- Formatting: Use Prettier (
npm run format). - Linting: Use ESLint (
npm run lint). - Commits: Use descriptive commit messages (Conventional Commits format preferred).
- Docs: Update docs and inline comments for all major changes.
- Fork the repository
- Create a feature branch
git checkout -b feature/short-description - Make your changes
- Commit with a clear message
Example:docs: explain issue labels and templates - Push to your fork
- Open a Pull Request and link the related issue
Please wait for review before starting large changes.
-
Fork the repository (do not branch from upstream directly).
-
Clone your fork locally:
git clone https://github.com/<your-username>/GroqTales.git cd GroqTales git remote add upstream https://github.com/IndieHub25/GroqTales.git
-
Synchronize before starting work:
git fetch upstream git checkout main git merge upstream/main
-
Create a feature branch (use descriptive, kebab or slash style):
git checkout -b feature/improve-story-generator
-
Implement changes (small, atomic commits – use Conventional Commit style if possible).
-
Run quality gates locally:
npm run lint npm run type-check npm test -
Rebase onto upstream/main before opening PR:
git fetch upstream git rebase upstream/main
-
Push to your fork:
git push -u origin feature/improve-story-generator
-
Open a Pull Request:
- Base:
IndieHub25/GroqTalesmain - Head:
your-username:feature/improve-story-generator - Fill out PR template completely
- Link issue with
Fixes #<number>where applicable
- Address review feedback and keep branch rebased (avoid merge commits).
- PR Merge Policy: squash or rebase merges preferred; maintainers handle final merge.
- After merge: sync your fork:
git checkout main git fetch upstream git merge upstream/main git push origin main
The following section describes the full pull request process in detail:
GroqTales uses GitHub Actions to ensure code quality and security.
- Fork Behavior: If you are contributing from a fork, some workflows (like Deployments) will not run. This is expected security behavior.
- "Approve and Run": Maintainers may need to approve your workflows if you are a first-time contributor. Note that automated PR comments (linting feedback, welcome messages) might not appear on fork PRs due to GitHub security restrictions. Please check the "Files changed" tab and the Actions logs for feedback.
- Failures: If a workflow fails with a "Resource not accessible by integration" error, it is likely a permission issue with your fork. A maintainer will review the logs.
- Write or update tests for new features and bug fixes.
- Frontend: Use Jest and React Testing Library.
- Smart Contracts: Use Hardhat or Foundry for Solidity tests.
- Ensure all tests pass before submitting a PR.
- If unsure how to test a feature, ask in your PR or on Discord.
To ensure your contributions are tracked for SWOC'26, use the following labels:
- Program:
SWOC'26(Mandatory for points) - Difficulty:
SWOC-Level-1,SWOC-Level-2,SWOC-Level-3 - Area:
frontend,backend,blockchain,AI/LLM - Status:
good first issue,help wanted
- Update or add documentation for any new features or changes.
- Add inline comments for complex logic.
- Keep the Wiki up to date for setup, usage, and architecture.
- Discord: Join our Discord server for real-time help and collaboration.
- Discussions: Use GitHub Discussions for ideas and Q&A.
- Security: For vulnerabilities, see SECURITY.md.
- Clear title and description
- Correct issue template used
- Relevant labels selected
- Screenshots/logs attached (if applicable)
- Linked related issues or discussions
Thank you for contributing to GroqTales! If you have any questions, open an issue, ask in Discord, or contact the maintainers directly.