Skip to content

Latest commit

 

History

542 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

thayn.me

Personal website and portfolio for Cyan.

Netlify Status License: AGPL v3 License: CC BY-SA 4.0

Warning

Redesign in progress. Some pages may be incomplete or broken.

About

Source for thayn.me, built without frameworks or bundlers. The build is a Node.js script (build.js) that compiles Handlebars templates and Markdown into static HTML/CSS/JS, deployed on Netlify. Pages, capsules and the asset bundles come from the GachaKit engine; the blog, feeds, webmentions and syndication are this repo's own.

Production dependencies: gachakit, @netlify/blobs, front-matter, handlebars, marked.

How it’s put together

  • Capsules are self-contained components (HTML + CSS + JS) that compose into pages. See src/capsules/ for the header, footer, ambient background, etc.
  • Blog posts are Markdown with YAML frontmatter, syndicated to Mastodon and Bluesky via Bridgy on deploy.
  • Edge functions block AI crawlers. Serverless functions proxy Last.fm data and fetch webmentions.

TODO

  • Reduce JS reliance. The CSP no longer allows inline styles. What remains is moving JS-driven elements to native CSS where practical:
    • mobile nav toggle → popover
    • container width tracking the nav → intrinsic CSS sizing
    • sliding nav highlight → anchor positioning
    • footer slide after navigation → a view transition

Local development

Requires Node.js >= v24.

npm install
npm run dev      # build + serve at localhost:3000
npm run build    # build only (outputs to ./public)
npm test         # syndication policy tests
npm run lint     # eslint
npm run format   # prettier

Licensing

If you reuse content, please attribute and keep derivatives under CC BY-SA 4.0.

About

🔗 A website about yours truly.

Resources

Code of conduct

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages