diff --git a/.gitignore b/.gitignore index 8619b6f..227591e 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,6 @@ playwright-report/ # Local dev workflow symlink (homelab-only, see ~/dev-shared/workflow/) workflow + +# Temporary render templates (used to generate static assets, not shipped) +prototypes/assets/_og-template.html diff --git a/CONTEXT.md b/CONTEXT.md index a7f3902..6d542da 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -10,7 +10,7 @@ ## What this is -A personal portfolio web app at `vishalkatariya.dev`. +A personal portfolio web app at `vishal-katariya.com`. - Public: homepage, project showcase, CS roadmap, about/contact. - Private (behind auth): `/me/vault`, `/me/docs`. @@ -49,7 +49,7 @@ A personal portfolio web app at `vishalkatariya.dev`. | Finance buddy | `buddy.auxois-wyrm.ts.net` | Private transaction dashboard | **Hosting split:** -- **Vercel (`vishalkatariya.dev`)** serves all public routes. Repo already connected; domain already configured. +- **Vercel (`vishal-katariya.com`)** serves all public routes. Repo already connected; domain already configured. - **athena (`auxois-wyrm.ts.net`)** serves anything private or backend-heavy via Tailscale. No public exposure. - This is a hybrid architecture: public edge CDN for speed + reliability; homelab for private control and self-hosted data. @@ -68,7 +68,7 @@ A personal portfolio web app at `vishalkatariya.dev`. ``` With this approach no Caddy `remote_ip` rule is required, but the Caddy reverse-proxy + certificate path is still the recommended production pattern. -3. **Explicitly not allowed:** page-level passwords, client-side auth checks, or exposing `/me` content on `vishalkatariya.dev`. +3. **Explicitly not allowed:** page-level passwords, client-side auth checks, or exposing `/me` content on `vishal-katariya.com`. The `/me` page in `portfolio-combined.html` is only an informational placeholder used inside the prototype; the real gate lives at the reverse proxy / network layer on athena. @@ -78,7 +78,7 @@ The `/me` page in `portfolio-combined.html` is only an informational placeholder | Layer | Technology | Notes | |---|---|---| -| Frontend | SvelteKit + TypeScript | Vercel deploy, `vishalkatariya.dev` | +| Frontend | SvelteKit + TypeScript | Vercel deploy, `vishal-katariya.com` | | Styling | Vanilla CSS with shared tokens | NothingOS + Liquid Glass + Neomorphism + NeoPOP | | Fonts | Cormorant Garamond + Space Grotesk + Outfit + DM Mono | Google Fonts CDN | | Backend | None for portfolio itself | Vercel serverless functions for contact form + GitHub contribution grid proxy; private `/me` backend on athena | @@ -97,7 +97,7 @@ The `/me` page in `portfolio-combined.html` is only an informational placeholder | Vercel | Portfolio frontend CDN | public | **Tailnet:** `auxois-wyrm.ts.net` -**Portfolio deploy:** Vercel → `vishalkatariya.dev` +**Portfolio deploy:** Vercel → `vishal-katariya.com` **GitHub mirror:** `vkkatariya.github.io` --- @@ -105,7 +105,7 @@ The `/me` page in `portfolio-combined.html` is only an informational placeholder ## Repo - **GitHub:** `vkkatariya/vkkatariya.github.io` -- **Domain:** `vishalkatariya.dev` +- **Domain:** `vishal-katariya.com` - **GitHub username:** `vkkatariya` --- diff --git a/README.md b/README.md index bfadcde..b3b1926 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![CI](https://github.com/vkkatariya/vkkatariya.github.io/actions/workflows/ci.yml/badge.svg) -Personal portfolio web app. Live at `vishalkatariya.dev`. +Personal portfolio web app. Live at `vishal-katariya.com`. This is a **simple standalone portfolio** — not a monolith. Real projects (homelab dashboard, finance buddy) live on their own private subdomains and are linked from `/projects`. Private notes and tools live behind `/me` auth. @@ -53,7 +53,7 @@ Standalone projects: - **Recommended pattern:** Caddy `remote_ip` matcher that rejects any client outside the Tailscale CGNAT range `100.64.0.0/10` with `403`. See `homelab-configs/me-tailscale-caddy.conf`. - **Alternative pattern:** bind the static server to the Tailscale IP only, e.g. `python3 -m http.server 8900 --bind "$(tailscale ip -4)"`, so the service has no public listening socket. -- **Not allowed:** page-level passwords, client-side auth checks, or exposing `/me` content on `vishalkatariya.dev`. +- **Not allowed:** page-level passwords, client-side auth checks, or exposing `/me` content on `vishal-katariya.com`. The `/me` section shown in `portfolio-combined.html` is just a static information card; the real gate lives on athena. diff --git a/docs/mental-model-tree.html b/docs/mental-model-tree.html index 1b1828a..19a0585 100644 --- a/docs/mental-model-tree.html +++ b/docs/mental-model-tree.html @@ -279,7 +279,7 @@
Project 01
portfolio-website
-
vishalkatariya.dev · vkkatariya/vkkatariya.github.io
+
vishal-katariya.com · vkkatariya/vkkatariya.github.io
@@ -329,7 +329,7 @@
Vercel + GitHub Pages
CDN frontend · VPS backend
- Vercel → vishalkatariya.dev + Vercel → vishal-katariya.com GH Pages → vkkatariya.github.io Caddy: bind tailscale/<n> plugin WS backend on DigitalOcean VPS @@ -358,7 +358,7 @@
Project 02
homelab-dashboard
-
vishalkatariya.dev/lab · lab.auxois-wyrm.ts.net (private)
+
vishal-katariya.com/lab · lab.auxois-wyrm.ts.net (private)
diff --git a/docs/portfolio_architecture_v2.html b/docs/portfolio_architecture_v2.html index cf15bf4..04d7f14 100644 --- a/docs/portfolio_architecture_v2.html +++ b/docs/portfolio_architecture_v2.html @@ -43,7 +43,7 @@

