A comprehensive platform for discovering and tracking Moroccan streamers on Twitch and Kick, featuring a browser extension, web platform, and robust backend API.
- About the Project
- Screenshots
- What's Inside?
- Getting Started
- Usage
- Releases
- Contributing
- License
- Contact
- Acknowledgments
LGamila is a platform dedicated to the Moroccan streaming community, providing tools to discover and follow Moroccan content creators across Twitch and Kick platforms. The project consists of a browser extension that shows real-time streaming status, a web platform for community engagement, and a robust backend API that tracks streamers across multiple platforms.
- Real-time Stream Tracking: Monitor live status across Twitch and Kick
- Browser Extension: Chrome extension showing live Moroccan streamers
- Web Platform: Community-driven platform for discovering streamers
- Streamer Suggestions: Community can suggest new streamers to add
- Cross-platform Support: Unified view of streamers across multiple platforms
Screenshots coming soon...
This monorepo includes the following packages/apps:
backend
: A Hono + Bun API server with real-time stream trackingweb
: An Astro web application for the community platformextension
: A Plasmo browser extension for Chrome
@lgamila/shared
: Shared utilities and type definitions@lgamila/logging
: Structured logging with context support and Sentry integration@lgamila/design-system
: Shared UI components built with Radix UI and Tailwind CSS@lgamila/typescript-config
: TypeScript configurations
- Node.js >= 18
- pnpm (recommended package manager)
- Docker (for local database, optional)
- PostgreSQL database
- Redis server
-
Clone the repository:
git clone https://github.com/stormix/lgamila.git cd lgamila
-
Install dependencies:
npm install -g pnpm pnpm install
-
Set up environment variables:
Create environment files for the backend and other apps as needed. Refer to the individual app README files for specific environment variable requirements.
-
Set up the database:
# Push database schema pnpm --filter backend db:push # Generate and run migrations (optional) pnpm --filter backend db:generate pnpm --filter backend db:migrate
-
Start the development servers:
# Start all apps pnpm dev # Or start individual apps pnpm --filter backend dev # Backend API pnpm --filter web dev # Web platform pnpm --filter extension dev # Browser extension
pnpm lint # Run linting across all packages
pnpm format # Format code across all packages
pnpm check-types # Type check all packages
pnpm build # Build all packages
pnpm --filter web build # Build only web app
pnpm --filter extension build:all # Build extension for all browsers
The backend provides a REST API for accessing streamer data:
GET /api/streamers
- Get list of streamers with optional filteringGET /api/streamers/multi
- Get streamers active on multiple platformsPOST /api/streamers/suggest
- Suggest a new streamer
- Build the extension using the command from the Development Commands section
- Load the extension in your browser:
- Chrome: Load from
apps/extension/build/chrome-mv3-prod
- Firefox: Load from
apps/extension/build/firefox-mv2-prod
- Chrome: Load from
- The extension will show live Moroccan streamers in the popup
You can also download pre-built extension files from our GitHub Releases.
Visit the web platform to:
- Discover new Moroccan streamers
- Suggest streamers to be added to the platform
- Learn about the project
Extension releases are automatically built and published via GitHub Actions. Each release includes:
- Chrome Extension (Manifest V3) - Compatible with Chrome, Edge, and Chromium browsers
- Firefox Extension (Manifest V2) - Compatible with Firefox
Visit our GitHub Releases page to download the latest extension builds.
For maintainers, see RELEASING.md for detailed release instructions.
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'feat: add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Follow the existing code style and conventions
- Add tests for new features
- Update documentation as needed
- Use conventional commits format
- Ensure all checks pass before submitting PR
This project is licensed under the MIT License - see the LICENSE file for details.
Note: This project is not affiliated with Twitch, Kick, or any of their parent companies. All trademarks are the property of their respective owners.
Stormix - @stormix_dev - hello@stormix.dev
Project Link: https://github.com/stormix/lgamila
This project was made possible thanks to the amazing open source community and the Moroccan streaming community, especially:
- Zikoos Jam - Original project inspiration
- EKB9816 - Project designer and logo creator
- Hono - Fast web framework
- Astro - Modern web framework
- Plasmo - Browser extension framework
- Drizzle ORM - TypeScript ORM
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Beautiful UI components
- Turborepo - Monorepo management
- Twitch API - Twitch platform integration
- Kick API - Kick platform integration
Made with ❤️ by the Moroccan Streaming Community