this site
i wrote it in pure html/js/css without libraries
(apart from some p5.js sketches in the gallery).
I wanted a small footprint
my resume
my cv in pure json form
it also has my github, linkedin, and email
my json cv turned into pure html with a recursive typescript function.
At the time of programming, I wanted to code-golf my site, generating html at runtime via recursive functions and datastructures.
I've moved away from that since, because as I added work/sketches it morphed into a small framework.
I might revisit it someday, but it felt like overkill just for a small personal site.
function gen_html(html, obj: object) {
  let _html = ""
  Object.keys(obj).forEach((key: string, i: number) => {
    const val = obj[key], disp_key = key2show(key, i) // dk = displayed key
    switch (typeof val) {
      case "string":
        _html += `<a class="item ${disp_key}" 
                     ${disp_key === "link" ? `target="_blank" 
                     rel="noopener noreferrer" href=${val}` : ""}>
                    ${disp_key} - ${val}
      case "object":
        _html += `<div class="container">
                    <p class="title ${disp_key}">
                    <div class="${disp_key}">
                      ${gen_html(_html, val)}
  return _html
toy involving strange fonts and patterned text
inspired by the idea of a templating language that always compiles
specific letters may or may not have specific effects
toy involving mice and mirrors
inspired by those children's "make a snowflake" flash games from the 2000s
try scrolling up/down/left/right
holding shift
pressing space
bookmarklets that goof a page's css
inspired by ui scaling issues and video game corruptors
page for viewing screenshots I've taken.
they're grouped by their media of origin
if an object or landscape strikes, I take a picture.
if what's on my laptop strikes me, I take a picture.

(photos in technology > photos of technology)