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.
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/. Please fill out all required sections to help us triage and resolve your issue quickly.
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 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 (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
- 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.
Thank you for contributing to GroqTales! If you have any questions, open an issue, ask in Discord, or contact the maintainers directly.