Skip to content

Melkeydev/yappr

Repository files navigation

Yappr Logo

Yappr

Real-time chat rooms that disappear after 24 hours.

Visit Yappr →

Go React


Features

  • Ephemeral Rooms - All rooms automatically expire after 24 hours
  • Daily Topics - Three pinned rooms with fresh topics from HackerNews and Reddit
  • Real-time Chat - WebSocket-based messaging with instant updates
  • User Accounts - Optional registration with room creation limits
  • Anonymous Access - Join and chat without creating an account

Quick Start

# Clone the repository
git clone https://github.com/melkeydev/go-chat-app.git
cd go-chat-app

# Start with Docker Compose
docker-compose up

# Visit http://localhost:3000

Development

Backend (Go)

cd server
go mod download
go run main.go

Frontend (React)

cd client
npm install
npm run dev

Environment Variables

Server

secretKey=your-jwt-secret
MAX_ROOMS=50
REDDIT_CLIENT_ID=your-reddit-client-id
REDDIT_CLIENT_SECRET=your-reddit-client-secret

Client

VITE_API_BASE_URL=http://localhost:8080
VITE_WEBSOCKET_URL=ws://localhost:8080

Tech Stack

  • Backend: Go, Chi Router, Gorilla WebSocket, PostgreSQL
  • Frontend: React, TypeScript, Vite, Tailwind CSS
  • Infrastructure: Docker, Docker Compose

Achievements

🎯 Unlock achievements as you chat!

  1. 🌟 First Steps - Complete your first daily check-in (1 day)
  2. 🔥 Weekly Warrior - Maintain a 7-day streak
  3. 👑 Monthly Master - Maintain a 30-day streak
  4. 💬 Chatter - Send your first 10 messages
  5. 🗣️ Conversationalist - Send 100 messages
  6. Popular - Receive your first 5 upvotes
  7. 💖 Beloved - Receive 25 upvotes

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ by Melkey

About

Real Topics - Quick Chats

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages