AI-Powered Web3 Storytelling Platform
Create, share, and own AI-generated stories and comics as NFTs on the Monad blockchain.
- What is GroqTales?
- Features
- Tech Stack
- Quick Start
- π οΈ Environment Configuration
- π Smart Contracts
- ποΈ System Architecture
- For Developers
- π€ Contributing
- Roadmap
- Contributors
- Documentation & Architecture
- Resources
- License
- Security
GroqTales is an open-source, AI-powered Web3 storytelling platform. Writers and artists can generate immersive narratives or comic-style stories using Groq AI, then mint and trade them as NFTs on the Monad blockchain. With a focus on ownership, authenticity, and community, GroqTales bridges the world of creative writing, generative AI, and decentralized technology.
- AI-Driven Story & Comic Generation Use Groq AI to generate stories or comic panel outlines by specifying title, genre, setting, characters, and themes. Both text and comic formats are supported.
- Extensive Story Customization (70+ Parameters) Fine-tune every aspect of your story with
comprehensive customization across 9 categories:
- Characters: Name, count, traits, age, background, protagonist type
- Plot & Structure: Type, conflict, arc, pacing, ending, plot twists
- Setting & World: Time period, location, world-building depth, atmosphere
- Writing Style & Tone: Voice, tone, style, reading level, mood, dialogue percentage, description detail
- Themes & Messages: Primary/secondary themes, moral complexity, social commentary
- Content Controls: Violence, romance, language levels, mature content warnings
- Advanced Options: Chapters, foreshadowing, symbolism, multiple POVs
- Inspiration & References: Similar works, inspired by, tropes to avoid/include
- Technical Parameters: AI creativity slider, model selection
- NFT Minting on Monad Blockchain Seamlessly mint your stories as NFTs on Monad (Testnet live, Mainnet coming soon). Each NFT proves authenticity, ownership, and collectibility.
- Community Gallery Publish your stories publicly, browse the gallery, and interact with other creators. Stories can be shared freely or as NFTs.
- Progressive Disclosure UI Clean, accordion-based interface with 9 collapsible sections. Keeps simple tasks simple while offering advanced options when needed. Only prompt is requiredβeverything else is optional!
- Wallet Integration Connect with MetaMask, WalletConnect, or Ledger for secure publishing and minting. Wallet is required for NFT actions.
- Real-Time Story Streaming Watch your story unfold in real-time as Groq AI generates each segment.
- Mobile-Friendly & Responsive UI Built with modern web technologies for a seamless experience on any device.
- Extensible & Open Source Modular codebase with clear separation of frontend, backend, and smart contract logic. Contributions are welcome!
- Frontend: Next.js, React, TailwindCSS, shadcn/ui
- Backend: Node.js, API Routes
- AI: Groq API (story generation), Unsplash API (optional visuals)
- Blockchain: Monad SDK, Solidity Smart Contracts
- Database: MongoDB
- Hosting: Vercel
git clone https://github.com/IndieHub25/GroqTales
cd GroqTales
npm install
cp .env.example .env.local
# Add GROQ_API_KEY, UNSPLASH key, Monad network if needed
npm run dev- Visit http://localhost:3000
- Connect your wallet (optional; required for minting/publishing)
- Generate your story β Publish or Mint as NFT
See the Wiki for configuration, environment variables, and deployment details.
To run this project locally, you must set up your environment variables. Create a file named
.env.local in the root directory and populate it with the following keys:
| Variable | Requirement | Description |
|---|---|---|
GROQ_API_KEY |
Required | Powers the AI story generation engine via Groq LPU. |
MONAD_RPC_URL |
Required | The RPC endpoint for interacting with the Monad Testnet. |
MONGODB_URI |
Required | Connection string for the database storing user profiles and drafts. |
UNSPLASH_API_KEY |
Optional | API key used for fetching high-quality cover images for stories. |
NEXT_PUBLIC_CONTRACT_ADDR |
Required | The smart contract address for the deployed NFT collection. |
- Groq API: Generate a key at Groq Cloud Console.
- Monad RPC: Use the official Monad Testnet docs to find the latest RPC URL.
- MongoDB: Create a free cluster at MongoDB Atlas.
- Unsplash: Register an application on the Unsplash Developer Portal.
Warning
Never commit your .env.local file to version control. Ensure it is listed in your .gitignore
to prevent leaking sensitive API keys.
GroqTales utilizes Solidity-based smart contracts for NFT minting and ownership management. We prefer Hardhat for local development, compilation, and testing.
- Contract Location:
/contracts/ - Compile:
npx hardhat compile - Local Test:
npx hardhat test - Network: Monad Testnet (ChainID:
10143)
[!WARNING] Safety Disclaimer: GroqTales currently operates exclusively on the Monad Testnet. Do not send real funds (ETH or Mainnet MON) to these contract addresses. Always use a dedicated developer/faucet-funded wallet for testing.
GroqTales follows a decoupled architecture ensuring high-speed AI inference and decentralized ownership.
graph TD
A[User Interface - Next.js] -->|Prompt| B[Backend API - Node.js]
B -->|Inference Request| C[Groq AI LPU Engine]
C -->|Streamed Story| B
B -->|Metadata| D[MongoDB]
B -->|IPFS Upload| E[Story/Image Data]
A -->|Mint NFT| F[Monad Testnet Blockchain]
F --- G[Smart Contracts - Solidity]
-
Folder Structure:
/appβ Next.js application (pages, UI, routes)/componentsβ Reusable React components/contractsβ Solidity smart contracts for NFT minting/libβ Utility functions and API integrations/publicβ Static assets/testand/testsβ Test scripts and sample data/scriptsβ Automation and deployment scripts
-
Environment Variables:
GROQ_API_KEYβ Your Groq AI API keyUNSPLASH_API_KEYβ (Optional) for placeholder visualsMONAD_RPC_URLβ Monad blockchain RPC endpoint
-
Smart Contract Deployment:
- Contracts are written in Solidity and can be deployed to Monad Testnet/Mainnet.
- See
/contractsand/scriptsfor deployment instructions.
-
Extending AI Models:
- AI logic is modularβadd support for new models or prompt types in
/liband/components.
- AI logic is modularβadd support for new models or prompt types in
-
Testing:
- Frontend: Use Jest/React Testing Library.
- Smart Contracts: Use Hardhat/Foundry for Solidity tests.
-
Contributions:
- Issues are tagged by difficulty, area, and technology for easy onboarding.
- Please read CONTRIBUTING.md and CONTRIBUTORS.md before submitting PRs.
GroqTales/
β
βββ GroqTales/ # Core domain / main feature-specific logic
β
βββ app/ # Next.js App Router (pages, layouts, routes)
βββ components/ # Reusable UI components
βββ config/ # App-wide configuration files
βββ deployment/
β βββ vercel/ # Vercel deployment-related configs
βββ docs/ # Documentation and guides
βββ hooks/ # Custom React hooks
βββ lib/ # Shared libraries and helper logic
βββ models/ # Data models and schemas
βββ path/to/your/ # Placeholder / experimental structure
βββ public/ # Static assets (images, icons, fonts)
βββ scripts/ # Utility and automation scripts
βββ server/ # Backend/server-side logic
βββ smart_contracts/ # Blockchain smart contracts
βββ src/ # Core application source code
βββ tests/ # Test cases and testing utilities
βββ types/ # TypeScript type definitions
βββ utils/ # Utility/helper functions
βββ wiki/ # Wiki-related content
βββ workers/ # Background workers / async jobs
β
βββ .env.example # Sample environment variables
βββ .eslintrc.js # ESLint configuration
βββ .gitignore # Git ignored files
βββ .hintrc # Web hinting configuration
βββ .nvmrc # Node.js version specification
βββ .prettierignore # Files ignored by Prettier
βββ .prettierrc # Prettier formatting rules
β
βββ CHANGELOG.md # Project change history
βββ CODE_OF_CONDUCT.md # Community code of conduct
βββ CONTRIBUTING.md # Contribution guidelines
βββ COOKIE_POLICY.md # Cookie usage policy
βββ LICENSE # License information
βββ README.md # Project overview and instructions
βββ SECURITY.md # Security policy
βββ TERMS_OF_SERVICE.md # Terms of service
βββ VERSION # Project version file
β
βββ build_log.txt # Build logs
βββ foundry.toml # Foundry configuration (smart contracts)
βββ lighthouserc.json # Lighthouse performance config
βββ netlify.toml # Netlify deployment config
βββ next.config.js # Next.js configuration
βββ package.json # Project dependencies & scripts
βββ package-lock.json # Locked dependency versions
βββ postcss.config.js # PostCSS configuration
βββ render.yaml # Render deployment config
βββ tailwind.config.js # Tailwind CSS configuration (JS)
βββ tailwind.config.ts # Tailwind CSS configuration (TS)
βββ tsconfig.json # TypeScript configuration
βββ vercel.json # Vercel deployment settings
Displays the GroqTales homepage introducing AI-powered storytelling with options to create, mint, and share stories as NFTs.
Highlights the core features of GroqTales including AI generation, blockchain ownership, and creator community.
Presents available storytelling genres such as Science Fiction, Fantasy, and Romance with key themes and elements.
Showcases the community feed where creators share stories, interact, and discover trending content.
Illustrates the NFT marketplace for browsing and uploading comic and text-based story NFTs.
π New contributors: Please read our CONTRIBUTING.md to understand issue labels, templates, and workflows. GroqTales is community-powered! We welcome all contributionsβwhether you're a developer, designer, writer, or blockchain enthusiast.
How You Can Help:
- Tackle issues labeled
good first issue(great for newcomers) - Enhance story-generation logic, outlines, or UI design
- Add support for new AI models or blockchains
- Improve UX (dark mode, mobile layout, galleries)
- Optimize NFT metadata or IPFS workflows
- Write or improve documentation and tests
Whatβs in It for You:
- Build your open-source portfolio
- Feature your work in the contributors section
- Community recognition and GitHub Sponsors eligibility
See CONTRIBUTING.md for guidelines.
- AI visuals: Integrate Stable Diffusion/DALLΒ·E for comic panels
- Multilingual story generation
- Native marketplace for story NFTs
- Enhanced wallet security & decentralized data storage
- Mobile app support
- More blockchain integrations
We value every contribution! Please read our CONTRIBUTORS.md file before making your first contribution to understand our guidelines and recognition process.
Thanks to these amazing people for making GroqTales better!
- Architecture Overview: ARCHITECTURE.md - Comprehensive system design and technical architecture
- Project Wiki: GitHub Wiki - Detailed guides and documentation
- API Documentation: Wiki/API - Backend API reference
- Smart Contracts: Wiki/Blockchain - Contract documentation
- Frontend Architecture: ARCHITECTURE.md#frontend - Next.js application structure
- Backend Architecture: ARCHITECTURE.md#backend - API and service design
- Blockchain Integration: ARCHITECTURE.md#blockchain - Web3 and smart contract integration
- AI Integration: ARCHITECTURE.md#ai - Groq AI implementation
- System Diagrams: ARCHITECTURE.md#diagrams - Mermaid flowcharts and architecture diagrams
- Setup Guide: Wiki/Development-Setup
- Contributing: CONTRIBUTING.md - How to contribute to the project
- Code of Conduct: CODE_OF_CONDUCT.md - Community guidelines
- Security Policy: SECURITY.md - Security practices and vulnerability reporting
- Website: groqtales.xyz
- Docs: Wiki
- Community Hub: GitHub Discussions
- Discord Support: Join our Discord
Released under the MIT License.
For vulnerabilities or security-related issues, please refer to SECURITY.md.
GroqTales currently operates on Monad Testnet for NFT minting. Mainnet support coming soonβstay tuned!
Support the project and share it with others.