Portfolio website v2 architecture — routes, artifacts, and placement decisions

-
vishalkatariya.dev
+
vishal-katariya.com
public · Vercel · SvelteKit
diff --git a/index.html b/index.html index 93c6d82..3af0819 100644 --- a/index.html +++ b/index.html @@ -14,6 +14,7 @@ + diff --git a/prototypes/about.html b/prototypes/about.html index 306acf0..838fb6a 100644 --- a/prototypes/about.html +++ b/prototypes/about.html @@ -29,6 +29,7 @@ + @@ -866,13 +867,13 @@

About

- +
WEBSITE
-
vishalkatariya.dev
+
vishal-katariya.com
diff --git a/prototypes/assets/og-image.png b/prototypes/assets/og-image.png index 44b6dc3..44ab8b5 100644 Binary files a/prototypes/assets/og-image.png and b/prototypes/assets/og-image.png differ diff --git a/prototypes/cs-roadmap.html b/prototypes/cs-roadmap.html index 25da154..af58036 100644 --- a/prototypes/cs-roadmap.html +++ b/prototypes/cs-roadmap.html @@ -14,6 +14,7 @@ + diff --git a/prototypes/portfolio-combined.html b/prototypes/portfolio-combined.html index a2c32c8..610539f 100644 --- a/prototypes/portfolio-combined.html +++ b/prototypes/portfolio-combined.html @@ -29,6 +29,7 @@ + @@ -4662,7 +4663,7 @@

vercel

-
vishalkatariya.dev · global CDN edge network
+
vishal-katariya.com · global CDN edge network
/ · home /projects · /roadmap @@ -4699,7 +4700,7 @@

Hybrid Architecture
-

