Skip to content

Commit 2c31764

Browse files
captkernelclaude
andcommitted
Add portfolio design spec for captkernel.com
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 parents  commit 2c31764

2 files changed

Lines changed: 150 additions & 0 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Secrets — never commit
2+
.secrets/
3+
*.env
4+
.env
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# captKernel — Personal Portfolio (captkernel.com)
2+
3+
**Date:** 2026-06-27
4+
**Owner:** Karan Parmar (captKernel)
5+
**Status:** Design — awaiting review
6+
7+
## Purpose
8+
9+
A single-page personal portfolio / personal-brand site hosted on GitHub Pages and
10+
served at the apex domain `captkernel.com` (domain on GoDaddy). It represents Karan
11+
Parmar publicly as an AI builder: by day an AI Decision Science Manager at Accenture,
12+
independently a prolific builder of AI agents, developer tooling, and small desktop apps.
13+
14+
## Success criteria
15+
16+
- Loads at `https://captkernel.com` (and `https://www.captkernel.com`) over HTTPS.
17+
- Dark, technical aesthetic that feels deliberate, fast, and accessible.
18+
- Content is real (drawn from GitHub + confirmed facts), not placeholder.
19+
- Easy for Karan to edit later (no build step, no framework).
20+
- Existing email (Mailgun) on the domain keeps working — DNS change touches only the
21+
apex `A` records and the `www` CNAME.
22+
23+
## Identity & content (confirmed)
24+
25+
- **Display name:** captKernel (real name Karan Parmar shown in About/footer).
26+
- **Hero headline:** `I build with AI.`
27+
- **Supporting line:** `Agents, developer tools, and the occasional desktop app.`
28+
- **About:** captKernel is the workshop of Karan Parmar — an AI Decision Science Manager
29+
at Accenture working at the industrial edge of generative AI. Off the clock he builds
30+
relentlessly: autonomous agents, developer tooling for Claude Code, and small sharp
31+
desktop apps. This site is where that work lives.
32+
- **What I do** (replaces a dated work timeline — 3 short cards):
33+
1. **AI agents & automation** — autonomous, tool-using agents that do real work.
34+
2. **Developer tooling** — toolkits and skills that make AI coding sharper (Claude Code).
35+
3. **Desktop & product builds** — polished native apps and end-to-end products.
36+
- **Projects** (public GitHub repos only — private `C:\Claude\` work is NOT named):
37+
- **SoundDeck** (`sounddeck`, TypeScript) — Windows 11 tray audio control panel:
38+
switch devices, ride volume, test mics, save profiles. Native acrylic UI, hotkeys,
39+
auto-update.
40+
- **Claude Dev Toolkit** (`claude-dev-toolkit`, Python) — CLAUDE.md starter kit,
41+
secrets manager, frontend self-review, A2A tutorial.
42+
- **Claude Everyday Tools** (`claude-everyday-tools`, Python) — /flights /farecheck
43+
/focus /learn and more, plus a wardrobe app.
44+
- **Claude Writing Tools** (`claude-writing-tools`) — /humanize /tighten /hook and a
45+
brand+publish pipeline.
46+
- **Claude Thinking Tools** (`claude-thinking-tools`) — council skill, /brutal
47+
/premortem /redteam /pressure-test.
48+
- **Skills Curator** (`Skills_Curator`, Python) — evaluates Claude Code skills before
49+
installing and persists every decision. *(★ featured — only starred repo.)*
50+
- Each card: title, one-line description, language tag, GitHub link. Cards link to the
51+
repo. "See all on GitHub →" link to the profile.
52+
- **Skills** (tag grid): TypeScript, Python, Claude Code / Agent SDK, LLM / GenAI,
53+
Prompt & agent design, Node.js, Electron, Git/GitHub, Windows tooling, REST APIs.
54+
- **Contact / links:** GitHub (`github.com/captkernel`),
55+
LinkedIn (`linkedin.com/in/karanparmar99`), X. *(Email NOT shown.)*
56+
- NOTE: X/Twitter handle is unknown — **placeholder `https://x.com/` until Karan
57+
supplies the handle**; if none, the X link is omitted.
58+
59+
## Architecture
60+
61+
Deliberately minimal — static files, no build step, no framework.
62+
63+
```
64+
captkernel.github.io/ (GitHub repo, also developed in C:\Claude\Portfolio)
65+
├── index.html # all sections, semantic HTML
66+
├── styles.css # dark technical theme, responsive
67+
├── main.js # scroll-reveal, active-nav highlight (vanilla, progressive)
68+
├── assets/ # favicon, og image, any icons
69+
├── CNAME # contains: captkernel.com
70+
└── README.md
71+
```
72+
73+
- **Single page**, sticky top nav with smooth-scroll anchors:
74+
About · What I do · Projects · Skills · Contact.
75+
- **No external runtime dependencies.** Fonts via system stack + optional self-hosted
76+
monospace (JetBrains Mono) to avoid third-party calls; fall back to system mono.
77+
- JS is **progressive enhancement** — the site is fully readable with JS disabled.
78+
79+
### Visual design (dark & technical)
80+
81+
- Background near-black, GitHub-dark family (`#0d1117` base, `#161b22` panels).
82+
- Single accent: **terminal green `#3fb950`** (with a cyan secondary for hovers).
83+
- Headings/labels in **monospace**; body in a clean sans (system stack).
84+
- Hero motif: a faux terminal prompt (`captkernel:~$`) with the headline "typed" after
85+
it (CSS, optional JS cursor blink). Tasteful, not a gimmick.
86+
- Project cards: subtle border, hover lift, language shown as a colored dot + label.
87+
- Fully **responsive** (mobile-first), **accessible** (semantic landmarks, alt text,
88+
≥4.5:1 contrast, focus-visible states, `prefers-reduced-motion` respected).
89+
90+
## Components (single-purpose units)
91+
92+
| Unit | Purpose | Depends on |
93+
|------|---------|-----------|
94+
| `index.html` | Document structure & all content | none |
95+
| `styles.css` | Theme, layout, responsive, motion | design tokens (CSS vars) |
96+
| `main.js` | Scroll-reveal + active-nav highlight | IntersectionObserver |
97+
| `CNAME` | Binds repo to custom apex domain | GitHub Pages |
98+
| `assets/` | favicon + OpenGraph share image | none |
99+
100+
## Deployment & DNS
101+
102+
1. Build/iterate locally in `C:\Claude\Portfolio` (git repo).
103+
2. Karan creates an **empty** GitHub repo named **`captkernel.github.io`** (user Pages
104+
site → serves at the domain root). Claude provides exact push commands.
105+
3. Push site to `main`; enable **GitHub Pages** (source: `main` branch, root).
106+
4. Set **custom domain** `captkernel.com` in repo Pages settings (writes/uses CNAME).
107+
5. **GoDaddy DNS** (via GoDaddy API / domain-suite-mcp), changing ONLY:
108+
- Apex `@` `A` records → GitHub Pages IPs:
109+
`185.199.108.153`, `185.199.109.153`, `185.199.110.153`, `185.199.111.153`
110+
(replaces the current WebsiteBuilder `A` record).
111+
- `www` `CNAME``captkernel.github.io` (replaces current `www → @`).
112+
- **Untouched:** all Mailgun MX/SPF/CNAME (email), NS, `_domainconnect`.
113+
6. Wait for DNS propagation; enable **Enforce HTTPS** in Pages settings.
114+
115+
## Error handling / edge cases
116+
117+
- **DNS rollback:** capture current records (already read) to a backup file before any
118+
change, so the WebsiteBuilder/www records can be restored if needed.
119+
- **Apex vs www:** both must resolve; `www` CNAME + apex A records cover redirect both ways.
120+
- **HTTPS cert lag:** GitHub issues the cert after DNS resolves; "Enforce HTTPS" may be
121+
greyed out for a few minutes/hours — expected, not an error.
122+
- **Email safety:** Mailgun records explicitly excluded from the DNS update.
123+
- **Credentials:** GoDaddy key/secret live only in gitignored `.secrets/godaddy.env`.
124+
125+
## Testing / verification
126+
127+
- Local: open `index.html`, check all sections, nav anchors, responsive breakpoints
128+
(mobile/tablet/desktop), keyboard navigation, reduced-motion, JS-disabled readability.
129+
- Lighthouse pass target: Performance ≥95, Accessibility ≥95, Best Practices ≥95.
130+
- Post-deploy: `https://captkernel.com` and `https://www.captkernel.com` both load over
131+
HTTPS; `dig`/`nslookup` shows the 4 GitHub A records; send a test email to confirm
132+
Mailgun still works.
133+
134+
## Out of scope (YAGNI)
135+
136+
- No CMS, no blog (can be added later as a separate sub-project).
137+
- No analytics initially (can add privacy-friendly analytics later if wanted).
138+
- No contact form / backend — links only.
139+
- No framework, bundler, or CI.
140+
141+
## Open items for Karan
142+
143+
1. **X/Twitter handle** (or confirm to omit X).
144+
2. Approve the About copy and "What I do" card wording.
145+
3. Confirm headline `I build with AI.` + supporting line.
146+
4. Optional: a favicon/logo preference (default: monospace `>_` mark in accent green).

0 commit comments

Comments
 (0)