iid.sh is a personal umbrella site serving multiple subdomains from a single Next.js static export.
| Domain | Purpose |
|---|---|
iid.sh |
Portal homepage — links to Tools and Dotfiles |
tools.iid.sh |
Web tools collection (prompt manager, color palettes, diff viewer, etc.) |
dot.iid.sh |
Dotfiles landing page and one-line installer |
- Next.js (App Router, static export)
- TypeScript
- Tailwind CSS
- GitHub Pages / static hosting (deployment)
app/— routes and layoutsapp/page.tsx— host-aware root (detects subdomain, renders portal / tools / dot)app/tools/page.tsx— tools landingapp/tools/[slug]/page.tsx— tool detail pages (/tools/prompt/, etc.)app/[slug]/page.tsx— root-level tool routes (/prompt/, fortools.iid.sh/prompt)app/dot/page.tsx— dotfiles landing
components/— shared UI (glass nav, tool cards, tool shells, landing sections)components/tools/— individual tool implementationslib/tools.ts— tool metadata and site configlib/dotfiles.ts— dotfiles metadata and feature listpublic/install— raw bash installer served at/install.github/workflows/deploy-pages.yml— Pages build/deploy pipeline
All subdomains serve the same static bundle. The root page (/) detects window.location.hostname at hydration time and renders the appropriate content:
tools.iid.sh→ Tools landing with root-level tool linksdot.iid.sh→ Dotfiles landing with install CTA- anything else → Portal homepage
Path-based routes (/tools/, /dot/, /tools/<slug>/) work on any domain as fallbacks.
npm run dev— start dev servernpm run build— build static export toout/npm start— start production server (for local testing)
Push to main to trigger GitHub Pages deployment via the workflow. DNS for iid.sh, tools.iid.sh, and dot.iid.sh should all point to the same static origin.