https://github.com/4cecoder/subbed
https://github.com/4cecoder/subbed
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/4cecoder/subbed
- Owner: 4cecoder
- Created: 2025-09-13T23:33:57.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-09-14T00:58:45.000Z (6 months ago)
- Last Synced: 2025-09-14T01:20:49.848Z (6 months ago)
- Language: TypeScript
- Size: 386 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
Awesome Lists containing this project
README
# Subbed — YouTube Subscription Manager
A modern, real-time YouTube subscription manager built with Next.js, Convex, and Clerk. Manage your YouTube subscriptions with offline support, real-time synchronization, and a beautiful responsive interface.
## ✨ Features
- 🎥 **YouTube Subscription Management** - Organize and filter your YouTube subscriptions
- 🔐 **Secure Authentication** - User authentication with Clerk
- 🌐 **Real-time Sync** - Instant synchronization across all devices
- 📱 **Responsive Design** - Works seamlessly on all devices
- 🚀 **Performance Optimized** - Fast loading and smooth interactions
- 🔄 **Offline Support** - Works without internet connection
- 📊 **Analytics Dashboard** - Track your viewing habits and statistics
## 🚀 Quick Start
### Prerequisites
- Node.js 18+ or Bun
- Convex account
- Clerk account
### Installation
```bash
# Clone the repository
git clone https://github.com/your-username/subbed.git
cd subbed
# Install dependencies
bun install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your credentials
# Start development server
bun run dev
```
### Environment Setup
Create a `.env.local` file with the following variables:
```bash
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_...
CLERK_SECRET_KEY=sk_test_...
# Convex Backend
NEXT_PUBLIC_CONVEX_URL=https://your-convex-url.convex.cloud
# Optional: Analytics
NEXT_PUBLIC_ANALYTICS_ID=your_analytics_id
```
## 📚 Documentation
Comprehensive documentation is available in the [`docs/`](./docs/) directory:
### 📖 Getting Started
- [**Setup Guide**](./docs/SETUP.md) - Installation and configuration
- [**Architecture Overview**](./docs/ARCHITECTURE.md) - System design and components
### 🔧 Technical Documentation
- [**API Documentation**](./docs/API.md) - API endpoints and usage
- [**Deployment Guide**](./docs/DEPLOYMENT.md) - Production deployment
- [**Performance Guide**](./docs/PERFORMANCE.md) - Performance optimization
- [**Hybrid Storage**](./docs/HYBRID_STORAGE.md) - Offline-first architecture
### 🛠️ Development
- [**Contributing Guide**](./docs/CONTRIBUTING.md) - How to contribute
- [**Testing Guide**](./docs/TESTING.md) - Testing strategies
- [**Code Style Guide**](./docs/CODE_STYLE.md) - Coding conventions
### 📋 Additional Resources
- [**Troubleshooting**](./docs/TROUBLESHOOTING.md) - Common issues and solutions
- [**Bug Fixes**](./docs/BUG_FIXES.md) - Documented bug fixes
- [**Migration Guide**](./docs/MIGRATION.md) - Data migration procedures
## 🏗️ Architecture
Subbed is built with a modern, scalable architecture:
```
Frontend (Next.js 14)
├── React Components (TypeScript)
├── State Management (React Hooks)
├── UI Components (Shadcn/ui)
└── Performance Optimizations
Backend (Convex)
├── Database Schema
├── API Functions
├── Authentication Integration
└── Real-time Data Sync
Infrastructure
├── Vercel Deployment
├── Environment Management
├── Performance Monitoring
└── Error Tracking
```
## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guide](./docs/CONTRIBUTING.md) for details on:
- Setting up the development environment
- Code style and conventions
- Testing requirements
- Submitting pull requests
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🆘 Support
- 📖 [Documentation](./docs/README.md)
- 🐛 [Report Issues](https://github.com/your-username/subbed/issues)
- 💬 [Discussions](https://github.com/your-username/subbed/discussions)
---
**Built with ❤️ using Next.js, Convex, and Clerk**
README.md