██╗ ██╗██╗ ██╗██████╗ ██████╗ ██║ ██╔╝╚██╗ ██╔╝██╔══██╗██╔═══██╗ █████╔╝ ╚████╔╝ ██████╔╝██║ ██║ ██╔═██╗ ╚██╔╝ ██╔══██╗██║ ██║ ██║ ██╗ ██║ ██║ ██║╚██████╔╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝
A next-generation student productivity & collaboration platform
Features · Demo · Getting Started · Tech Stack · Contributing
Kyro is an all-in-one platform built for students who want to do more than just survive their coursework. It combines deep-focus tools, AI-powered learning assistance, real-time collaboration, and a publishing system — all in one clean, distraction-free interface.
Built free. Built open. Built for learners.
|
🗂 Task Management Organize your work with priorities, categories, deadlines, and daily/weekly views. Never miss what matters. ⏱ Pomodoro Timer Custom work/break intervals with session tracking. Stay focused, measure your progress. 🎧 Focus Mode Full-screen minimal UI with ambient sound player — rain, café, white noise, forest. Built with Howler.js. 🤖 AI Learning Assistant Powered by Gemini API (free tier). Ask questions, get learning paths, explain anything — with full conversation history. |
🔍 Resource Finder AI-curated learning resources filtered by type and difficulty. Save anything worth revisiting. 💬 Real-Time Messaging 1:1 and group chat with typing indicators. Socket.io powered, Supabase persisted. 🎙 Study Rooms Create or join live study sessions with WebRTC peer-to-peer voice calls and host-synced shared audio. 📝 Publishing System Write and publish notes, articles, and resources with a full Tiptap rich text editor. Discover what others share. |
Coming soon — deployment in progress.
| Layer | Technology |
|---|---|
| Frontend | React 18 + Vite + TailwindCSS |
| Backend | Node.js + Express |
| Database | Supabase (PostgreSQL + Auth + Storage + Realtime) |
| AI | Google Gemini API (free tier) |
| Real-time | Socket.io |
| Voice | WebRTC via simple-peer |
| Rich Text | Tiptap |
| Audio | Howler.js |
- Node.js 18+
- A Supabase account (free tier)
- A Google Gemini API key (free, no credit card)
# 1. Clone the repository
git clone https://github.com/your-username/kyro.git
cd kyro
# 2. Install server dependencies
cd server && npm install
# 3. Install client dependencies
cd ../client && npm installCreate server/.env:
SUPABASE_URL=your_supabase_project_url
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
GEMINI_API_KEY=your_gemini_api_key
PORT=5000Create client/.env:
VITE_SUPABASE_URL=your_supabase_project_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_API_BASE_URL=http://localhost:5000/api- Go to your Supabase project → SQL Editor
- Run the full schema from
/schema.sql - Row Level Security is automatically configured
# In /server
npm run dev
# In /client (separate terminal)
npm run devApp available at http://localhost:5173
kyro/
├── client/ # React frontend (Vite)
│ └── src/
│ ├── components/ # UI primitives, layout, feature components
│ ├── pages/ # Route-level page components
│ ├── context/ # Auth, Theme, Socket context providers
│ ├── hooks/ # Custom React hooks
│ └── lib/ # Supabase + socket client config
│
├── server/ # Express backend
│ ├── routes/ # API route definitions
│ ├── controllers/ # Business logic
│ ├── services/ # AI, resource, recommendation services
│ ├── sockets/ # Socket.io chat + room handlers
│ └── middleware/ # JWT auth, error handling
│
├── schema.sql # Full Supabase schema + RLS policies
└── README.md
- OAuth login (Google)
- Mobile app (React Native)
- Offline mode with service workers
- Flashcard / spaced repetition module
- Calendar integration
- Collaborative document editing
Contributions are welcome. Please open an issue first to discuss what you'd like to change.
# Fork → clone → create a feature branch
git checkout -b feature/your-feature-name
# Make changes, then
git commit -m "feat: describe your change"
git push origin feature/your-feature-name
# Open a Pull RequestDistributed under the MIT License.