From e11b7d29a6aa9e52f63fcb35ee7ed9127850fffe Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Wed, 11 Mar 2026 22:01:24 -0500 Subject: initial commit --- claude.md | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 claude.md (limited to 'claude.md') diff --git a/claude.md b/claude.md new file mode 100644 index 0000000..4a90660 --- /dev/null +++ b/claude.md @@ -0,0 +1,79 @@ +# DomainDig – Project Context + +## What this is +An iOS utility app for querying DNS records and inspecting SSL/TLS certificates +for any domain. Designed for developers, sysadmins, and anyone who manages or +troubleshoots domains and servers. + +## Target user +Technically literate adults — developers, IT/sysadmin, homelab enthusiasts. +Comfortable with terms like A record, CNAME, MX, TTL, and TLS. The UI should be +clean and information-dense, not hand-holding. + +## Design principles +- Minimal, utilitarian UI — this is a tool, not a consumer app +- Results should be readable at a glance — use clear labels, monospace where + appropriate for IPs and raw values +- Dark mode preferred as the primary aesthetic +- No onboarding, no tutorials, no splash screens +- Fast — results should appear as soon as they're available, not after all + lookups complete + +## Features + +### DNS Lookup +Query the following record types for any domain via DNS-over-HTTPS (use +Cloudflare 1.1.1.1 — https://cloudflare-dns.com/dns-query): +- A +- AAAA +- MX +- NS +- TXT +- CNAME + +Display each record type in its own section. Show TTL alongside each result. +If a record type returns no results, show "No records found" for that type +rather than hiding the section entirely. + +### SSL/TLS Certificate Check +Connect to the domain on port 443 via URLSession and inspect the server's +certificate chain using URLSession delegate methods. Display: +- Common name (CN) +- Subject Alternative Names (SANs) +- Issuer +- Valid from / Valid until dates +- Days until expiry — highlight in red if under 30 days, yellow if under 60 +- Certificate chain depth + +### Results layout +- Domain input at the top — large text field, keyboard shows on launch +- Run button to trigger both DNS and SSL lookups simultaneously +- DNS and SSL results displayed in clearly separated sections below +- Each section loads independently — don't block SSL results waiting for DNS + or vice versa + +## Technical constraints +- SwiftUI, iOS only +- Fully offline except for DNS-over-HTTPS requests and SSL connections +- No accounts, no analytics, no ads +- No third-party dependencies — URLSession and Network framework only +- Targets latest iOS + +### Recent searches +Store the last 20 searched domains locally using UserDefaults. Display them as +a tappable list below the text field when no results are showing. Tapping a +recent domain populates the text field and runs the lookup immediately. Include +a "Clear" button to wipe history. Most recent at the top. + +### Share / export +A share button (SF Symbol: `square.and.arrow.up`) in the top-right of the +results area. Formats the full DNS and SSL results as plain text and presents +the iOS share sheet via ShareLink or UIActivityViewController. The export +should include the domain, timestamp, all DNS records with TTLs, and all SSL +cert fields. + +## What good looks like +A developer pastes a domain, taps run, and within a couple of seconds sees a +clean breakdown of every DNS record type and the full SSL cert status. It should +feel like a native, polished version of running `dig` and `openssl s_client` +from the terminal. -- cgit v1.2.3