Install dependencies and run the project:
npm i
# or
yarn
# or
pnpm i
# Start the app
npm run dev
# or
yarn dev
# or
pnpm dev
A 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.