OG_Confessions is a web-based spiritual affirmation platform designed to deliver distraction-free, categorized confessions directly to users. It features smooth transitions, dynamic Telegram content integration, and a clean, responsive UI built with Next.js and V0.
🌐 Live Website: https://og-confessions-nj9v.vercel.app
- 📂 Dynamic Categories: Pulled from synced Telegram content
- 🎚️ Playback Controls: Adjust speed (0.5x to 2x)
- 🌐 Clean Interface: Minimalist and intuitive, without clutter
- 📲 Share + Favorite: Easy to share and bookmark affirmations
- 🧑💼 Admin Dashboard: Manage categories and content via secure backend
- 🤖 Telegram Integration: Pulls affirmations directly from a Telegram channel
- 🧹 Auto-Cleanup: Automatically removes confessions older than 2 days
git clone https://github.com/Okwesie/OG_Confessions.git
cd OG_Confessionsnpm installCreate a .env.local file with the following:
# Database Configuration
SUPABASE_URL=https://rpszhmtkopabgbsrzqmx.supabase.co
SUPABASE_ANON_KEY=your-anon-key-here
SUPABASE_SERVICE_ROLE_KEY=your-service-role-key-here
# Telegram Integration
TELEGRAM_BOT_TOKEN=your-telegram-bot-token-here
TELEGRAM_CHANNEL_ID=@your-channel-username
# Admin Access
ADMIN_SECRET_KEY=your-secure-password
# Environment
NODE_ENV=developmentnpm run devVisit http://localhost:3000 to view it locally.
- Homepage shows categorized confessions
- Click to select a category and affirmation
- Experience a short "Ready → Go" countdown
- Affirmation plays automatically
- User can pause, change speed, or share
- Secure dashboard for managing content
- Sync content manually from Telegram
- Update or categorize confessions dynamically
- Cleanup old confessions automatically
- On refresh from admin side (via Telegram), new confessions are retrieved and stored
- Database automatically deletes confessions older than two days
- Frontend reads and displays only the current entries from the database
- Frontend: Next.js 15 (React), Tailwind CSS
- Backend: API Routes, Telegram Bot API
- Database: PostgreSQL via Supabase
- State Management: React Hooks & local state
- Deployment: Vercel
- ✅ Frontend UI and user experience
- ✅ Admin dashboard with CRUD operations
- ✅ Database integration with Supabase
- ✅ Telegram Bot API integration
- ✅ Auto-deletion of old confessions
- ✅ Environment variable configuration
- ✅ Production deployment on Vercel
- ✅ Fixed database connection (SUPABASE_URL format)
- ✅ Fixed Next.js 15 compatibility (async params)
- ✅ Added auto-deletion logic for old confessions
- ✅ Improved error handling and logging
The app is currently deployed and live at:
- Main Site: https://og-confessions-nj9v.vercel.app
- Admin Panel: https://og-confessions-nj9v.vercel.app/admin
All required environment variables are configured in Vercel:
SUPABASE_URL: Supabase REST API URLSUPABASE_ANON_KEY: Supabase anonymous keySUPABASE_SERVICE_ROLE_KEY: Supabase service role keyTELEGRAM_BOT_TOKEN: Telegram bot tokenTELEGRAM_CHANNEL_ID: Telegram channel IDADMIN_SECRET_KEY: Admin dashboard passwordNODE_ENV: Set to production
The app includes an automatic cleanup system that removes confessions older than 2 days:
- Access admin dashboard
- Use the cleanup endpoint:
POST /api/admin/cleanup - View cleanup status:
GET /api/admin/cleanup
Can be configured with Vercel Cron Functions for daily automatic cleanup.
Pull requests and issue reports are welcome! For feature ideas or bugs, open an issue or contact via Telegram (if admin).
If you encounter issues:
- Check the browser console for errors
- Check the server logs in your terminal
- Verify all environment variables are set correctly
- Make sure your Telegram bot has proper permissions
- Test the connection:
https://og-confessions-nj9v.vercel.app/api/test/connection
- Admin Password: Change
ADMIN_SECRET_KEYto a strong password for production - Environment Variables: Never commit
.env.localto Git - API Keys: Rotate Telegram bot token if compromised
- Database: Uses Supabase with proper authentication
Monitor the app's health via:
- Database connection:
/api/test/connection - Admin dashboard:
/admin - Telegram sync: Admin panel sync function
- Auto-deletion: Cleanup endpoint logs
Your app is now live and fully functional! 🎉