Files
VectorDNS/docs/feature-plan.md
Aiden Smith 301402e2b1 Add documentation pages with interactive architecture diagram
- /docs route with sidebar navigation and index page
- Architecture section: system overview with React Flow diagram, data flow, database schema
- API reference, configuration guide, and self-hosting docs for Go DNS server
- Feature planning document for future development
- Added docs link to landing page nav
2026-02-24 18:23:09 -05:00

4.0 KiB

VectorDNS Feature Plan

Decisions captured for current and future development.


Auth & User System

Feature Decision Priority
OAuth providers GitHub + Google MVP
Email/password + magic link Yes MVP
Team/org accounts Yes, eventually — shared watchlists, role-based access (admin/viewer) Future
User API keys No — Go server is internal, called only by the Next.js backend N/A

Schema implications (teams)

  • Future teams table with membership + roles
  • saved_domains will need an optional team_id foreign key
  • RLS policies will need team-aware variants

DNS & Monitoring

Feature Decision Priority
Check intervals Daily (MVP), then hourly/daily/weekly selectable MVP → Near-term
Realtime monitoring Not now — possible distant future Deferred
Custom resolvers Fixed resolvers (Google 8.8.8.8, Cloudflare 1.1.1.1) by default; user-specified resolvers as future feature MVP → Future
Propagation checks Query multiple resolvers and compare results Near-term
DNSSEC validation Basic AD flag check (current), deep chain validation later MVP → Future

Go server implications

  • Scheduler needed for flexible intervals (hourly/daily/weekly per domain)
  • Resolver list should be configurable, not hardcoded (prep for custom resolvers)
  • Propagation endpoint: query N resolvers in parallel, return per-resolver results

Alert Channels

Channel Priority
In-app notification feed MVP
Email (Resend) MVP
Webhooks (user-configured URL) Near-term
Slack integration Future
Discord integration Future

Schema implications

  • notification_channels table: user_id, type (email/webhook/slack/discord), config (jsonb), enabled
  • Webhook: store URL + optional secret for HMAC signing
  • Slack/Discord: store webhook URL or OAuth token

Dashboard & UX

Feature Decision Priority
Domain organization Tags (current) + folders/groups Near-term
Public sharing Shareable links for domain DNS snapshots Near-term
Data export CSV + JSON for DNS history, saved domains, notifications Near-term
Bulk operations Add/remove/re-check multiple domains at once Future
Search & filter Filter by tag, folder, record type, change status Near-term

Schema implications (folders)

  • domain_folders table: id, user_id, name, created_at
  • saved_domains gets an optional folder_id foreign key
  • RLS policies for folder ownership

Schema implications (public sharing)

  • shared_snapshots table: id, saved_domain_id, share_token (unique), dns_snapshot (jsonb), expires_at, created_at
  • Public access via token — no auth required to view

Infrastructure

Feature Decision Priority
Billing/paid tiers Freemium — free tier with limits, paid for more domains/features/intervals Future
DNS caching Redis — external cache for TTL-based DNS result caching Near-term
Self-hosting Go server only — provide Dockerfile + docker-compose for the DNS API Near-term
Next.js hosting Vercel only, not self-hostable

Freemium tier structure (draft)

  • Free: 5 monitored domains, daily checks, in-app + email alerts
  • Pro: 50 domains, hourly checks, webhooks, folders, export
  • Team: everything in Pro + team accounts, shared watchlists

Go server additions needed

  • Redis client (go-redis) for caching layer
  • Cache middleware: check Redis before querying DNS, store with TTL
  • docker-compose.yml with Go server + Redis for self-hosting
  • Rate limiting per API key / tier (when billing is added)

Summary of future schema additions

These tables will be needed as features are built:

Table For
teams Team/org accounts
team_members Membership + roles
domain_folders Folder organization
shared_snapshots Public shareable links
notification_channels Webhook/Slack/Discord config
subscriptions Billing tier tracking