A powerful, open-source workspace platform inspired by Notion. WorkLin combines the flexibility of block-based editing with real-time collaboration, AI assistance, and enterprise-grade features.
- π Page Management: Create, organize, and manage pages with rich metadata
- π§± Block-Based Editor: Rich text editing with TipTap (headings, lists, code, tables, embeds)
- π Real-time Collaboration: Multi-user editing with Yjs (coming soon)
- π Authentication: Firebase Auth with email and Google sign-in
- πΎ Cloud Sync: All data synced to Firebase Firestore
- π Workspace Management: Multiple workspaces with sharing and permissions
- π¨ Modern UI: Beautiful interface with ShadCN UI and Tailwind CSS
- π Dark Mode: Full dark mode support
- π± Responsive: Works seamlessly on desktop, tablet, and mobile
- π€ AI Writing Assistant: Generate, summarize, and improve content
- π¬ Comments & Mentions: Collaborate with threaded comments
- π Database Views: Table, Board (Kanban), and Calendar views
- π Advanced Search: Full-text search with filters
- π€ Export: Export pages as PDF, Markdown, or HTML
- π Page Linking: Bidirectional links between pages
- π Templates: Create and use page templates
- π Analytics: Workspace statistics and insights
- Node.js 18+ and npm
- Firebase account (for cloud features)
- Git
# Clone the repository
git clone https://github.com/fyiclub-vitb/WorkLin.git
cd WorkLin
# Install dependencies (REQUIRED)
npm install
# If you get esbuild errors, run this first:
# Remove-Item -Recurse -Force node_modules
# Remove-Item -Force package-lock.json
# npm cache clean --force
# npm install
# Start development server
npm run dev- Run
npm installfirst! This installs all dependencies includingreact-router-dom - If you get esbuild version errors, delete
node_modulesandpackage-lock.json, then runnpm installagain - See
QUICK_FIX.mdor double-clickFIX_AND_RUN.batfor automated fix
Open http://localhost:3000 in your browser.
Try WorkLin instantly with demo credentials:
Email: demo@worklin.com
Password: demo123
Quick Start:
- Visit the landing page at
http://localhost:3000 - Click "Get Started" button
- On login page, click "Use Demo Credentials" button (auto-fills)
- Or manually enter:
demo@worklin.com/demo123 - Start using WorkLin! π
Note: WorkLin works perfectly with demo mode! Firebase setup is only needed for future features like real-time collaboration and cloud sync. See
GITHUB_ISSUES.mdfor contribution opportunities.
- Create a Firebase project at https://console.firebase.google.com
- Enable Authentication (Email/Password and Google)
- Create a Firestore database
- Enable Storage
- Copy your Firebase config to
.envfile - Set up Firestore security rules (see
firestore.rules- to be added) - Set up Storage security rules (see
storage.rules- to be added)
# Development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview
# Type checking
npm run lint- Framework: React 18.2+ with Vite
- Language: TypeScript 5.0+ (strict mode)
- Styling: Tailwind CSS 3.3+ with ShadCN UI
- Icons: Lucide React
- State Management: Zustand
- Rich Text Editor: TipTap
- Animations: Framer Motion
- UI Components: Radix UI + ShadCN
- Database: Firebase Firestore
- Authentication: Firebase Auth
- Storage: Firebase Storage
- Functions: Firebase Cloud Functions
- Hosting: Firebase Hosting (or Vercel)
- Real-time Sync: Yjs + WebRTC (or Firebase)
- Presence: Firebase Realtime Database
- Build Tool: Vite 4.4+
- Testing: Vitest + Playwright
- Linting: ESLint + Prettier
worklin/
βββ src/
β βββ components/ # React components
β β βββ ui/ # ShadCN UI components
β β βββ editor/ # TipTap editor components
β β βββ auth/ # Authentication components
β β βββ collaboration/ # Real-time collaboration
β β βββ workspace/ # Workspace management
β β βββ ... # Other components
β βββ lib/ # Library code
β β βββ firebase/ # Firebase services
β β β βββ config.ts
β β β βββ auth.ts
β β β βββ database.ts
β β β βββ storage.ts
β β βββ utils.ts # Utility functions
β βββ store/ # Zustand stores
β β βββ workspaceStore.ts
β βββ hooks/ # Custom React hooks
β βββ types/ # TypeScript types
β βββ styles/ # Global styles
βββ public/ # Static assets
βββ env.example # Environment variables template
βββ GITHUB_ISSUES.md # 30 open source issues
βββ package.json
βββ vite.config.ts
βββ tsconfig.json
- Click the "New Page" button in the sidebar
- The new page will appear in the sidebar
- Click on it to start editing
- Click "Add Block" at the bottom of the editor
- Or press Enter while editing a block to create a new one below
- Text: Regular paragraph text (auto-expanding textarea)
- H1, H2, H3: Headings with different sizes
- List: Bulleted list items
- Todo: Checkbox items with strikethrough when checked
- Click on any block to edit
- Change block type using the dropdown on hover
- Delete blocks using the trash icon on hover
- Press Enter to create a new block below
We welcome contributions! This project is part of ACWOC (All Contributors Welcome Open Challenge). Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Check out GITHUB_ISSUES.md for 30 open issues ranging from easy to hard
- Comment on an issue to claim it
- Create your feature branch (
git checkout -b feature/issue-{number}-{description}) - Make your changes
- Commit your changes (
git commit -m 'Add: description of changes') - Push to the branch (
git push origin feature/issue-{number}-{description}) - Open a Pull Request
- π’ Easy: Good for beginners, simple UI components, basic features
- π‘ Medium: Intermediate features, integrations, complex UI
- π΄ Hard: Advanced features, real-time systems, complex algorithms
See GITHUB_ISSUES.md for the complete list of 30 issues!
This project is licensed under the MIT License - see the LICENSE file for details.
- Basic block-based editor
- Firebase integration (setup ready)
- Authentication (demo mode)
- Workspace management
- Landing page
- Login page with demo credentials
- Real-time collaboration (Yjs) - See Issue #21
- AI writing assistant - See Issue #23
- Database views - See Issue #14
- Comments system - See Issue #12
- Page templates - See Issue #13
- Advanced search - See Issue #8, #19
- Export functionality - See Issue #16
- Mobile app/PWA - See Issue #25
Check GITHUB_ISSUES.md for 30 open issues ready for contributors!
- Inspired by Notion's block-based editor
- Built with React, Vite, Tailwind CSS, Firebase, and TipTap
- UI components from ShadCN UI
- Icons provided by Lucide
- GitHub: https://github.com/fyiclub-vitb/WorkLin
- Live Demo: https://worklin-fyi.vercel.app
π¬ Have questions or doubts? Please use the Discussions tab to ask and interact with maintainers.
Made with β€οΈ by the WorkLin team