mirror of
https://github.com/jakejarvis/domainstack.io.git
synced 2026-09-11 05:05:34 -04:00
main
Prevent duplicate screenshot runs by introducing an ownership hook token and reusing active workflow runs. The workflow input now includes domainId and registers an ownership hook (getScreenshotWorkflowToken) to detect conflicts. API route: check for an active hook before starting, return no-store cache headers, and map workflow errors (including cancelled vs unavailable runs) and rate limits more clearly. Client: rewrite useScreenshot to a react-query based implementation with robust parsing, polling/backoff, reloadable image UI and placeholders. Added tests for the API and component behavior.
Domainstack — Domain Intelligence Made Easy
Features
- Instant domain reports: WHOIS/RDAP data, DNS, certs, headers, hosting/email providers, and geolocation.
- Domain tracking: Verify ownership, monitor domains, and get important health alerts.
- Provider detection: Matches raw data against a large hosting, email, and DNS provider library.
- SEO & metadata analysis: Titles, meta tags, social previews, Open Graph images, canonicals, and
robots.txt. - Screenshots & icons: Server-side screenshots, favicon extraction, and provider logos.
- Fast & private: No sign-up required for reports.
- Notifications & calendar sync: Email/In-app alerts plus iCal feeds for expirations.
- Advanced dashboard: Filtering, sorting, bulk actions, and multiple view modes.
- AI chat assistant: Ask questions about any domain in natural language; powered by durable streaming with automatic reconnection.
- MCP server: AI-assisted domain lookups via Model Context Protocol.
- Pro subscription: Paid plan via Polar for higher tracking limits.
- Reliable backend: SWR caching with cron-based cache warming.
Tech Stack
- Next.js 16 (App Router), React 19, TypeScript
- Tailwind CSS v4 + Base UI
- tRPC + TanStack Query & TanStack Table
- PlanetScale Postgres + Drizzle + Upstash Redis (rate limiting)
- Better Auth (OAuth)
- Polar (subscriptions)
- Workflow SDK (background jobs)
- AI SDK + Vercel AI Gateway (Stacky bot)
- Resend (email notifications)
- mapcn + CARTO Basemaps (web maps)
- Logo.dev (provider icons)
- IPLocate.io (geolocation)
- PostHog (telemetry)
- Vercel (Edge Config, Blob Storage)
- Turborepo (monorepo)
- Vitest + Playwright (testing), oxlint/oxfmt (linting)
Development
This is a Turborepo monorepo.
1. Clone & install
git clone https://github.com/jakejarvis/domainstack.io.git
cd domainstack.io
pnpm install
2. Configure environment variables
Create .env.local in the apps/web directory and populate required variables:
cp apps/web/.env.example apps/web/.env.local
At minimum, you'll need DATABASE_URL pointing to a Postgres database.
3. Set up the database
Apply Drizzle migrations to initialize the database schema:
pnpm db:migrate
4. Start development
pnpm dev
Open http://localhost:3000.
License
Description
🧰 All-in-one domain name intelligence as a service
https://domainstack.io
ai-sdkbetter-authdnsdomainshacktoberfestinngestmcpnextjspolarrdapsecuritytailwindcsstypescriptuseworkflowvercelwhoisworkflow-devkit
Readme
MIT
16 MiB
Languages
TypeScript
99.7%
CSS
0.3%