https://github.com/0xrelogic/streaky
Never lose your GitHub streak again! Enterprise-grade web app with Discord & Telegram notifications. Your credentials stay encrypted.
https://github.com/0xrelogic/streaky
cloudfalre-worker collaborate developer-tools github-streak hacktoberfest hacktoberfest-accepted nextjs productivity python
Last synced: 2 days ago
JSON representation
Never lose your GitHub streak again! Enterprise-grade web app with Discord & Telegram notifications. Your credentials stay encrypted.
- Host: GitHub
- URL: https://github.com/0xrelogic/streaky
- Owner: 0xReLogic
- License: mit
- Created: 2025-08-07T15:03:05.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2026-02-24T23:50:50.000Z (4 days ago)
- Last Synced: 2026-02-25T04:50:37.033Z (4 days ago)
- Topics: cloudfalre-worker, collaborate, developer-tools, github-streak, hacktoberfest, hacktoberfest-accepted, nextjs, productivity, python
- Language: TypeScript
- Homepage: https://streakyy.vercel.app
- Size: 3.56 MB
- Stars: 25
- Watchers: 1
- Forks: 6
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Streaky - GitHub Streak Guardian
[](https://opensource.org/licenses/MIT)
[](https://github.com/0xReLogic/Streaky/stargazers)
[](https://github.com/0xReLogic/Streaky/issues)
[](https://github.com/0xReLogic/Streaky/pulls)
[](https://deepwiki.com/0xReLogic/Streaky)
Never lose your GitHub streak again! Get instant notifications when your contribution streak is at risk.
---
## Why Streaky?
GitHub streaks represent consistency in your coding habits. Don't let a busy day break your streak - Streaky keeps you on track with timely reminders.
### Your Data is Safe
We understand you're trusting us with sensitive credentials (GitHub PAT, Discord webhooks, Telegram tokens). Here's how we protect them:
- **AES-256-GCM Encryption** - All tokens encrypted in database with industry-standard encryption
- **Separate Key Storage** - Encryption keys stored separately from database in Cloudflare secrets
- **Even if database leaks** - Your tokens remain useless encrypted blobs without the encryption key
- **Zero knowledge architecture** - We can't access your tokens even if we wanted to
- **Automatic key rotation** - Regular security updates and key rotation support
- **No third-party access** - Your data never leaves Cloudflare and Vercel infrastructure
**Bottom line:** Your GitHub PAT, Discord webhooks, and Telegram tokens are encrypted and secure. A database breach would only expose encrypted gibberish, not your actual credentials.
---
## Web App (Recommended)
**Live at [streakyy.vercel.app](https://streakyy.vercel.app)**
The easiest way to keep your streak alive:
- **Zero setup required** - Sign in with GitHub and start monitoring
- **Always running** - Cloud-based daily checks at 12:00 UTC
- **Distributed architecture** - Scalable with isolated processing
- **Multi-platform notifications** - Discord and Telegram support
- **Clean interface** - Modern black and white design
- **Enterprise-grade security** - JWT authentication, AES-256 encryption, secure key storage
- **Your data stays encrypted** - Database leaks expose only useless encrypted data
---
## CLI (For Developers)
Want full control? Check out the [CLI version](./cli/README.md):
- **Self-hosted** - Run on your own machine
- **Full privacy** - Your data stays local
- **Automation ready** - Perfect for CI/CD workflows
- **Python-based** - Easy to customize and extend
### Quick Start
```bash
git clone https://github.com/0xReLogic/streaky.git
cd streaky/cli
pip install -r requirements.txt
python main.py
```
See the [CLI README](./cli/README.md) for detailed setup instructions.
---
## Contributing
We welcome contributions! Check out our [Contributing Guide](./CONTRIBUTING.md) to get started.
---
## Project Structure
```
streaky/
├── cli/ # Python CLI tool
├── server/ # Rust notification proxy (Axum + Koyeb)
│ ├── src/
│ │ ├── main.rs # Axum server setup
│ │ ├── handlers.rs # API endpoints
│ │ ├── encryption.rs # AES-256-GCM decryption
│ │ ├── discord.rs # Discord webhook sender
│ │ └── telegram.rs # Telegram bot API sender
│ └── Dockerfile # Container deployment config
└── web/ # Full-stack web application (Production)
├── frontend/ # Next.js 15 + shadcn/ui
└── backend/ # Cloudflare Workers + D1 Database
```
---
## Tech Stack
**Frontend:**
- Next.js 15 (React 19, App Router)
- TypeScript
- Tailwind CSS
- shadcn/ui components
- NextAuth.js (OAuth)
**Backend API:**
- Cloudflare Workers (Hono framework)
- Cloudflare D1 (SQLite database)
- Service Bindings (distributed cron processing)
- Analytics Engine (SQL-queryable metrics)
- TypeScript
**Notification Proxy:**
- Rust (Axum web framework)
- Tokio (async runtime)
- AES-256-GCM encryption
**Security:**
- JWT authentication with signature verification
- AES-256-GCM encryption for all sensitive credentials
- End-to-end encryption (Worker → Rust VPS)
- Separate encryption key storage in Cloudflare secrets
- API authentication with secret headers
- CORS strict allowlist
- Rate limiting (60 requests per minute)
- Security headers (HSTS, CSP, X-Frame-Options)
- Stateless VPS design (no data persistence)
---
## Contributors
Thanks to all the amazing people who have contributed to Streaky!
---
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.