A modern, web-based administration interface for NATS Server
Demo • Features • Quick Start • Installation • Documentation • Contributing
HeyNATS is a modern, intuitive web-based administration interface for NATS Server. It provides a user-friendly dashboard to manage NATS connections, streams, consumers, and key-value stores without needing command-line expertise.
Think of it as "phpMyAdmin for NATS" - making NATS server management accessible through a beautiful, responsive web interface.
Experience HeyNATS without any setup! Try our live demo using the public NATS server:
Connection Details:
Host: demo.nats.io
Port: 4222
Authentication: None required
💡 Tip: The demo server is public, so you might see data from other users. This is normal and demonstrates HeyNATS's real-time capabilities!
- Connect to multiple NATS servers simultaneously
- Support for authentication (user/password, token, JWT)
- Real-time connection status monitoring
- Connection pooling and management
- Stream Management: Create, view, edit, and delete streams
- Consumer Management: Monitor and manage stream consumers
- Message Publishing: Send messages to streams and subjects
- Message Consumption: Subscribe to streams and view real-time messages
- Create and manage KV buckets
- Browse, add, edit, and delete key-value pairs
- Real-time KV operations monitoring
- Bucket configuration management
- Real-time server statistics and metrics
- Stream and consumer performance monitoring
- Message flow visualization
- Connection health dashboards
- Responsive design that works on desktop, tablet, and mobile
- Dark/light theme support
- Intuitive navigation and user experience
- Real-time updates without page refresh
- React 19 - Modern React with latest features
- TypeScript - Type-safe development
- React Router v7 - Advanced routing with loaders
- TanStack Query - Server state management and caching
- TailwindCSS 4 - Utility-first styling
- Vite - Lightning-fast build tool
- shadcn/ui - Beautiful, accessible component library
- Go 1.24.0+ - High-performance backend
- Gin Framework - Fast HTTP web framework
- NATS Go Client - Official NATS client library
- Graceful Shutdown - Proper resource cleanup
heynats/
├── main.go # Go server entry point
├── internal/ # Backend Go modules
│ ├── api/ # API handlers (NATS, KV, Streams)
│ ├── infrastructure/ # Router and middleware
│ ├── model/ # Data models
│ └── pkg/ # NATS client package
├── client/ # React frontend application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utilities and API client
│ │ └── providers/ # Context providers
│ ├── dist/ # Built frontend (served by Gin)
│ └── package.json
├── docs/ # Documentation
├── Makefile # Build automation
├── build-and-run.sh # Quick start script
├── dev.sh # Development mode script
└── docker-compose.yml # Docker setup
No installation needed - just try HeyNATS with our demo setup using demo.nats.io.
The fastest way to get HeyNATS running on your machine:
# Clone the repository
git clone https://github.com/Astergaze-Solutions/heynats.git
cd heynats
# Quick build and run (recommended for first-time users)
./build-and-run.sh
# Open your browser to http://localhost:5000That's it! HeyNATS will be running and ready to connect to your NATS server.
- Go 1.24.0 or later - Download Go
- Node.js 18+ and pnpm - Install Node.js and Install pnpm
- NATS Server - Install NATS Server
# Install pnpm globally
npm install -g pnpm
# Verify installations
go version # Should be 1.24.0+
node --version # Should be 18+
pnpm --version-
Clone the repository
git clone https://github.com/Astergaze-Solutions/heynats.git cd heynats -
Install dependencies
# Install all dependencies (Go + Node.js) make install # Or manually: go mod tidy cd client && pnpm install && cd ..
-
Setup development tools (Optional but recommended)
# Install lefthook for Git hooks go install github.com/evilmartians/lefthook@latest lefthook install # Install Go development tools go install golang.org/x/tools/cmd/goimports@latest go install github.com/air-verse/air@latest # For hot reload
# Build and run in one command
./build-and-run.sh
# Or using Makefile
make run# Start both frontend and backend with hot reload
./dev.sh
# Or using Makefile
make dev-full-
Access HeyNATS: Open http://localhost:5000 in your browser
-
Create a Connection: Click "New Connection" and configure:
For Demo/Testing:
- Server URL:
nats://demo.nats.io:4222 - Name: "Demo Server" (or any friendly name)
- Authentication: Leave blank (no auth required)
For Local Development:
- Server URL:
nats://localhost:4222(default local NATS server) - Name: "Local NATS" (or any friendly name)
- Authentication: Configure if your NATS server requires auth
- Server URL:
-
Start Managing: Once connected, you can:
- Create and manage JetStream streams
- Publish and subscribe to messages
- Manage Key-Value stores
- Monitor server statistics
- Web Interface: http://localhost:5000
- API Endpoints: http://localhost:5000/api/*
- React Dev Server (dev mode): http://localhost:5173
# Development
make dev-full # Start both frontend and backend with hot reload
make dev # Start only React dev server
./dev.sh # Alternative script for development mode
# Production
make run # Build and run production version
./build-and-run.sh # Quick production build script
# Building
make build # Build both frontend and backend
make build-client # Build only React frontend
# Utilities
make install # Install all dependencies
make clean # Clean build artifacts
make help # Show all available commands- Frontend: React dev server runs on
:5173with hot reload and proxies API calls to:5000 - Backend: Go server runs on
:5000serving both API endpoints and static files - Live Reload: Frontend changes reflect immediately, backend changes require restart (use
airfor hot reload)
Run HeyNATS with Docker Compose:
# Start HeyNATS with NATS server
docker-compose up -d
# Access at http://localhost:5000
# NATS server available at nats://localhost:4222- Architecture Overview - Detailed technical architecture
- Connection Management - NATS connection handling
- Frontend Integration - React and API integration
- UI Improvements - UI/UX design decisions
# Run Go tests
go test ./...
# Run frontend tests
cd client && pnpm test
# Run linting
make lint # Lint both Go and TypeScript
cd client && pnpm lint # Frontend onlyWe welcome contributions! Please read our Contributing Guidelines for detailed information on:
- 🐛 Reporting bugs
- 💡 Suggesting features
- 💻 Code contributions
- 📝 Documentation improvements
- 🔧 Development setup
Quick start for contributors:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
# Clone your fork
git clone https://github.com/your-username/heynats.git
cd heynats
# Install dependencies
make install
# Setup pre-commit hooks
lefthook install
# Start development
make dev-fulldocker buildx build --platform linux/amd64,linux/arm64 -t <image-name> --push .This project is licensed under the MIT License - see the LICENSE.md file for details.
We're grateful to all the amazing people who have contributed to HeyNATS! 🎉
Made with contrib.rocks.
Want to see your profile here? We'd love your contributions! Check out our Contributing Guidelines to get started.
- @mukezhz - Project Lead & Core Developer
- @SushantBabu - Core Developer
- @Astergaze-Solutions - Organization & Project Sponsor
Interested in becoming a maintainer? Contribute regularly and reach out to us!
- NATS.io - For the amazing NATS messaging system
- Adminer - UI/UX inspiration for database administration tools
- shadcn/ui - Beautiful component library
- TailwindCSS - Utility-first CSS framework
- Issues: GitHub Issues
- Documentation: docs/
- NATS Community: NATS Slack
Made with ❤️ by the Astergaze Solutions team
⭐ Star this project if you find it helpful!


