Install dependencies and run the project:
npm i
# or
yarn
# or
pnpm i
# Start the app
npm run dev
# or
yarn dev
# or
pnpm devA real-time messaging application with channels, user authentication, and profile customization. Built to demonstrate fullstack development using modern tools like GraphQL, Apollo Client, and Feature Sliced Design.
Key Features:
- Real-time messaging via GraphQL Subscriptions
- JWT authentication with HttpOnly cookies
- Customizable user profiles (AWS S3 avatar upload)
- Dark/light theme support
- Channel creation and management
The project follows Feature Sliced Design for scalable and maintainable code. Layers include:
app: Routing and global setuppages: Page componentswidgets: Complex UI blocks (e.g., chat interface)features: Business logic (e.g., authentication, messaging)entities: Core data models (users, channels, messages)shared: Utilities, UI components, and configs
pnpm run dev: Start development server and auto-generate GraphQL typespnpm run build: Create production buildpnpm run lint: Run ESLint checkspnpm run lint:fix: Fix linting issuespnpm run codegen: Generate GraphQL types
- Frontend: React, TypeScript, Vite
- State Management: Zustand
- Styling: TailwindCSS, shadcn-ui
- GraphQL: Apollo Client, GraphQL Codegen
- Architecture: Feature Sliced Design
VITE_API_URL= in prod, MAIN AND PROXY are the same. In dev, this is main frontend URL, for vite its http://localhost:5173
VITE_API_PROXY_URL= in prod, MAIN AND PROXY are the same. In dev, this is main backedn URL
VITE_WS_URL= WS Backend URL
This project is for educational purposes only.