Personal portfolio at vishalkatariya.dev — built as a self-contained SvelteKit SPA, hybrid-hosted with public routes on Vercel and private /me/* behind a Tailscale + Caddy IP allowlist on athena.

+

Personal portfolio at vishal-katariya.com — built as a self-contained SvelteKit SPA, hybrid-hosted with public routes on Vercel and private /me/* behind a Tailscale + Caddy IP allowlist on athena.

Design system uses three layered surfaces: liquid glass (nav/frames), neomorphism (widgets), and NeoPOP (CTAs). Typography stacks Cormorant Garamond italic (initials) with Space Grotesk (display + accents), Outfit (body), DM Mono (labels), JetBrains Mono (topbar metadata), and Syne (about/projects hero titles).

diff --git a/prototypes/portfolio-prototypev.1.html b/prototypes/portfolio-prototypev.1.html index 10dceb5..2bcc76d 100644 --- a/prototypes/portfolio-prototypev.1.html +++ b/prototypes/portfolio-prototypev.1.html @@ -1012,7 +1012,7 @@
  • github
  • linkedin
  • email
  • -
  • vishalkatariya.dev
  • +
  • vishal-katariya.com
  • diff --git a/prototypes/portfolio-prototypev.2.html b/prototypes/portfolio-prototypev.2.html index 4d52d6e..e7192c6 100644 --- a/prototypes/portfolio-prototypev.2.html +++ b/prototypes/portfolio-prototypev.2.html @@ -1134,7 +1134,7 @@
  • github
  • linkedin
  • email
  • -
  • vishalkatariya.dev
  • +
  • vishal-katariya.com
  • diff --git a/prototypes/portfolio-v4.html b/prototypes/portfolio-v4.html index f90764d..77a613b 100644 --- a/prototypes/portfolio-v4.html +++ b/prototypes/portfolio-v4.html @@ -21,6 +21,7 @@ + @@ -1621,9 +1622,9 @@ github.com/vkkatariya - + - vishalkatariya.dev + vishal-katariya.com
    📍 Dieburg · near Darmstadt
    available for internships
    @@ -1639,7 +1640,7 @@
  • github
  • linkedin
  • email
  • -
  • vishalkatariya.dev
  • +
  • vishal-katariya.com
  • diff --git a/prototypes/projects.html b/prototypes/projects.html index 7e1d5b8..2ae1dec 100644 --- a/prototypes/projects.html +++ b/prototypes/projects.html @@ -29,6 +29,7 @@ + diff --git a/prototypes/resume.html b/prototypes/resume.html index d20f134..0bda379 100644 --- a/prototypes/resume.html +++ b/prototypes/resume.html @@ -14,6 +14,7 @@ + @@ -384,7 +385,7 @@ vishalkatariya404@gmail.com github.com/vkkatariya linkedin.com/in/vkkatariya - vishalkatariya.dev + vishal-katariya.com

    @@ -568,7 +569,7 @@
    diff --git a/tasks/DEVLOG.md b/tasks/DEVLOG.md index 5003e46..aa8d473 100644 --- a/tasks/DEVLOG.md +++ b/tasks/DEVLOG.md @@ -6,6 +6,32 @@ --- +## [2026-06-30] Claude Code (local) — feat/og-banner-rebuild + +**Mode:** Builder + +**Did:** +- Rebuilt `prototypes/assets/og-image.png` via Playwright HTML render (Approach B), replacing the old Pillow-generated banner (had a text-truncation bug — "Infrastructur" cut off) +- New `prototypes/assets/_og-template.html` (gitignored, temp): 1200×630 page using real site glass tokens (`--glass-bg`/`--glass-border`/`--glass-shadow`, `blur(40px) saturate(180%)`), Cormorant Garamond script + Syne 800 wordmark (matched actual `.hn-script`/`.hn-sans` font stack from `portfolio-combined.html`, not a Space Grotesk substitute), 120px logo, two-column layout (identity/pills/status left, contact pills right) +- Iterated 6 rounds with Vishal before commit (L-068): card resized to business-card proportions, name moved inline + font fixed to match site wordmark, status converted to green-dot pill ("open to work"), added AI/ML · Full Stack · DevOps/Infra pill row, contacts moved to right column as rounded pills, logo doubled to 120px, spacing tightened +- Found mid-task: branch had drifted to `dev` (reflog shows an unexplained `checkout` + cherry-picked commit before this session's visible context) — switched back to `feat/og-banner-rebuild` before any commit, no dev commits made +- Global replace `vishalkatariya.dev` → `vishal-katariya.com` (live domain) across 10 live-facing files: `portfolio-combined.html`, `portfolio-v4.html`, `portfolio-prototypev.1/2.html`, `about.html`, `resume.html`, `README.md`, `CONTEXT.md`, `docs/portfolio_architecture_v2.html`, `docs/mental-model-tree.html` +- Left `tasks/todo.md`, `tasks/design-dual-deployment.md`, `tasks/DEVLOG.md` untouched — they document a real registrar 308-redirect-loop issue specific to the `.dev` domain, not a live link +- Added missing `og:url` meta tags to all 7 live HTML files (kickoff assumed they already existed from the favicon task; they didn't) — added with per-file canonical paths +- `npm run lint:html` clean (8 files, 0 errors) + +**Decided:** +- Real site fonts (Cormorant Garamond italic + Syne 800) over Space Grotesk substitute — matches `.hn-script`/`.hn-sans` exactly +- `_og-template.html` gitignored as a temp render source, not shipped + +**State:** `feat/og-banner-rebuild` committed (24a1e1b) locally, NOT yet pushed or PR'd — awaiting explicit go-ahead to push/open PR + +**Next:** Push branch, open PR → dev, wait for Vishal review/merge + +**Modified:** 15 files (.gitignore, CONTEXT.md, README.md, 2 docs/*.html, index.html, 7 prototypes/*.html, og-image.png) + +--- + ## [2026-06-30] Claude Code (local) — feat/logo-everywhere (6 of 7 sub-places) **Mode:** Builder