Skip to content

A real-time discussion platform inspired by Threads, built with Golang and Next.js. Enables users to create, engage with, and manage threaded conversations seamlessly.

Notifications You must be signed in to change notification settings

manjurulhoque/threadly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Threadly

A modern social media platform built with Next.js and Go, featuring real-time messaging, dark mode, and a clean UI.

Features

  • 🔐 Authentication with NextAuth.js and JWT
  • 🌓 Dark/Light mode theming
  • 💬 Real-time chat messaging
  • 🧵 Thread creation and interactions
  • 💖 Like/Unlike functionality
  • 🔔 Real-time notifications
  • 👥 User profiles and following system
  • 🤝 Community features // todo
  • 📱 Responsive design
  • 🔍 User search functionality // todo
  • 🖼️ Image upload support // todo
  • 🌐 WebSocket integration

Preview

Home Page

Home Page

Profile Page

Profile Page

Single thread with comments Page

Single thread with comments Page

Notifications Page

Notifications Page

Real time chat Page

Chat Page

Tech Stack

Frontend

  • ⚛️ Next.js 14 (App Router)
  • 🎨 Tailwind CSS
  • 🔄 Redux Toolkit
  • 🎭 Shadcn/ui Components
  • 🎣 React Hook Form
  • ✨ TypeScript
  • 🔒 NextAuth.js
  • 🌐 WebSocket (react-use-websocket)
  • 📅 date-fns
  • 🎯 Zod Validation

Backend

  • 🚀 Go
  • 🎯 Gin Framework
  • 🗄️ PostgreSQL
  • 🔑 JWT Authentication
  • 🔄 GORM
  • 🌐 WebSocket
  • 🔒 bcrypt

Getting Started

First, run the development server:

Frontend
cd frontend
npm install
npm run dev
Backend
cd backend
go mod download
go run cmd/app/main.go

Open http://localhost:3000 with your browser to see the result.

Environment Setup

Create a .env file in the frontend directory with the following variables:

env NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-secret-key BACKEND_BASE_URL=http://localhost:8080

Create a .env file in the backend directory:

env DB_HOST=localhost DB_USER=your-db-user DB_PASSWORD=your-db-password DB_NAME=threadly DB_PORT=5432 JWT_SECRET=your-jwt-secret

Learn More

To learn more about the technologies used:

About

A real-time discussion platform inspired by Threads, built with Golang and Next.js. Enables users to create, engage with, and manage threaded conversations seamlessly.

Topics

Resources

Stars

Watchers

Forks