Skip to content

Latest commit

 

History

History
203 lines (154 loc) · 5.93 KB

File metadata and controls

203 lines (154 loc) · 5.93 KB

🏅 Microlympics

Daily micro-challenges for Reddit communities

Microlympics is a Reddit Devvit app that brings daily creative challenges to communities, turning everyday interactions into a competitive and fun experience. Each day features a new micro-challenge - from writing 6-word stories to taking photos of your workspace - with real-time leaderboards and community voting.

✨ Features

🎯 Daily Challenges

  • 100+ unique challenges rotating daily at 9 AM UTC
  • 4 challenge types: Text (📝), Photo (📸), Emoji (😀), ASCII Art (🎨)
  • Creative prompts like "Write a 6-word horror story" or "Take a photo of the weirdest item on your desk"

🏆 Real-time Leaderboards

  • Daily leaderboards with live updates every 5 minutes
  • Weekly cumulative leaderboards tracking overall performance
  • Medal system: 🥇 Gold (5 pts), 🥈 Silver (3 pts), 🥉 Bronze (2 pts), Participation (1 pt)
  • Top performers displayed with rankings and points

🎮 Interactive Participation

  • Submit responses as top-level comments on daily Reddit posts
  • Community upvoting determines winners
  • Time-limited challenges with countdown timers
  • Direct integration with Reddit's comment system

⚙️ Automated Systems

  • Daily post creation via cron scheduler
  • Real-time leaderboard calculations with Redis caching
  • Automatic challenge rotation through 100+ unique prompts
  • Post expiry management (7-day retention)

🚀 How It Works

  1. Check Today's Challenge - View the current challenge prompt and type
  2. Submit Your Response - Post a top-level comment with your creative response
  3. Vote & Compete - Upvote other entries to help determine winners
  4. Track Progress - Monitor daily and weekly leaderboard standings
  5. Earn Points - Accumulate points through medals and participation

🛠️ Tech Stack

📦 Installation

Make sure you have Node 22 downloaded on your machine before running!

  1. Clone the repository

    git clone <your-repo-url>
    cd microlympics
  2. Install dependencies

    npm install
  3. Set up Reddit Developer Account

    • Create a Reddit account and connect it to Reddit Developers
    • Get your API credentials
  4. Configure the app

    • Update src/server/config/app.config.ts with your subreddit settings
    • Modify challenge settings as needed

🎮 Development

Commands

  • npm run dev: Start development server and test on Reddit
  • npm run build: Build client and server projects
  • npm run deploy: Upload new version to Reddit
  • npm run launch: Publish app for review
  • npm run login: Log CLI into Reddit
  • npm run check: Type check, lint, and format code

Development Workflow

  1. Start development server

    npm run dev
  2. Test in your subreddit

    • The app will be available in your configured dev subreddit
    • Use the moderator menu to create test posts
  3. Make changes

    • Edit source files in src/
    • Changes are hot-reloaded automatically
  4. Deploy when ready

    npm run deploy

📁 Project Structure

microlympics/
├── src/
│   ├── client/           # React frontend
│   │   ├── components/   # Reusable UI components
│   │   ├── pages/        # Main app pages
│   │   └── lib/          # Utility functions
│   ├── server/           # Express backend
│   │   ├── services/     # Business logic
│   │   ├── config/       # App configuration
│   │   └── index.ts      # Server entry point
│   └── shared/           # Shared types and utilities
├── devvit.json          # Devvit app configuration
└── package.json         # Dependencies and scripts

🎯 Challenge Types

Text Challenges

  • Creative writing prompts
  • Storytelling exercises
  • Humor and wordplay

Photo Challenges

  • Visual creativity prompts
  • Lifestyle and environment shots
  • Artistic photography

Emoji Challenges

  • Emoji-based responses
  • Visual communication
  • Creative emoji usage

ASCII Art Challenges

  • Text-based art creation
  • Creative formatting
  • Visual text patterns

🏆 Scoring System

  • 🥇 Gold Medal: 5 points (1st place)
  • 🥈 Silver Medal: 3 points (2nd place)
  • 🥉 Bronze Medal: 2 points (3rd place)
  • Participation: 1 point (all other entries)

🔧 Configuration

Key settings in src/server/config/app.config.ts:

  • Subreddit: Configure dev/prod subreddits
  • Post Creation: Set frequency and timing
  • Leaderboard: Configure update intervals and cache duration
  • Points: Customize scoring system
  • Challenges: Manage challenge pool and rotation

🚀 Deployment

  1. Build the app

    npm run build
  2. Deploy to Reddit

    npm run deploy
  3. Launch for review

    npm run launch

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test thoroughly
  5. Submit a pull request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🎉 Future Ideas

  • Community-driven challenge submissions
  • Weekly themed challenges
  • Photo challenges with voting
  • Collaborative storytelling
  • Seasonal tournaments
  • Achievement badges and streaks
  • Team-based challenges
  • Cross-subreddit competitions

Built with ❤️ for the Reddit community