Skip to content

Repository files navigation

Domain Details Browser Extension

Cross-browser domain research for Chrome, Edge, Firefox, Safari, and Chromium-based browsers. Built with WXT and TypeScript 7.

Features

  • Detects the current website's registrable domain.
  • Extracts target domains from marketplace landers, including Afternic /forsale/example.com URLs.
  • Shows RDAP/WHOIS registration details through an independent Cloudflare Worker at ext.domaindetails.com.
  • Searches supported domain marketplaces on demand.
  • Stores up to 20 changed lookup snapshots per domain locally and highlights observed changes.
  • Opens prefilled DomainDetails results, marketplace, and monitoring pages with extension attribution.
  • Presents a disclosed, default-on anonymous usage choice before sending the first event; it can be disabled before continuing or at any time. Analytics never include domains, source page URLs, page titles, marketplace names, or raw lookup data.
  • Adds a context-menu lookup for selected text, links, and the current page.

Development

Requirements: Node.js 22+ and npm 10+.

Copy .env.example to .env.local and set WXT_PUBLIC_POSTHOG_KEY to the Domain Details public PostHog project key. A missing key safely disables analytics in that build; it does not affect lookup features. The release workflow receives the value from the GitHub Actions WXT_PUBLIC_POSTHOG_KEY repository secret.

npm install
npm run dev
npm run dev:firefox

Validation:

npm run typecheck
npm test
npm run build:all

Build outputs are written to .output/. Create store archives with:

npm run zip:all

The Chrome archive can also be submitted to Edge. Firefox receives a browser-specific MV3 package and source archive. Safari uses the checked-in Xcode wrapper, refreshed from the generated output:

npm run build:safari
xcrun safari-web-extension-packager \
  --rebuild-project "$PWD/safari/Domain Details/Domain Details.xcodeproj" \
  --copy-resources --no-open --no-prompt \
  "$PWD/.output/safari-mv3"

Architecture

  • entrypoints/popup/: popup UI, browser-tab detection, feature orchestration.
  • entrypoints/background.ts: installation lifecycle and context menu.
  • lib/domain.ts: URL, public-suffix, and marketplace-lander extraction.
  • lib/api.ts: first-party lookup and marketplace API clients.
  • lib/history.ts: local snapshots and field-level diffs.
  • lib/analytics.ts: consent-aware, allowlisted analytics sent through the first-party PostHog proxy.
  • lib/links.ts: prefilled DomainDetails links and UTM attribution.

Permissions

  • activeTab: read the current page URL after the user opens the extension.
  • scripting: inspect basic metadata only when a marketplace URL does not contain the target domain.
  • contextMenus: offer the explicit right-click lookup action.
  • storage: store observed history and analytics preference locally.
  • https://ext.domaindetails.com/*: perform requested RDAP/WHOIS lookups without depending on the core app.
  • https://api.domaindetails.com/*: perform requested marketplace searches.
  • https://f.domaindetails.com/*: send anonymous usage events when enabled.

No always-on content script or blanket all-sites host permission is used.

See PRIVACY.md and docs/STORE_SUBMISSION.md before publishing.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages