mirror of
https://github.com/kaygdotorg/website.git
synced 2026-07-15 04:07:40 +00:00
personal website / landing page / all things public
- Astro 47.1%
- CSS 27.2%
- JavaScript 18%
- TypeScript 7.7%
Merges fix/video-view-transitions which adds video.load() before video.play() in initVideoAutoplay(). After Astro's ClientRouter performs a view transition, video elements retain stale decode state from the previous page, causing NS_ERROR_UNEXPECTED in Firefox. Forcing a reload clears this state. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .obsidian | ||
| .vscode | ||
| public | ||
| scripts | ||
| src | ||
| .gitignore | ||
| AGENTS.md | ||
| astro.config.mjs | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| ROADMAP.md | ||
| tsconfig.json | ||
Personal Website
Personal site built with Astro 5, content collections, and a custom UI layer.
Tech Stack
- Astro 5
- Tailwind CSS v4
- DaisyUI
- Pagefind for on-site search
Project Layout
src/
content/ # Collection content (markdown + local assets)
blog/
notes/
talks/
now/
uses/
photography/
home/
about/
contact/
homelab/
changelog/
content.config.ts # Astro content collection schemas/loaders
pages/
index.astro
blog.astro
notes.astro
talks.astro
photography.astro
changelog.astro
now/index.astro
uses/index.astro
[page].astro
[collection]/[slug].astro
layouts/
BaseLayout.astro
MarkdownLayout.astro
TimelineLayout.astro
components/
styles/global.css
scripts/
sync-obsidian.mjs
public/
favicon.svg
robots.txt
resume.pdf
Development
npm install
npm run dev
Build
npm run build
npm run preview
npm run build generates the Astro output and runs Pagefind against dist/.
Search in Dev Mode
Pagefind needs a built index. To test search while running dev server:
npm run build:search
npm run dev
This writes the index to public/pagefind/ (git-ignored).
Content Workflow
- Markdown content lives under
src/content/<collection>/. - Collection schemas and frontmatter validation live in
src/content.config.ts. - Use
scripts/sync-obsidian.mjsto sync from an Obsidian vault (requiresOBSIDIAN_PATHin.env).
Assets
- Put assets in
src/content/...when you want Astro/Vite optimization. - Put assets in
public/when you need exact, unprocessed files (for example PDFs or files that should bypass optimization).
License
- Code: MIT (
LICENSE) - Content: CC BY-NC 4.0 (
src/content/LICENSE)