A modern, professional status page for LicenseChain services built with Next.js 14, TypeScript, and Tailwind CSS. Features real-time status monitoring, incident management, and multi-language support.
Open source and available under the MIT License.
- Real-time Status Monitoring - Live updates of all service statuses with automatic health checks
- Multi-language Support - Available in 9 languages (English, Spanish, French, German, Russian, Chinese, Japanese, Portuguese, Italian)
- Modern UI/UX Design - Clean, professional interface with glassmorphism design and smooth animations
- Dark Mode by Default - Dark theme as default with Light/Dark toggle option
- Responsive Design - Works perfectly on all devices (mobile, tablet, desktop)
- Service Categories - Organized by Core Services, Infrastructure, and Payment Processing
- Performance Metrics - Real-time uptime and response time data
- Incident Management - Track and display service incidents with status updates
- Auto-refresh - Automatic status updates every 30 seconds
- Automated Health Checks - Cron job runs 6 times per day at random intervals to update service statuses
- SEO Optimized - Full SEO support with locale-specific metadata, structured data (Schema.org), sitemap, and multi-language hreflang tags
- Language Switcher - Easy language selection in header with dropdown menu
# 1) Clone and install
git clone https://github.com/licensechain/status.git
cd status
npm install
# 2) Configure environment
cp .env.example .env
# Edit .env with your database credentials
# 3) Generate Prisma client
npm run prisma:generate
# 4) Run development server
npm run devVisit http://localhost:3000 to see the status page.
- Node.js 20+
- npm, yarn, or pnpm
- PostgreSQL database (shared with LicenseChain ecosystem)
-
Clone the repository
git clone https://github.com/licensechain/status.git cd status -
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit
.envand configure:DATABASE_URL- PostgreSQL connection string (required)- Optional webhook health check URLs
-
Generate Prisma client
npm run prisma:generate
-
Start development server
npm run dev
| Variable | Description | Required | Sensitive |
|---|---|---|---|
DATABASE_URL |
PostgreSQL connection string with credentials | Yes | ✅ Yes |
CRYPTO_WEBHOOK_HEALTH_URL |
Crypto payment webhook health check endpoint | No | ✅ Yes |
STRIPE_WEBHOOK_HEALTH_URL |
Stripe webhook health check endpoint | No | ✅ Yes |
NEXT_PUBLIC_WEBHOOK_HEALTH_URL |
Public webhook health check URL | No | ❌ No |
NEXT_PUBLIC_STRIPE_WEBHOOK_HEALTH_URL |
Public Stripe webhook health check URL | No | ❌ No |
Security Note: Variables marked as sensitive should never be committed to version control. See .env.example for detailed documentation.
-
Connect to Vercel
- Go to Vercel Dashboard
- Click "New Project"
- Import from GitHub:
Repository/Status
-
Configure Project
- Framework Preset: Next.js
- Build Command:
npm run build - Output Directory:
.next(default)
-
Environment Variables
- Add all required variables from
.env.example - Mark sensitive variables appropriately
- Add all required variables from
-
Custom Domain
- Add custom domain:
status.domain_here.app - Configure DNS records as instructed
- Add custom domain:
# Production build
npm run build
# Deploy to Vercel
npm run deploy:vercel
# Start production server
npm start- Environment variables configured
- Custom domain configured
- All service endpoints tested
- Auto-refresh functionality verified
- Error handling tested
- Mobile responsiveness validated
- Dark mode functionality checked
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run prisma:generate # Generate Prisma clientstatus/
├── src/
│ ├── app/
│ │ ├── [locale]/ # Locale-based routes
│ │ ├── api/ # API routes
│ │ └── layout.tsx # Root layout
│ ├── components/ # React components
│ ├── i18n/ # Internationalization
│ └── lib/ # Utilities and helpers
├── messages/ # Translation files
├── public/ # Static assets
└── prisma/ # Database schema
- Update service configuration in
src/lib/status-monitor.ts - Add service icon mapping in the main component
- Update service categories as needed
- Styling: Modify
tailwind.config.jsand component styles - Translations: Update files in
messages/directory - Theme: Default is dark mode, toggle between light/dark only
- English (en) - Default
- Spanish (es)
- French (fr)
- German (de)
- Russian (ru)
- Chinese (zh)
- Japanese (ja)
- Portuguese (pt)
- Italian (it)
Planned milestones live in ROADMAP.md. For changes, see CHANGELOG.md.
- Historical uptime charts
- Service-specific status pages
- RSS feed for status updates
- Email notifications for incidents
- API endpoints for status data
We welcome contributions! Please read CONTRIBUTING.md and follow the PR template.
- Follow Conventional Commits
- Use branch naming:
feature/...,fix/...,docs/... - Ensure all tests pass before submitting PR
- Update documentation for new features
Please report vulnerabilities via SECURITY.md.
Security Contact: security@licensechain.app
This project is licensed under the MIT License. See LICENSE for details.
Copyright © 2026 LicenseChain LLC
Support LicenseChain Status Page development by becoming a sponsor. Your sponsorship helps us maintain and improve this open-source project.
- GitHub Sponsors - Support us directly on GitHub
- LicenseChain Website - Learn more about sponsorship opportunities
Thank you to all our sponsors! 🙏
- Live Status Page: https://status.licensechain.app
- Main Website: https://licensechain.app
- Documentation: https://docs.licensechain.app
- GitHub Organization: https://github.com/licensechain
Status: ✅ Production Ready
Version: 1.4.0
Last Updated: January 2026