A full-stack, production-ready productivity platform featuring real-time Kanban boards, workspace collaboration, and seamless task management โ built with cutting-edge technologies.
๐ Live Application: https://kanvasapp.vercel.app
๐ Documentation: https://kanvasapp.vercel.app/docs
A passionate Full-Stack Developer with strong experience in modern web development and building production-ready applications.
Open to collaborations, freelance projects, and exciting opportunities!
- ๐ฏ Intuitive Kanban Boards โ Drag-and-drop task management with smooth animations
- ๐ข Multi-Workspace Support โ Create and manage multiple workspaces for different projects
- ๐ฅ Team Collaboration โ Invite members with role-based permissions (Admin, Editor, Viewer)
- ๐ Secure Authentication โ Email/Password & OAuth (Google, GitHub) via Better Auth
- โก Real-time Updates โ Live synchronization powered by Redis caching
- ๐ฑ Fully Responsive โ Optimized for desktop, tablet, and mobile devices
- ๐ Dark/Light Theme โ Beautiful theming with next-themes
- ๐ฑ๏ธ Smooth Drag & Drop โ Powered by @dnd-kit for seamless interactions
- ๐ฌ Fluid Animations โ Framer Motion for delightful micro-interactions
- ๐ State Management โ Redux Toolkit for predictable state handling
- ๐ Type Safety โ Full TypeScript support across the stack
- ๐ Auto-generated Docs โ Fumadocs-powered API documentation
- ๐งน Code Quality โ ESLint, Prettier, and Husky pre-commit hooks
- ๐๏ธ Database Migrations โ Prisma migrations for safe schema changes
Before you begin, ensure you have the following installed:
- Node.js 18.x or higher (Download)
- npm or pnpm package manager
- Git for version control
- A Supabase account (or PostgreSQL database)
- An Upstash Redis account (free tier available)
git clone https://github.com/Namann-14/kanvas.git
cd kanvasnpm installCreate a .env file in the root directory:
cp .env.example .envThen configure your environment variables (see Environment Variables section).
# Generate Prisma client
npx prisma generate
# Run database migrations
npx prisma migrate dev
# (Optional) Seed the database with sample data
npm run db:seednpm run devNavigate to http://localhost:3000 โ you're all set! ๐
Create a .env file with the following variables:
# Database (Supabase PostgreSQL)
DATABASE_URL="postgresql://user:password@host:5432/database?schema=public"
DIRECT_URL="postgresql://user:password@host:5432/database?schema=public"
# Redis (Upstash)
UPSTASH_REDIS_REST_URL="https://your-redis-url.upstash.io"
UPSTASH_REDIS_REST_TOKEN="your-redis-token"
# Authentication (Better Auth)
BETTER_AUTH_SECRET="your-super-secret-key"
BETTER_AUTH_URL="http://localhost:3000"
# OAuth Providers (Optional)
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
# Application
NEXT_PUBLIC_APP_URL="http://localhost:3000"๐ก Get your keys:
- Supabase: supabase.com
- Upstash Redis: upstash.com
- Google OAuth: Google Cloud Console
- GitHub OAuth: GitHub Developer Settings
# Run linting
npm run lint
# Run formatting check
npm run format
# Check database data
npm run db:checkkanvas/
โโโ ๐ docs/ # Documentation (Fumadocs)
โ โโโ api/ # API documentation
โ โโโ *.md # Markdown docs
โโโ ๐ prisma/
โ โโโ schema.prisma # Database schema
โ โโโ migrations/ # Database migrations
โ โโโ seed.ts # Seed script
โโโ ๐ public/ # Static assets
โโโ ๐ src/
โ โโโ ๐ app/ # Next.js App Router
โ โ โโโ (auth)/ # Authentication pages
โ โ โโโ (dashboard)/ # Dashboard pages
โ โ โโโ api/ # API routes
โ โ โโโ docs/ # Documentation pages
โ โโโ ๐ components/
โ โ โโโ dashboard/ # Dashboard components
โ โ โโโ kibo-ui/ # Custom UI kit
โ โ โโโ ui/ # shadcn/ui components
โ โโโ ๐ contexts/ # React contexts
โ โโโ ๐ generated/ # Generated Prisma types
โ โโโ ๐ hooks/ # Custom React hooks
โ โโโ ๐ lib/ # Utilities & configs
โ โ โโโ actions/ # Server actions
โ โ โโโ queries/ # Database queries
โ โโโ ๐ providers/ # React providers
โ โโโ ๐ store/ # Redux store
โโโ .env.example # Environment template
โโโ package.json # Dependencies
โโโ tailwind.config.ts # Tailwind configuration
โโโ tsconfig.json # TypeScript configuration
- User authentication (Email, OAuth)
- Workspace creation and management
- Kanban board with drag-and-drop
- Task CRUD operations
- Real-time sync with Redis
- Dark/Light theme support
- Responsive design
- API documentation
- Task comments and attachments
- Due dates and reminders
- Task priority levels
- Search and filtering
- AI-powered task summarization
- Real-time team collaboration (WebSockets)
- Analytics dashboard
- Custom Kanban templates
- Mobile app (React Native)
- Keyboard shortcuts
- Import/Export functionality
Contributions are what make the open-source community amazing! Any contributions you make are greatly appreciated.
- Fork the repository
- Clone your fork
git clone https://github.com/your-username/kanvas.git
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m "feat: add amazing feature" - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow the existing code style
- Write meaningful commit messages (we use Conventional Commits)
- Add tests for new features when applicable
- Update documentation as needed
If you found this project helpful or learned something from it, please consider:
Your star helps others discover this project and motivates me to keep improving it!
Fork the repo and build something amazing on top of it!
Share this project with your network if you think it could help others!
This project is licensed under the MIT License โ see the LICENSE file for details.
MIT License
Copyright (c) 2025 Naman Nayak
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Made with โค๏ธ by Naman Nayak
If you're a recruiter or collaborator, feel free to reach out!
Star โญ this repo if you found it useful!
