From 9f6b22891f79710b8b9d8bb443d583140cd1c78a Mon Sep 17 00:00:00 2001 From: kbot Date: Mon, 6 Jul 2026 19:49:42 -0500 Subject: [PATCH] chore: commit in-progress metadata and asset updates --- app/favicon.ico | Bin 25931 -> 32038 bytes app/icon.svg | 103 +++ app/layout.tsx | 11 + portfolio-site-research-report-v2.md | 1034 ++++++++++++++++++++++++++ public/file.svg | 1 - public/globe.svg | 1 - public/next.svg | 1 - public/og-image.svg | 95 +++ public/og.png | Bin 0 -> 37792 bytes public/ouroboros.svg | 103 +++ public/starter-diagram.svg | 17 - public/starter-showcase.svg | 26 - public/vercel.svg | 1 - public/window.svg | 1 - 14 files changed, 1346 insertions(+), 48 deletions(-) create mode 100644 app/icon.svg create mode 100644 portfolio-site-research-report-v2.md delete mode 100644 public/file.svg delete mode 100644 public/globe.svg delete mode 100644 public/next.svg create mode 100644 public/og-image.svg create mode 100644 public/og.png create mode 100644 public/ouroboros.svg delete mode 100644 public/starter-diagram.svg delete mode 100644 public/starter-showcase.svg delete mode 100644 public/vercel.svg delete mode 100644 public/window.svg diff --git a/app/favicon.ico b/app/favicon.ico index 718d6fea4835ec2d246af9800eddb7ffb276240c..e6eb7771143decda5f5e78e8bd1e9a3e8fac5bb3 100644 GIT binary patch literal 32038 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/layout.tsx b/app/layout.tsx index ef4f35d..eab68b4 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -31,9 +31,20 @@ const plexMono = IBM_Plex_Mono({ variable: '--font-plex-mono', }) +const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'https://localhost:3000' + export const metadata: Metadata = { + metadataBase: new URL(siteUrl), title: { template: '%s | Krishna', default: 'Krishna' }, description: 'A sleek static journal with code and math.', + icons: { + icon: '/ouroboros.svg', + }, + openGraph: { + title: 'Krishna', + description: 'A sleek static journal with code and math.', + images: ['/og.png'], + }, } export default function RootLayout({ children }: { children: React.ReactNode }) { diff --git a/portfolio-site-research-report-v2.md b/portfolio-site-research-report-v2.md new file mode 100644 index 0000000..9865c55 --- /dev/null +++ b/portfolio-site-research-report-v2.md @@ -0,0 +1,1034 @@ +# Portfolio Site Research Report v2 + +Date: 2026-07-06 +Prepared for: Lord Deus +Purpose: a thorough research-backed design report for a personal portfolio site that feels **dark, high-taste, technical, serious, and color-popping** — not generic portfolio-template sludge. + +## 0. Executive verdict + +The strongest direction is not “developer portfolio.” It is: + +> **A dark personal command center: part Palantir-style operational system, part portfolio OS, part research archive, part proof dossier.** + +Working concept name: + +> **Signal Blacksite Portfolio** + +Core principles: + +1. **Dark base, vivid signal.** Near-black surfaces; popping cyan/orange/green used as operational signal, not decoration. +2. **Work as evidence.** Projects should appear as dossiers, artifacts, tables, and proof links — not generic cards. +3. **Interface as proof.** If the portfolio claims agentic systems/interface skill, the UI should demonstrate it: command palette, status strip, project index, metadata, keyboard navigation. +4. **High taste through restraint.** Every site researched succeeds by doing fewer things with stronger intent. +5. **Motion must earn its keep.** Motion should clarify state, reveal relationships, or show craft. No idle carnival. + +The best combined model: + +- **Palantir** for seriousness, dark institutional systems language, technical blueprint cards, numbered rows, big CTAs. +- **Brittany Chiang** for dark accessible engineering structure, sticky identity, experience/project proof entries. +- **Olivier Larose** for motion-first work index and black-stage restraint. +- **Rauno Freiberg** for modular index, cropped typography, manifesto tile, strong personal world. +- **Paco Coursey / Emil Kowalski** for editorial reduction, artifact-based copy, writing-as-proof. +- **Josh Comeau** for personal brand system, content architecture, site utilities, and approachable depth. +- **Bruno Simon** for memorable world-building and optional 3D/spatial intro — only if performance-safe. +- **Linear/Vercel/Resend-like product sites** for product UI hero framing, tight typography, and proof-first product presentation. + +--- + +## 1. Research set + +### 1.1 Portfolio / personal sites visually inspected + +| Site | URL | Why it matters | +|---|---|---| +| Palantir | https://www.palantir.com/ | Dark institutional systems language, giant hero type, technical cards, numbered capability rows, CTA architecture. | +| Brittany Chiang | https://brittanychiang.com/ | Dark navy accessible developer portfolio, sticky intro/sidebar, structured experience and project entries. | +| Rauno Freiberg | https://rauno.me/ | Horizontal index, huge cropped typography, tiny editorial labels, one bold gesture per tile, manifesto panel. | +| Paco Coursey | https://paco.me/ | Quiet text-first personal index, high-taste copy, underlined links, proof through selected artifacts. | +| Josh W. Comeau | https://www.joshwcomeau.com/ | Strong personal technical brand, content discovery, category architecture, theme/search/audio utility controls. | +| Olivier Larose | https://www.olivierlarose.com/ | Black stage, motion-first table-style work index, project/category/client/year grid. | +| Bruno Simon | https://bruno-simon.com/ | Immersive WebGL/spatial portfolio as world; perspective grid and neon focal motion. | +| Emil Kowalski | https://emilkowal.ski/ | Extreme text-first restraint, projects/writing as proof, taste/animation philosophy, no visual noise. | +| Lee Robinson | https://leerob.com/ | Developer/writer positioning and modern personal site reference; inspected by live fetch. | + +### 1.2 Design/inspiration resources checked + +| Resource | URL | Use | +|---|---|---| +| Awwwards Portfolio Gallery | https://www.awwwards.com/websites/portfolio/ | Taste bar and contemporary portfolio examples. | +| CSS Design Awards | https://www.cssdesignawards.com/ | Award-level interaction and visual craft references. | +| GSAP Showcase | https://gsap.com/showcase/ | High-end scroll/motion implementation examples. | +| Awesome Web Desktops | https://github.com/syxanash/awesome-web-desktops | Personal site as OS/desktop/cockpit. | +| Magic UI | https://magicui.design/ | Animated React/Tailwind components. | +| React Bits | https://www.reactbits.dev/ | Animated React components and interaction ideas. | +| Aceternity UI | https://ui.aceternity.com/ | Tailwind/Framer Motion sections, spotlights, beams, cards. | +| Mobbin | https://mobbin.com/discover/apps/web | Product UI patterns and web-app screenshot research. | +| Recent / Godly redirect | http://recent.design/?ref=godly | Broad web-design inspiration stream. | + +### 1.3 Product sites checked for adjacent product-design language + +| Site | URL | Use | +|---|---|---| +| Linear | https://linear.app/ | Product UI hero, agentic/productivity language, dark polished interface presentation. | +| Vercel | https://vercel.com/ | Infrastructure/agentic positioning and premium technical product voice. | +| Resend | https://resend.com/ | Developer-tool clarity, minimal proof-first messaging. | +| Stripe | https://stripe.com/ | Infrastructure credibility, copy hierarchy, product/business clarity. | + +--- + +## 2. Site-by-site findings + +## 2.1 Palantir — institutional systems language + +### What works + +Palantir’s homepage carries a high-stakes operational tone: + +- dark hero; +- huge centered thin/regular white headline; +- minimal utility nav; +- product/system imagery dimmed behind text; +- technical topic chips; +- massive feature cards with blueprint/industrial visuals; +- giant manifesto statement; +- numbered capability rows; +- oversized two-tile CTA close. + +The page does not feel like a friendly SaaS page. It feels like infrastructure, defense, and decision systems. + +### Borrow + +1. **Dark cinematic hero** + - Full-screen or near-full-screen. + - Background is product/system imagery or abstract operational UI. + - Heavy overlay so type dominates. + +2. **Technical blueprint dossier card** + - Deep charcoal card. + - Small uppercase label. + - Large title. + - Schematic/line-art/wireframe visual. + - Oversized cropped title as texture. + - Thin dividers and metadata. + +3. **Numbered rows** + - Capability/service rows with `/.01`, `/.02`, etc. + - Thin dividers. + - Right-aligned index. + +4. **Big CTA tiles** + - Two huge rectangular blocks. + - Example: `View Selected Work →` and `Start a Project →`. + +### Avoid + +- Corporate monotone without personality. +- Copying Palantir’s defense aesthetic too literally. +- Making the site feel like a fake enterprise company instead of a personal portfolio. + +### Adaptation + +Use Palantir’s seriousness and structure, but inject personal signal with: + +- electric cyan/orange accents; +- command palette; +- personal field notes; +- project artifacts; +- proof links; +- a less corporate, more operator-like voice. + +--- + +## 2.2 Brittany Chiang — structured dark engineering portfolio + +### What works + +Brittany Chiang’s portfolio is a mature dark engineering site: + +- sticky left identity/sidebar; +- right scrolling content column; +- clear sections: About, Experience, Projects, Writing; +- experience entries with date, title, description, links, tech tags; +- project entries with thumbnail, description, stats, tags; +- dark navy palette with teal accent; +- semantic/accessibility-conscious structure. + +### Borrow + +1. **Sticky identity rail** + - Name, role, one-line value proposition, section nav, social links. + - Works well on desktop. + +2. **Experience entry pattern** + +```txt +DATE RANGE +Role at Company ↗ +Concise outcome-oriented description. +Tags: React / TypeScript / Accessibility / Design Systems +``` + +3. **Project proof pattern** + - Project title. + - One-line description. + - Credibility stat if available: stars, installs, users, usage. + - Tech tags. + +4. **Section nav with active indicator** + - Useful for long one-page portfolios. + +### Avoid + +- Too-muted text contrast. +- Empty or invisible thumbnails. +- Pushing selected work too far down if the site is supposed to sell projects quickly. + +### Adaptation + +Use Brittany’s structure inside a darker, more visual Palantir-like shell. Keep the proof-entry clarity, but make featured work more dramatic. + +--- + +## 2.3 Rauno Freiberg — horizontal index and manifesto + +### What works + +Rauno’s site is a gallery-like horizontal index: + +- modular cards; +- tiny editorial labels; +- oversized cropped typography; +- one strong visual gesture per tile; +- massive negative space; +- personal manifesto tile; +- strong typographic personality without conventional portfolio cards. + +The important insight: the site is not a landing page. It is an index into a world. + +### Borrow + +1. **Homepage as index** + - Use tiles for Work, Systems, Lab, Field Notes, Contact, Principles. + +2. **Cropped type as graphic material** + - Use giant words like `WORK`, `LAB`, `AGENTS`, `SYSTEMS` clipped inside panels. + +3. **One visual gesture per module** + - One tile gets a diagram. + - One gets a glowing cursor. + - One gets handwriting. + - One gets a manifesto. + +4. **Manifesto/principles tile** + - A compact “what I believe” panel is stronger than a fluffy About section. + +### Avoid + +- Hidden horizontal scroll without affordance. +- Too much abstraction without context. +- Cropping important text so users do not understand navigation. + +### Adaptation + +A dark version could use a **dark horizontal archive strip** after the hero: + +```txt +[WORK] [AGENTS] [SYSTEMS] [FIELD NOTES] [CONTACT] [PRINCIPLES] +``` + +Each card gets one electric accent gesture. + +--- + +## 2.4 Paco Coursey — editorial reduction + +### What works + +Paco’s site is a narrow, text-first personal index: + +- no large hero; +- no cards; +- no screenshots; +- no nav bar; +- strong concise copy; +- underlined links; +- compact columns for Building / Projects / Writing; +- “Now” section for personal/current context; +- direct contact. + +This demonstrates confidence through omission. + +### Borrow + +1. **Sharp intro copy** + +```txt +Crafting interfaces. Building polished software and web experiences. +``` + +For this portfolio: + +```txt +Building agentic systems, command interfaces, and operational tools. +``` + +2. **Compact index columns** + +```txt +Building Work Writing +Current tool Project A Field note +Experiment Project B Essay +``` + +3. **Underlined links** + - Mature, accessible, non-gimmicky. + +4. **Now section** + - Current focus and taste without autobiography sprawl. + +### Avoid + +- Being too sparse if your name-brand proof is not immediately obvious. +- Vague “craft” language without artifacts. +- Over-minimalism that hides what you can do. + +### Adaptation + +Use Paco’s editorial writing style inside the About/Now sections, not as the entire site. Since Lord Deus wants dark + popping colors, the total site should have more visual presence. + +--- + +## 2.5 Josh Comeau — content architecture and personal brand system + +### What works + +Josh Comeau’s site is a deep technical content world: + +- playful illustrated environment; +- strong brand system; +- article archive with excerpts; +- browse-by-category chips; +- popular content list; +- search, audio, theme, RSS/social utilities; +- strategic footer with newsletter and navigation. + +It proves expertise through content and interaction. + +### Borrow + +1. **Content discovery** + - Lab/notes should not be a dump. Include categories and recommended entries. + +2. **Utility controls** + - Search / command palette. + - Theme or intensity toggle. + - RSS or updates if writing exists. + +3. **Footer as navigation hub** + - Not an afterthought. Use it for Work, Lab, Systems, Contact. + +4. **Personality in system, not random decoration** + - Josh has clouds/rainbow/pink labels. For this portfolio, use dossier/terminal/signal motifs consistently. + +### Avoid + +- Borrowing whimsy that conflicts with Palantir seriousness. +- Too many categories if content is thin. +- Cute illustration if the desired feel is dark/operator. + +### Adaptation + +Use Josh’s **content architecture**, not his visual style. The equivalent visual language should be dark terminal/cyber-institutional, not friendly clouds. + +--- + +## 2.6 Olivier Larose — motion-first work index + +### What works + +Olivier’s visible page is extremely minimal: + +- black canvas; +- tiny all-caps nav; +- huge empty stage; +- project table headers: Project / Category / Client / Year; +- likely hover previews and motion-led reveal. + +This is useful because it turns the work list into an interaction surface. + +### Borrow + +1. **Project index table** + +```txt +PROJECT TYPE STATUS YEAR +Browser Console AI Interface Shipped 2026 +Signal Archive Research Tool Prototype 2026 +``` + +2. **Hover previews** + - On hover, preview appears near cursor or in fixed panel. + - Row changes accent color. + - Metadata dims. + +3. **Black stage restraint** + - Keep static layout minimal; let interaction reveal richness. + +### Avoid + +- Page looking empty if animation fails. +- Hover-only content inaccessible on touch/keyboard. +- Tiny uppercase labels with poor contrast. + +### Adaptation + +Use the project table as a section after the featured dossiers. Provide visible first rows and static preview fallback. + +--- + +## 2.7 Bruno Simon — portfolio as world + +### What works + +The visible Bruno Simon state shows: + +- dark immersive 3D/perspective grid; +- neon purple/pink glow; +- spatial “entering a digital world” feel; +- memorable world-building. + +This is the most experimental reference. + +### Borrow + +1. **Spatial hero layer** + - Dark grid / field / perspective plane. + - Cursor-reactive glow. + - Optional animated trace. + +2. **World-building** + - The site should feel like a place, not just a page. + +3. **High contrast neon focal point** + - One glow, one energy source, not neon everywhere. + +### Avoid + +- Heavy WebGL that blocks content. +- Loader ambiguity. +- Accessibility/performance failure. +- Turning a portfolio into a game when the goal is proof and conversion. + +### Adaptation + +Use a lightweight spatial background or static fallback. The portfolio should not depend on WebGL for basic usability. + +--- + +## 2.8 Emil Kowalski — taste through reduction + +### What works + +Emil’s site is radically plain: + +- centered text column; +- identity + current work; +- Projects list; +- Writing list; +- Newsletter; +- More links; +- almost no visual decoration. + +It works because the artifacts are strong and coherent: animations.dev, Sonner, Vaul, articles about taste/animation/components. + +### Borrow + +1. **Artifact-first project list** + +```txt +Project Name +One-sentence explanation. +``` + +2. **Writing as proof of taste** + - Article titles can communicate positioning better than self-description. + +3. **Plain copy** + - No hype, no fake polish. + +4. **Animation philosophy** + - “You Don’t Need Animations” is an important lesson: animation restraint itself signals taste. + +### Avoid + +- Too plain if the work does not already carry reputation. +- No images at all if visual/interface craft is the selling point. + +### Adaptation + +Use Emil’s reduction for the Lab/Notes and maybe About sections. The whole site should still have the dark/popping visual identity Lord Deus prefers. + +--- + +## 2.9 Linear / Vercel / Resend / Stripe — product-site lessons + +These are not personal portfolios, but they inform the target aesthetic: + +### Borrow + +- crisp product positioning; +- product UI screenshots as hero artifacts; +- minimal but confident copy; +- dark or refined neutral surfaces; +- infrastructure language; +- proof-first structure; +- strong CTA clarity; +- responsive high-performance layout. + +### Avoid + +- sounding like a company instead of a person; +- generic “premium SaaS” gradients; +- vague agentic/AI claims without proof; +- over-polishing weak content. + +--- + +## 3. Cross-reference: patterns worth building + +| Pattern | Sources | Final use | +|---|---|---| +| Dark cinematic hero | Palantir, Linear, Bruno | First impression: command deck. | +| Technical blueprint dossier | Palantir | Featured project cards. | +| Sticky identity/sidebar | Brittany | Desktop navigation option. | +| Project table/index | Olivier | Work archive and hover previews. | +| Horizontal archive strip | Rauno | Optional above-fold index/modules. | +| Editorial text-first copy | Paco, Emil | About, Now, Lab intros. | +| Writing/lab as proof | Josh, Emil, Paco | Field notes section. | +| Command/search utility | Josh, product apps | Cmd/Ctrl+K palette. | +| Numbered capability rows | Palantir | Services/capability proof. | +| Clipped-corner proof cards | Palantir-like dossier motif | Metrics/testimonials/artifacts. | +| Popping accent gestures | Bruno, Rauno + user preference | Cyan/orange/green signal system. | +| Footer as index | Palantir, Josh | Dense final navigation hub. | + +--- + +## 4. Final concept: Signal Blacksite Portfolio + +### 4.1 Visual thesis + +A near-black portfolio that behaves like an operational system: + +- the hero is a command deck; +- projects are dossiers; +- capabilities are indexed rows; +- notes are field reports; +- contact is a terminal dispatch; +- color appears only as signal. + +### 4.2 Mood board in words + +- Palantir’s seriousness. +- Linear’s product precision. +- Olivier’s black stage. +- Brittany’s engineering clarity. +- Rauno’s graphic indexing. +- Paco/Emil’s editorial restraint. +- Bruno’s electric spatial energy. + +### 4.3 Anti-mood + +- No cheerful startup colors. +- No generic SaaS hero with blob gradient. +- No “Hi, I’m passionate…” copy. +- No random 3D cube. +- No fake terminal with meaningless commands. +- No overanimated scroll hijack. +- No hidden content that only exists on hover. + +--- + +## 5. Visual system + +### 5.1 Palette + +```css +:root { + --bg: #030506; + --bg-2: #07090a; + --surface: #101517; + --surface-2: #171d21; + --surface-3: #20282d; + + --text: #f4f7f8; + --text-warm: #f2eee7; + --muted: #8b949a; + --faint: #5f696f; + --line: #2c353a; + + --cyan: #00f0ff; + --orange: #ff5a1f; + --green: #b6ff00; + --violet: #805dff; + --magenta: #ff2e88; +} +``` + +### 5.2 Accent rules + +Use dark base 85–90% of the time. + +- **Cyan**: active state, command palette, arrows, diagram nodes, selected chip. +- **Orange**: warning/hot artifact/project emphasis, CTA edge, hover spark. +- **Green**: status only: online/available/shipped. +- **Violet/magenta**: rare experimental project-specific accent. + +Never use all colors at once. A page section should generally use one accent. + +### 5.3 Typography + +Recommended: + +- Display/body: Inter, Söhne, Suisse Intl, ABC Diatype, Space Grotesk. +- Metadata: JetBrains Mono, Geist Mono, IBM Plex Mono. +- Optional editorial italic: a refined serif for one or two human phrases. + +Scale: + +```css +.hero-title { + font-size: clamp(64px, 10vw, 140px); + line-height: 0.92; + letter-spacing: -0.06em; + font-weight: 500; +} + +.section-label { + font-family: var(--mono); + font-size: 11px; + letter-spacing: 0.16em; + text-transform: uppercase; +} + +.body-copy { + font-size: clamp(16px, 1.4vw, 20px); + line-height: 1.6; + color: var(--muted); +} +``` + +--- + +## 6. Page architecture + +### 6.1 Announcement/status bar + +```txt +STATUS: AVAILABLE FOR SELECT BUILDS — View current focus → +``` + +- Thin, dark, utility style. +- One status dot in green. +- One link with underlined/arrow affordance. + +### 6.2 Floating nav + +```txt +DEUS / SIGNAL BLACKSITE WORK CAPABILITIES LAB CONTACT [⌘K] +``` + +- Translucent charcoal. +- Backdrop blur. +- Square or low-radius buttons. +- Keyboard-accessible. + +### 6.3 Hero / command deck + +```txt +[STATUS: ONLINE] +Builder of agentic systems, interfaces, and operational tools. +I turn ambiguity into working software. +[View Work] [Open Command Palette] +Scroll to Explore ↓ +``` + +Visual: + +- Dark product/system background, grid, or abstract command interface. +- Heavy overlay. +- Giant centered headline. +- Cyan cursor/status marker. +- Optional subtle animated grid. + +### 6.4 Category chips + +```txt +AI Systems / Interfaces / Automation / Research / Infra / Motion / Selected Work +``` + +- Dark chips with muted text. +- Active chip cyan border or fill. +- Hover glow. + +### 6.5 Featured project dossier + +```txt +[AI SYSTEMS] STATUS: SHIPPED +Project Name ↗ + +MISSION one sentence +CONSTRAINT one sentence +SYSTEM one sentence +RESULT one sentence + +ROLE / YEAR / STACK / PROOF +``` + +Visual: + +- Large charcoal card. +- Technical diagram/wireframe. +- Oversized cropped project title. +- Thin rules. +- Cyan nodes/orange markers. + +### 6.6 Work index + +```txt +PROJECT TYPE STATUS YEAR +Browser Agent Console AI Interface Shipped 2026 +Signal Archive Research Tool Prototype 2026 +Portfolio OS Web Experience Building 2026 +``` + +Interaction: + +- Hover/focus reveals preview. +- Keyboard focus opens same preview region. +- Touch devices show static thumbnail row. + +### 6.7 Manifesto + +```txt +I build interfaces for complex systems — turning vague intent into tools operators can trust. +``` + +- Huge text. +- Muted gray. +- Key words in cyan/orange. +- Massive whitespace. + +### 6.8 Numbered capability rows + +```txt +Orchestrate browser-using agents /.01 +Build AI-native product workflows /.02 +Design command-center interfaces /.03 +Ship automation with real verification /.04 +Turn research into operator-grade briefs /.05 +``` + +### 6.9 Operator profile + +Use compact paragraphs + matrix: + +```md +| Domain | Capabilities | Proof | +|---|---|---| +| AI Agents | tool orchestration, browser control, eval loops | links | +| Interfaces | command UIs, dashboards, design systems | links | +| Research | synthesis, citation-backed briefs | links | +| Automation | Linux, scripts, workflows, integrations | links | +``` + +### 6.10 Lab / field notes + +Each item: + +```txt +FIELD NOTE / 2026-07 +Title +One-line description. +Tags: AI, UX, systems +``` + +### 6.11 Proof cards + +Use clipped-corner dossier cards for: + +- metrics; +- testimonials; +- project artifacts; +- screenshots; +- demo/repo/writeup links. + +### 6.12 Contact terminal + +```txt +> open contact.channel +email: your@email.com +github: github.com/yourname +status: available for serious builds +``` + +### 6.13 Final CTA tiles + +```txt +View Selected Work → +Start a Project → +``` + +### 6.14 Footer index + +Columns: + +- Work +- Lab +- Systems +- Contact + +Include build stack, year, social links, and command palette hint. + +--- + +## 7. Interaction requirements + +### 7.1 Command palette + +Mandatory. + +Shortcut: `Cmd/Ctrl + K` + +Actions: + +- Go to Work +- Go to Capabilities +- Go to Lab +- Go to Contact +- Copy Email +- Open GitHub +- Toggle Theme / Intensity + +Style: + +- Dark modal. +- Thin border. +- Accent active row. +- Mono shortcut labels. +- No rounded bubbly SaaS modal. + +### 7.2 Project hover/focus previews + +On project row hover/focus: + +- preview image/video appears; +- row title becomes accent; +- metadata dims; +- arrow slides; +- background gains soft radial glow. + +Reduced motion: + +- no cursor-following preview; +- static preview panel appears below or right. + +### 7.3 Motion rules + +Good: + +- 120–220ms hover transitions; +- 500–900ms section reveals; +- subtle parallax only in hero; +- arrow slide; +- command palette blur/scale. + +Bad: + +- bouncing icons; +- confetti; +- infinite neon pulse; +- scroll hijacking; +- animations that hide text. + +--- + +## 8. Content model + +### 8.1 Project dossier fields + +Every serious project should have: + +- Title +- Type +- Year +- Status +- Role +- Stack +- Mission +- Constraint +- System +- Result +- Artifacts: demo/repo/screenshots/writeup +- Proof: metric, usage, before/after, user quote, or technical validation + +### 8.2 Writing / lab fields + +Each note: + +- Date +- Type: Field Note / Research / Build Log / Essay +- Title +- One-line summary +- Tags +- Link + +### 8.3 Voice + +Use precise, unsentimental copy. + +Good: + +- “I build interfaces for complex systems.” +- “Selected work, field-tested.” +- “Agent workflows, command interfaces, research tools.” +- “Proof over promises.” + +Bad: + +- “Passionate about creating delightful experiences.” +- “I make beautiful websites.” +- “Welcome to my portfolio.” +- “Cutting-edge innovative solutions.” + +--- + +## 9. Implementation recommendation + +Stack: + +- Next.js App Router +- TypeScript +- Tailwind CSS +- Framer Motion +- MDX for lab/case studies +- Optional GSAP for scroll scenes +- Optional React Three Fiber only for meaningful/lazy-loaded hero layer + +Required engineering quality: + +- keyboard navigation; +- visible focus states; +- `prefers-reduced-motion` support; +- mobile layout; +- image/video lazy loading; +- no hover-only information; +- semantic HTML; +- Lighthouse 90+ performance target; +- lint/typecheck/build pass. + +--- + +## 10. Anti-patterns + +Reject these outputs: + +- generic Tailwind/shadcn landing page; +- random gradient blob hero; +- fake terminal with meaningless commands; +- project cards without proof links; +- hidden navigation; +- hover-only content; +- tiny unreadable gray text; +- neon everywhere; +- heavy WebGL before content loads; +- “portfolio as résumé PDF pasted into HTML.” + +--- + +## 11. Agent-ready prompt + +```txt +Build a premium personal portfolio site using the Signal Blacksite Portfolio research report. + +Design direction: +A dark, high-contrast personal command center: part Palantir-style operational system, part portfolio OS, part research archive, part proof dossier. The site should feel serious, technical, cinematic, and high-taste — not a generic portfolio template. + +Research anchors to adapt, not clone: +- Palantir: dark institutional hero, blueprint cards, numbered rows, CTA tiles — https://www.palantir.com/ +- Brittany Chiang: structured dark engineering portfolio, sticky identity, experience/project entries — https://brittanychiang.com/ +- Rauno Freiberg: horizontal archive/index, cropped typography, manifesto tile — https://rauno.me/ +- Paco Coursey: quiet text-first personal index, editorial copy, underlined links — https://paco.me/ +- Josh Comeau: personal technical brand system, content architecture, search/theme utilities — https://www.joshwcomeau.com/ +- Olivier Larose: black motion-first project index, project/category/client/year table — https://www.olivierlarose.com/ +- Bruno Simon: immersive spatial/WebGL portfolio-as-world — https://bruno-simon.com/ +- Emil Kowalski: artifact-first projects/writing, taste through reduction — https://emilkowal.ski/ + +Build with Next.js App Router, TypeScript, Tailwind CSS, and Framer Motion. Optional: GSAP for complex scroll; React Three Fiber only if meaningful and lazy-loaded. + +Visual system: +- near-black/charcoal base; +- huge clean sans-serif typography; +- mono metadata labels; +- thin gray dividers; +- dossier cards; +- table-style project index; +- technical blueprint/wireframe motifs; +- electric cyan primary accent; +- infrared orange secondary accent; +- acid green only for status. + +Required sections: +1. thin announcement/status bar, +2. floating translucent nav, +3. fullscreen dark hero / command deck, +4. project/category chips, +5. featured project dossier card, +6. motion-first project index table, +7. giant manifesto statement, +8. numbered capability rows using `/.01` style indexes, +9. compact operator-profile about section, +10. lab/field-notes section, +11. clipped-corner proof cards, +12. contact terminal, +13. oversized final CTA tiles, +14. dense footer index. + +Required interactions: +- Cmd/Ctrl+K command palette; +- project hover/focus previews with reduced-motion fallback; +- category chips; +- copy email; +- visible keyboard focus states; +- optional theme/intensity toggle. + +Content rules: +- Projects must be dossiers with mission, constraint, system, result, role, stack, year, status, and proof links. +- Lab notes must prove thinking, not fill space. +- Copy must be concise, concrete, and unsentimental. + +Do not build: +- generic SaaS/Tailwind template; +- random gradient blob hero; +- meaningless 3D model; +- fake terminal noise; +- hover-only content; +- unreadable low-contrast text; +- overanimated scroll hijack. + +Before claiming completion: +- run lint; +- run typecheck; +- run production build; +- verify keyboard navigation; +- verify mobile layout; +- verify reduced-motion mode; +- provide final desktop and mobile screenshots. +``` + +--- + +## 12. Final recommendation + +Use **Palantir as the outer shell**, **Olivier as the work interaction**, **Brittany as the proof structure**, **Paco/Emil as the copy discipline**, **Rauno as the graphic/index personality**, **Josh as the content architecture**, and **Bruno only as a controlled optional spatial layer**. + +That combination should produce a portfolio that is dark, sharp, memorable, and useful — not just visually cool, but credible. diff --git a/public/file.svg b/public/file.svg deleted file mode 100644 index 004145c..0000000 --- a/public/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/globe.svg b/public/globe.svg deleted file mode 100644 index 567f17b..0000000 --- a/public/globe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/next.svg b/public/next.svg deleted file mode 100644 index 5174b28..0000000 --- a/public/next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/og-image.svg b/public/og-image.svg new file mode 100644 index 0000000..f559241 --- /dev/null +++ b/public/og-image.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Krishna + JOURNAL + + CODE & MATH + \ No newline at end of file diff --git a/public/og.png b/public/og.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f105741bc87e394f051e7864139648b61a0b8e GIT binary patch literal 37792 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/starter-diagram.svg b/public/starter-diagram.svg deleted file mode 100644 index 105c0ed..0000000 --- a/public/starter-diagram.svg +++ /dev/null @@ -1,17 +0,0 @@ - - Starter design diagram - Three connected nodes labeled design, content, and build. - - - - - - Design - - Content - - Build - - Ship - - diff --git a/public/starter-showcase.svg b/public/starter-showcase.svg deleted file mode 100644 index 5df203e..0000000 --- a/public/starter-showcase.svg +++ /dev/null @@ -1,26 +0,0 @@ - - Starter MDX showcase cover - A small abstract gradient cover with cards representing math, code, and design. - - - - - - - - - - - - - - - - - - - MDX - $E=mc² - code · links · tables - - diff --git a/public/vercel.svg b/public/vercel.svg deleted file mode 100644 index 7705396..0000000 --- a/public/vercel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/window.svg b/public/window.svg deleted file mode 100644 index b2b2a44..0000000 --- a/public/window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file