Hout is a real-time, location-based ephemeral chat platform.
Create a temporary chatroom at your current location, discover Houts happening around you, and join conversations with people who are physically nearby.
Houts last for a maximum of 2 hours. Once a Hout expires, its messages and temporary data are permanently deleted.
Create a Hout at your location
β
Nearby people discover it
β
Join the Hout
β
Chat & interact in real time
β
Hout expires
β
Temporary data is deleted
Each Hout has a configurable radius of up to 10 km, so discovery is based on where people actually are.
- Location-based Hout discovery
- Interactive map
- Temporary chatrooms
- Real-time messaging
- Live online presence
- Real-time polls
- Hout invite links
- User profiles
- Friends and friend requests
- Merit and community reputation
- Medals and titles
- Hout participation history
- Community moderation
- Automatic Hout expiration and cleanup
- React 18 & TypeScript β Component-driven UI architecture with strict typing
- MapLibre GL β Vector map rendering with geospatial markers and dynamic radius visualization
- Vite β Fast modern build tooling and hot module replacement
- CSS3 Design System β Custom responsive design tokens and transition animations
- Node.js & TypeScript β Modular architecture (controllers, services, repositories)
- WebSockets (
ws) β Low-latency bidirectional connection for chat, live presence, and voting - Native HTTP Engine β Custom lightweight request dispatcher and REST routing
- PostgreSQL β Relational storage for users, friendships, reputations, and active Houts
- dbmate β Version-controlled database schema migrations
- JWT & bcryptjs β Secure stateless authentication and hashed credentials
Hout/
βββ backend/
β βββ db/
β β βββ migrations/
β βββ src/
β βββ config/
β βββ controllers/
β βββ database/
β βββ errors/
β βββ jobs/
β βββ logger/
β βββ repositories/
β βββ routes/
β βββ services/
β βββ websocket/
β
βββ frontend/
βββ src/
βββ components/
βββ constants/
βββ context/
βββ pages/
βββ services/
- Node.js 18+
- PostgreSQL
- dbmate
Clone the repository:
git clone https://github.com/your-username/Hout.git
cd HoutInstall backend dependencies:
cd backend
npm installInstall frontend dependencies:
cd ../frontend
npm install
cd ..Create the backend environment file:
cp backend/.env.example backend/.envConfigure backend/.env:
PORT=3000
DATABASE_URL=postgresql://user:password@host/database
JWT_SECRET=your-secret-keyCreate the frontend environment file:
cp frontend/.env.example frontend/.envConfigure frontend/.env:
VITE_API_URL=http://localhost:3000Run the database migrations:
cd backend
npm run db:migrate
cd ..Start both the frontend and backend:
npx concurrently -n "backend,frontend" -c "blue,green" "npm --prefix backend run dev" "npm --prefix frontend run dev"The application will be available at:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
Hout uses dbmate for PostgreSQL migrations.
cd backend
# Create a migration
npm run db:new <migration_name>
# Apply migrations
npm run db:migrate
# Roll back the latest migration
npm run db:rollback
# Check migration status
npm run db:statusHout is built around temporary digital spaces.
An active Hout can exist for up to two hours. When it expires, the active room and its associated temporary data are removed. Aggregate participation statistics can remain available as part of a user's Hout history, but the conversation itself does not persist.
Hout is actively being developed.
Hout - a place for people who are already there.