A modern domain management platform with subdomain management, DNS configuration, link shortening, and real-time analytics.
- Dynamic Subdomain Management - Create and manage unlimited subdomains
- Link Shortener - Built-in URL shortener with click tracking
- Real-time Analytics - Track visits, devices, browsers, and geographic data
- Google OAuth - Secure authentication
- DNS Management - Manage DNS records, nameservers, and domain info via NameSilo API
- Clean UI - Vercel-inspired minimal design with dark mode
- Fast & Reliable - Built with Next.js 14 and MongoDB
- Node.js 18+
- MongoDB database
- NameSilo account with API access
- Google OAuth credentials
- Clone and install:
git clone <your-repo>
cd subdomain-creator
npm install- Create
.env.local:
# Domain Configuration
NEXT_PUBLIC_ROOT_DOMAIN=app.yourdomain.com
NAMESILO_DOMAIN=yourdomain.com
ROOT_DOMAIN=app.yourdomain.com
# NameSilo API
NAMESILO_API_KEY=your_namesilo_api_key
# Database
MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/dbname
# Authentication
JWT_SECRET=your_random_secret_key_here
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret- Run development server:
npm run devVisit http://localhost:3000
-
Import your project to Vercel
-
Add domains in Project Settings → Domains:
app.yourdomain.com*.app.yourdomain.com
-
Add environment variables (copy all from
.env.local) -
Deploy
In Google Cloud Console → Credentials, add redirect URIs:
https://app.yourdomain.com/api/auth/callback/google
http://localhost:3000/api/auth/callback/google
- Login with Google
- Click "Create Subdomain"
- Fill in subdomain details
- Your subdomain is live at
https://yourname.app.yourdomain.com
- Navigate to "Link Shortener"
- Create short links with custom slugs
- Access via
https://url.app.yourdomain.com/[slug] - Track clicks in real-time
- Go to "Domain Manager"
- View domain info and expiry
- Add/edit/delete DNS records
- Manage nameservers
- Frontend: Next.js 14, React, TypeScript
- Styling: CSS Modules
- Backend: Next.js API Routes
- Database: MongoDB
- Authentication: JWT + Google OAuth
- DNS: NameSilo API
- Analytics: Recharts
- Maps: react-simple-maps
- Icons: Lucide React
src/
├── app/
│ ├── api/ # API routes
│ ├── subdomain/ # Subdomain pages
│ ├── url/ # Link shortener redirects
│ └── page.tsx # Main app
├── components/ # React components
├── lib/ # Utilities & database
└── middleware.ts # Subdomain routing
POST /api/subdomains- Create subdomainGET /api/subdomains- List subdomainsPUT /api/subdomains/[subdomain]- Update subdomainDELETE /api/subdomains/[subdomain]- Delete subdomainGET/POST /api/dns/namesilo- Manage DNS recordsGET /api/domain/info- Get domain informationGET/POST /api/links- Manage short linksGET /api/links/redirect/[slug]- Handle redirectsPOST /api/analytics/track- Track page views
# Run dev server
npm run dev
# Build production
npm run build
# Start production server
npm start
# Lint
npm run lintFor issues or questions, please open an issue on GitHub.