A modern, real-time collaborative project management platform combining Confluence-style documentation with Jira-style kanban boards, built with React and Supabase.
- Real-time collaboration with multiple users
- Rich text editing powered by TipTap/ProseMirror
- Live cursors showing where team members are typing
- Version history with restore capability
- Nested hierarchical page structures
- Customizable workflow columns
- Drag & drop card management
- Colored labels and card organization
- Due dates and priority levels
- Team member assignments
- Role-based access control (Owner, Admin, Editor, Viewer)
- @Mentions in comments
- Real-time notifications
- Activity feed tracking
- Comments and discussions on pages and cards
- Clean, professional interface
- Dark mode ready
- Fully responsive design
- Smooth animations
- Customizable project themes
Frontend: React 18, Vite, React Router v6, Zustand, TipTap, Lucide React, Tailwind CSS
Backend: Supabase (PostgreSQL, Real-time subscriptions, Row Level Security, Authentication)
The platform follows a modern client-server architecture with real-time capabilities powered by Supabase's real-time engine.
Core Tables: profiles, projects, project_members, pages, page_versions, page_presence
Kanban Tables: boards, board_columns, cards, labels, card_labels
Collaboration: comments, mentions, activities, notifications
Real-time features include collaborative editing with live cursors, presence tracking, and instant updates across all connected clients.
- Node.js 16+
- Supabase account
- Git
- Clone the repository
git clone https://github.com/Prathamesh-2005/NexFlow.git
cd frontcort- Install dependencies
npm install-
Setup Supabase
- Create a new project at supabase.com
- Copy your project URL and anon key
- Run the SQL schema from
/docs/database-schema.sqlin Supabase SQL Editor
-
Configure environment
Create .env file:
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-here- Start the app
npm run dev- Open browser
- Visit
http://localhost:5173 - Sign up and create your first project!
- Visit
Run npm run build to create production bundle in dist/ folder.
- Vercel (Recommended)
- Netlify
- Any static hosting service
Configure these in your hosting platform:
VITE_SUPABASE_URLVITE_SUPABASE_ANON_KEY
- Update Supabase URL configuration with production domain
- Test all features in production environment
- Monitor Supabase logs for errors
getUserProjects(userId)- Fetch all projects for a user with cachinggetProjectWithPages(projectId, userId)- Fetch project details with pages and user rolecreateProject(projectData)- Create new projectupdateProject(projectId, updates)- Update project detailsdeleteProject(projectId)- Delete project and all related data
getPage(pageId)- Fetch single page with contentcreatePage(pageData)- Create new pageupdatePage(pageId, updates)- Update page contentdeletePage(pageId)- Delete pagegetPageVersions(pageId)- Fetch version history
addComment(pageId, content)- Add comment to pagementionUser(userId, contextId)- Create mention notificationgetActivities(projectId)- Fetch activity feedupdatePresence(pageId, cursorPosition)- Update user cursor position
getProfile(userId)- Fetch user profileupdateProfile(userId, updates)- Update user profilegetProjectMembers(projectId)- Fetch project team membersupdateMemberRole(memberId, role)- Update member permissions
getBoard(boardId)- Fetch kanban board with columns and cardscreateCard(cardData)- Create new cardupdateCard(cardId, updates)- Update card detailsmoveCard(cardId, columnId, position)- Move card between columns
All database tables have RLS policies ensuring users can only access data they have permission to view. Policies are enforced at the database level for maximum security.
- Email/password authentication via Supabase Auth
- JWT tokens with automatic refresh
- Protected routes with authentication guards
- Session management
- All API requests authenticated
- Input validation on client and server
- XSS protection via React
- CSRF protection via Supabase
- Rate limiting on authentication endpoints
- File Uploads - Currently limited to external URLs only
- Offline Mode - Requires active internet connection
- Mobile Editor - Better optimized for tablet/desktop
- Search - Basic title search only, no full-text search
- Exports - No PDF/Word export functionality yet
- Performance - Large documents (10,000+ words) may slow down
- Browser Support - Best on modern browsers with ES6+ support
Direct file uploads, enhanced mobile experience, dark mode, email notifications, advanced search
Document templates, PDF/Markdown export, calendar view, time tracking, Gantt charts
Slack/Discord integrations, public sharing, custom domains, webhooks, analytics
AI suggestions, voice/video calls, desktop apps, mobile apps, enterprise SSO
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Commit your changes with clear messages
- Push to your branch
- Open a Pull Request
Follow existing code style, add tests for new features, and update documentation.
MIT License - see LICENSE file for details.
Built with: Supabase, TipTap, Tailwind CSS, Lucide Icons, Zustand
Built with β€οΈ by the Prathamesh Jadhav
β Star us on GitHub if you find this useful!


