A modern workspace management application built with Next.js, featuring collaborative workspaces, member management, and secure authentication.
- Workspace Management: Create, edit, and delete workspaces with custom names and images
- Member Management: Invite and manage workspace members with role-based access (Admin/Member)
- Authentication: Secure sign-in/sign-up with email/password and OAuth providers (Google, GitHub)
- Responsive Design: Modern UI built with shadcn/ui components and Tailwind CSS
- Real-time Updates: Optimistic updates with React Query for smooth user experience
- Image Upload: Workspace avatars with secure file storage
- Dark/Light Theme: Built-in theme switching support
- Next.js 15 - React framework with App Router
- React 19 - Latest React with concurrent features
- TypeScript - Type-safe development
- Tailwind CSS v4 - Utility-first CSS framework
- shadcn/ui - Modern component library built on Radix UI
- Framer Motion - Smooth animations and transitions
- React Query - Server state management and caching
- React Hook Form - Form handling with Zod validation
- Hono - Fast web framework running on Edge Runtime
- Appwrite - Backend-as-a-Service for auth, database, and storage
- Zod - Schema validation and type inference
- ESLint - Code linting with Next.js configuration
- Prettier - Code formatting with import organization
- TypeScript - Static type checking
- Node.js 18+
- pnpm (recommended package manager)
- Appwrite account and project setup
git clone <repository-url>
cd forgepnpm installCreate a .env.local file in the root directory with the following variables:
# App Configuration
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_API_URL=http://localhost:3000/api
# Appwrite Configuration
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://fra.cloud.appwrite.io/v1
NEXT_PUBLIC_APPWRITE_PROJECT_ID=your_project_id
NEXT_PUBLIC_APPWRITE_DATABASE_ID=your_database_id
NEXT_PUBLIC_APPWRITE_WORKSPACES_COLLECTION_ID=your_workspaces_collection_id
NEXT_PUBLIC_APPWRITE_MEMBERS_COLLECTION_ID=your_members_collection_id
NEXT_PUBLIC_APPWRITE_IMAGES_BUCKET_ID=your_images_bucket_id
# Server-side Appwrite (Admin)
NEXT_APPWRITE_KEY=your_appwrite_api_key- Create an Appwrite project
- Set up the database with collections:
- Workspaces:
name(string),userId(string),imageUrl(string, optional) - Members:
userId(string),workspaceId(string),role(enum: ADMIN/MEMBER)
- Workspaces:
- Create an images bucket for workspace avatars
- Configure authentication methods (email/password, OAuth providers)
pnpm devOpen http://localhost:3000 to view the application.
src/
├── app/ # Next.js App Router
│ ├── api/ # API routes (Hono)
│ ├── dashboard/ # Dashboard pages
│ └── page.tsx # Landing/auth page
├── components/ # Reusable components
│ ├── layout/ # Layout components
│ └── ui/ # shadcn/ui components
├── features/ # Feature-based modules
│ ├── auth/ # Authentication
│ ├── members/ # Member management
│ └── workspaces/ # Workspace management
├── hooks/ # Custom React hooks
├── lib/ # Utility libraries
├── types/ # TypeScript type definitions
└── config.ts # App configuration
# Development
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Run ESLint
pnpm exec tsc --noEmit # Type checking- Edge Runtime: API routes run on Vercel Edge Runtime for optimal performance
- Hono Framework: Lightweight web framework with type-safe RPC client
- Route Structure:
/api/login/*- Authentication endpoints/api/workspace/*- Workspace CRUD operations
- Session-based: Secure cookie-based sessions with Appwrite
- Middleware: Route protection and automatic redirects
- Role-based Access: Admin/Member permissions for workspace operations
- React Query: Server state caching and synchronization
- Optimistic Updates: Immediate UI feedback with rollback on errors
- Real-time: Automatic refetching and cache invalidation
- CSRF Protection: Secure cookie handling
- Input Validation: Zod schemas for all API endpoints
- File Upload Security: Restricted file types and sizes
- Role-based Authorization: Workspace-level permissions
- Environment Variables: Sensitive data protection
- Connect your repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically on push to main branch
The application can be deployed on any platform supporting Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is private and proprietary.
For support and questions, please refer to the project documentation or contact the development team.