Decentralized talent competition platform with gasless voting on Celo
Celoween is a decentralized contest platform where creators can:
- π¨ Submit creative Halloween-themed content (music, art, stories)
- π³οΈ Vote on submissions using gasless transactions
- π° Win prizes in cUSD or CELO tokens
- π Claim rewards securely on-chain
Built with Celo's Smart Account infrastructure for a seamless, gas-free user experience.
- π€ Submit entries to multiple contests
- π» Gasless voting (no transaction fees!)
- π Track your submissions and votes
- πΈ Claim prize rewards automatically
- π Create custom contests with prize pools
- π Track submissions and voting in real-time
- π― Set custom rules and deadlines
- β‘ Automated prize distribution
- β½ Gasless Transactions via Biconomy Smart Accounts
- π Wallet Authentication with Privy
- π± Responsive Design with Halloween theme
- π¨ Animated UI with Lottie animations
- πΎ PostgreSQL Database for off-chain data
- π Smart Contracts on Celo Alfajores
- Node.js 20.0.0+
- PostgreSQL (or Supabase account)
- Wallet with Alfajores testnet tokens
git clone https://github.com/your-org/celoween.git
cd celoween
npm installcp .env.example .env.localFill in required values (see ENV_CONFIG.md):
NEXT_PUBLIC_PRIVY_APP_ID- Get from Privy DashboardDATABASE_URL- PostgreSQL connection stringPRIVY_APP_SECRET- Privy secret key
# Generate Prisma client
npx prisma generate
# Run migrations
npx prisma migrate dev --name init
# Seed sample contests
npm run prisma:seednpm run devVisit http://localhost:3000 π
celoween/
βββ app/ # Next.js 15 App Router
β βββ contests/ # Contest browsing and detail pages
β βββ create/ # Contest creation
β βββ profile/ # User profile and rewards
β βββ api/ # API endpoints
β βββ globals.css # Halloween theme styles
βββ components/
β βββ contests/ # Contest UI components
β βββ animations/ # Lottie animations
β βββ ui/ # Reusable UI components
βββ contracts/ # Smart contracts (Solidity)
β βββ ContestFactory.sol # Contest creation
β βββ VotingContract.sol # Gasless voting
β βββ PrizePool.sol # Prize distribution
βββ prisma/
β βββ schema.prisma # Database schema
β βββ seed-contests.js # Sample data
βββ lib/ # Utilities and hooks
βββ public/ # Static assets
| Color | Hex | Usage |
|---|---|---|
| π Pumpkin Orange | #FF6B00 |
Primary, CTAs |
| π Neon Violet | #B873FF |
Secondary, accents |
| π€ Abyss Black | #0B0B0C |
Background |
| π² Charcoal Gray | #1B1B1E |
Surfaces |
| π Acid Green | #9FFF5B |
Success, rewards |
- Display: Creepster (Halloween headers)
- Body: Inter, Poppins (readability)
- Glow borders on hover
- Floating ghost animations
- Particle effects (bats, pumpkins)
# Development
npm run dev # Start dev server
npm run build # Production build
npm run start # Start production server
npm run lint # Run ESLint
# Database
npm run prisma:generate # Generate Prisma client
npm run prisma:migrate # Run migrations
npm run prisma:seed # Seed sample data
npm run prisma:studio # Open database GUI
# Smart Contracts (after Phase 4)
npm run hardhat:compile # Compile contracts
npm run hardhat:test # Test contracts
npm run deploy:alfajores # Deploy to testnet
npm run verify:alfajores # Verify on block explorer| Document | Description |
|---|---|
| STATUS.md | β Current development status (start here!) |
| CELOWEEN_QUICKSTART.md | Quick start guide for developers |
| ENV_CONFIG.md | Complete environment setup guide |
| MIGRATION_PROGRESS.md | Detailed progress tracking |
| CLEANUP_REPORT.md | Transformation from academy |
- Framework: Next.js 15 (App Router, RSC)
- Language: TypeScript 5.0
- Styling: Tailwind CSS 3.4
- UI: Radix UI, shadcn/ui
- Animations: Framer Motion, Lottie
- Database: PostgreSQL (Supabase)
- ORM: Prisma 5.0
- Auth: Privy (Wallet-based)
- API: Next.js API Routes
- Blockchain: Celo Alfajores Testnet
- Smart Accounts: Biconomy (gasless transactions)
- Web3 Library: Wagmi + Viem
- Wallet: Privy (embedded wallets)
- Hosting: Vercel
- Monitoring: Sentry (optional)
- CI/CD: GitHub Actions
See ENV_CONFIG.md for complete setup guide.
NEXT_PUBLIC_PRIVY_APP_ID= # Privy authentication
PRIVY_APP_SECRET= # Privy secret
DATABASE_URL= # PostgreSQL connectionNEXT_PUBLIC_BICONOMY_PAYMASTER_API_KEY= # Biconomy paymaster
NEXT_PUBLIC_BUNDLER_URL= # Transaction bundlerNEXT_PUBLIC_CONTEST_FACTORY_ADDRESS= # Contest factory
NEXT_PUBLIC_VOTING_CONTRACT_ADDRESS= # Voting contract
NEXT_PUBLIC_PRIZE_POOL_ADDRESS= # Prize poolCurrent Phase: 3/10 Complete (30%)
β
Phase 1: Design System
β
Phase 2: Database Schema
β
Phase 3: Dependencies
π Phase 4: Smart Contracts
π Phase 5: Pages & Routes
π Phase 6: UI Components
π Phase 7: Web3 Integration
π Phase 8: API Routes
π Phase 9: Animations
π Phase 10: Testing & Deployment
See MIGRATION_PROGRESS.md for detailed status.
We welcome contributions! Here's how:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add: Amazing feature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- TypeScript strict mode (no
any) - ESLint + Prettier configured
- Conventional commits (feat:, fix:, docs:, etc.)
- Test new features
# Copy .env.example and fill in values
cp .env.example .env.local
# Restart dev server
npm run devnpx prisma generate
npx prisma migrate dev# Test connection
npx prisma studio
# Check DATABASE_URL format
# postgresql://user:password@host:port/databaseSee ENV_CONFIG.md for more troubleshooting.
This project is licensed under the MIT License - see the LICENSE file for details.
- Celo Foundation - Blockchain infrastructure
- Privy - Wallet authentication
- Biconomy - Gasless transactions
- Vercel - Hosting
- Supabase - Database
- π§ Email: contact@celoween.com
- π¬ Discord: Celoween Community
- π¦ Twitter: @Celoween
- π± Telegram: t.me/Celoween
# Start developing
npm run dev
# Check the quick start guide
cat CELOWEEN_QUICKSTART.md
# Review environment setup
cat ENV_CONFIG.mdHappy Haunting! π»
# Force rebuild Fri Oct 31 15:10:41 PDT 2025