summaryrefslogtreecommitdiff
path: root/claude.md
diff options
context:
space:
mode:
Diffstat (limited to 'claude.md')
-rw-r--r--claude.md79
1 files changed, 79 insertions, 0 deletions
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.