DIALOG is a modern, full-stack chat web application built with React, TypeScript, Express, and PostgreSQL. It delivers seamless real-time messaging and live notifications powered by Socket.io, ensuring instant, event-driven communication across clients.
Authentication is implemented with a strong focus on both security and user experience. The application supports traditional email/password login, Google OAuth integration, and passwordless authentication via passkeys (WebAuthn). This multi-strategy approach demonstrates secure session handling, modern identity flows, and industry-aligned best practices.
The backend exposes a structured REST API and leverages Prisma ORM for type-safe, maintainable database access.
Designed not just as a demo, but as a practical showcase of modern web application architecture.
You can see the application in action by checking out the live demo.
- Real-time messaging (WebSockets)
- Private conversations
- Notifications & user online status
- Darkmode / Lightmode
- Email & password login
- Google OAuth
- Passkeys (WebAuthn)
- JWT-based sessions
- REST API (Express)
- PostgreSQL database
- Secure authentication & validation
- Node.js (v18+)
- PostgreSQL
- Google OAuth credentials
- npm or yarn
Follow these steps to run the project locally.
Make sure to create a .env file in both frontend and backend based on their respective .env.sample files.
# 1. Clone repository
git clone https://github.com/kecioch/dialog
# 2. Navigate into project
cd dialog
# 3. Install backend dependencies
cd backend
npm install
# 4. Configure backend environment variables
# Rename .env.sample to .env and fill in required values
# 5. Initializing database schema
npx prisma migrate dev --name init
# 6. Generate Prisma-Client
npx prisma generate
# 7. Start backend (dev mode)
npm run devOpen a second terminal:
# 8. Navigate to frontend
cd frontend
# 9. Install frontend dependencies
npm install
# 10. Configure frontend environment variables
# Rename .env.sample to .env and fill in required values
# 11. Start frontend
npm run start-
SoundEffect Message Sent — Froey_
https://freesound.org/s/760370/
License: Creative Commons 0 (CC0) -
SoundEffect MessageAlert01 — aj_heels
https://freesound.org/s/634079/
License: Creative Commons Attribution 4.0 (CC BY 4.0)






