mirror of
https://github.com/DevVoxel/VectorDNS.git
synced 2026-02-27 05:47:38 +00:00
Add roadmap and update README
This commit is contained in:
138
README.md
138
README.md
@@ -1,36 +1,136 @@
|
||||
This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app).
|
||||
# VectorDNS
|
||||
|
||||
DNS lookup, WHOIS, and domain monitoring tool. Search nameservers, check domain availability, and track DNS record changes over time.
|
||||
|
||||
## Features
|
||||
|
||||
- **DNS Record Lookup** — Query A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, and SRV records for any domain
|
||||
- **WHOIS Lookup** — View registrar, registration/expiration dates, nameservers, and domain status
|
||||
- **Domain Availability** — Check if a domain is registered or available via IANA RDAP
|
||||
- **Domain Monitoring** — Save domains to a dashboard, track DNS changes over time, get alerts when records change
|
||||
- **Change Detection** — Daily automated re-checks with visual diffs showing what changed
|
||||
- **Notifications** — In-app notification feed + email alerts via Resend
|
||||
- **Dark Mode** — Dark theme by default with light mode toggle
|
||||
|
||||
## Tech Stack
|
||||
|
||||
- **Framework**: Next.js 16 (App Router) + React 19
|
||||
- **Language**: TypeScript (strict mode)
|
||||
- **Styling**: Tailwind CSS v4 + shadcn/ui
|
||||
- **Auth & Database**: Supabase (auth, Postgres, RLS, realtime)
|
||||
- **DNS**: Tangerine (DNS-over-HTTPS via Cloudflare/Google)
|
||||
- **WHOIS**: whoiser (RDAP-based, free)
|
||||
- **Email**: Resend
|
||||
- **Deployment**: Vercel
|
||||
- **Package Manager**: Bun
|
||||
|
||||
## Getting Started
|
||||
|
||||
First, run the development server:
|
||||
### Prerequisites
|
||||
|
||||
- [Bun](https://bun.sh) >= 1.3
|
||||
- A [Supabase](https://supabase.com) project (free tier works)
|
||||
- (Optional) [Resend](https://resend.com) API key for email alerts
|
||||
|
||||
### Setup
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
# or
|
||||
yarn dev
|
||||
# or
|
||||
pnpm dev
|
||||
# or
|
||||
# Clone and install
|
||||
git clone <repo-url>
|
||||
cd vectordns
|
||||
bun install
|
||||
|
||||
# Configure environment
|
||||
cp .env.local.example .env.local
|
||||
# Fill in your Supabase URL, anon key, and other values
|
||||
|
||||
# Run database migrations
|
||||
# (see supabase/migrations/ once they exist)
|
||||
|
||||
# Start dev server
|
||||
bun dev
|
||||
```
|
||||
|
||||
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
|
||||
Open [http://localhost:3000](http://localhost:3000) to see the app.
|
||||
|
||||
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
|
||||
### Environment Variables
|
||||
|
||||
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
|
||||
| Variable | Required | Description |
|
||||
|---|---|---|
|
||||
| `NEXT_PUBLIC_SUPABASE_URL` | Yes | Your Supabase project URL |
|
||||
| `NEXT_PUBLIC_SUPABASE_ANON_KEY` | Yes | Supabase anonymous/public key |
|
||||
| `SUPABASE_SERVICE_ROLE_KEY` | Yes | Service role key (for cron jobs) |
|
||||
| `CRON_SECRET` | Yes | Secret to authenticate Vercel cron requests |
|
||||
| `RESEND_API_KEY` | No | Resend API key for email notifications |
|
||||
|
||||
## Learn More
|
||||
## Project Structure
|
||||
|
||||
To learn more about Next.js, take a look at the following resources:
|
||||
```
|
||||
app/
|
||||
page.tsx # Landing page with search
|
||||
layout.tsx # Root layout (theme, fonts, metadata)
|
||||
globals.css # Tailwind v4 + shadcn/ui CSS vars
|
||||
lookup/[domain]/page.tsx # DNS results page (public)
|
||||
auth/ # Login, signup, OAuth callback
|
||||
dashboard/ # Authenticated domain tracking
|
||||
api/
|
||||
dns/lookup/ # DNS record lookup endpoint
|
||||
whois/lookup/ # WHOIS lookup endpoint
|
||||
availability/check/ # Domain availability endpoint
|
||||
domains/ # Saved domains CRUD
|
||||
cron/check-domains/ # Daily re-check (Vercel cron)
|
||||
notifications/ # Notification endpoints
|
||||
components/
|
||||
ui/ # shadcn/ui components
|
||||
layout/ # Header, footer, sidebar
|
||||
lookup/ # Search form, record displays
|
||||
dashboard/ # Domain list, detail, diff views
|
||||
lib/
|
||||
dns/ # Tangerine DNS service
|
||||
whois/ # whoiser WHOIS service
|
||||
availability/ # RDAP availability service
|
||||
monitoring/ # Change detection + snapshot logic
|
||||
notifications/ # Notification service
|
||||
email/ # Resend email functions
|
||||
supabase/ # Server/client/middleware clients
|
||||
auth/ # Auth server actions
|
||||
types/ # Shared TypeScript types
|
||||
supabase/
|
||||
migrations/ # SQL schema + RLS policies
|
||||
```
|
||||
|
||||
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
|
||||
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
|
||||
## Current Status
|
||||
|
||||
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
|
||||
### Done
|
||||
|
||||
## Deploy on Vercel
|
||||
- [x] Project scaffolding (Next.js 16, Tailwind v4, TypeScript)
|
||||
- [x] shadcn/ui setup with dark mode (next-themes)
|
||||
- [x] Landing page with domain search form
|
||||
|
||||
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
|
||||
### TODO
|
||||
|
||||
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
|
||||
See [ROADMAP.md](./ROADMAP.md) for the full phased build plan. Next up:
|
||||
|
||||
- [ ] TypeScript type definitions (`lib/types/`)
|
||||
- [ ] Supabase schema + migrations + RLS
|
||||
- [ ] DNS / WHOIS / availability service layers
|
||||
- [ ] API routes for public lookups
|
||||
- [ ] Supabase auth (GitHub, Google, email, magic link)
|
||||
- [ ] DNS results page (`/lookup/[domain]`)
|
||||
- [ ] Dashboard with domain tracking
|
||||
- [ ] Change detection + daily cron
|
||||
- [ ] Notifications (in-app + email)
|
||||
|
||||
## Scripts
|
||||
|
||||
```bash
|
||||
bun dev # Start development server
|
||||
bun run build # Production build
|
||||
bun start # Start production server
|
||||
bun lint # Run ESLint
|
||||
bun test # Run integration tests
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
GPL-2.0
|
||||
|
||||
Reference in New Issue
Block a user