A modern, real-time chat application built with Next.js + shadcn/ui frontend and Go backend. All frontend assets are embedded in the Go binary for zero-dependency deployment.
- 🎨 Modern UI: Built with Next.js, TypeScript, and shadcn/ui components
- 💬 Real-time Chat: WebSocket-based communication
- 🔄 Zero Dependencies: Single executable with embedded frontend
- 🌐 Cross-platform: Works on Windows, macOS, and Linux
- 📱 Responsive Design: Mobile-friendly interface
- 🎯 Type-safe: Full TypeScript support
- Frontend: Next.js with TypeScript and shadcn/ui components
- Backend: Go with WebSocket support using Gorilla WebSocket
- Build: Next.js static export embedded in Go binary using
embed.FS
- Download the latest binary for your platform from the releases
- Run the executable:
./quiver-chat-[platform]
- Open your browser and navigate to
http://localhost:8080 - Choose a nickname and start chatting!
- Go 1.24.2 or higher
- Node.js 18+ and npm
- Git
-
Clone the repository:
git clone <repository-url> cd quiver.chat
-
Install frontend dependencies:
cd frontend npm install -
Build the application:
cd .. make all
-
Frontend Development:
cd frontend npm run dev -
Backend Development:
go run main.go
-
Build for Production:
make all
quiver.chat/
├── main.go # Go backend server
├── go.mod # Go dependencies
├── build.sh # Build script
├── frontend/ # Next.js frontend
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom hooks
│ │ ├── types/ # TypeScript types
│ │ └── app/ # Next.js app directory
│ └── package.json # Frontend dependencies
└── dist/ # Built binaries
- Build Process: The build script first compiles the Next.js frontend into static files
- Embedding: Go's
embed.FSembeds the static files into the binary - Serving: The Go server serves the embedded files and handles WebSocket connections
- Real-time: WebSocket connections enable real-time message exchange
GET /: Serves the Next.js applicationWS /ws?username=<name>: WebSocket endpoint for real-time chat
{
"type": "message|system",
"username": "string",
"content": "string",
"time": "HH:MM"
}The build script creates executables for:
- Linux (amd64, arm64)
- macOS (amd64, arm64)
- Windows (amd64, arm64)
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and build
- Submit a pull request
This project is open source and available under the MIT License.
No external dependencies required - just run and go! 🎉