Skip to content

Repository files navigation

The Internet of Thio

Personal web ecosystem - one person, one world, several rooms. thio.qzz.io is the entrance; each room is a subdomain with its own atmosphere but shared identity.

Rooms

Room Subdomain What lives there
Rumah (home) thio.qzz.io Entrance, world map, now, timeline, changelog, search, secrets
Portofolio portfolio.thio.qzz.io Case studies (Anonimbuz, Dotfiles, Skenpat, PMR, teksreceh, slate-de…) + CV
Wiki wiki.thio.qzz.io ~20 interconnected knowledge articles from real material
Proyek projects.thio.qzz.io All 38 public repos + 6 documented non-repo projects, with honest statuses
Lab lab.thio.qzz.io Experiments: live wallpapers, ink-grid canvas, preserved design artifacts
Game games.thio.qzz.io Rubik (ported), lintasindo (ported), TAKO (original)
Musik music.thio.qzz.io The honest musician story + WebAudio console
Alat tools.thio.qzz.io Timestamp/case/JSON tools + directory of real tools
Arsip archive.thio.qzz.io Old homepage 2025, old portfolio, wiki snapshot, school task, gudang

Room subdomains are canonical. The corresponding apex paths remain intentional permanent shortcuts: thio.qzz.io/<room>/* returns HTTP 301 to <room>.thio.qzz.io/*, preserving the room-relative deep path and query string. For example, /wiki/a/tlp-linux-power/?from=home redirects to https://wiki.thio.qzz.io/a/tlp-linux-power/?from=home. Shared root assets are excluded from this rule.

Build

npm install
npm run build        # → _site/
npm run serve        # local dev with watch

Eleventy 3, Nunjucks, zero client framework. All content is static HTML + one JSON index (/data/graph.json) powering search, random, and related links.

Content model

  • src/_data/ - site config, 38-repo archive, timeline, changelog, now, games, on-site tools
  • src/wiki/articles/*.md - wiki articles (add a file, it appears)
  • src/portfolio/case/*.md - portfolio case studies
  • src/lab/experiments/*.md - lab experiments
  • src/archive/entries/*.md - archive entries
  • src/games/rubik, src/games/lintasindo - ported real games (MIT, by the author)
  • src/lab/wallpapers/ - ported real HTML wallpapers
  • src/artifacts/ - preserved legacy files (old pages, scripts, gudang)

Cross-links use related: refs (repo:teksreceh, wiki:indoscript, case:anonimbuz, lab:wallpapers, game:tako, tool:timestamp…), resolved at build time.

Deploy (Cloudflare Pages)

Single project, all subdomains:

  1. Build command: npm run build, output dir: _site.
  2. Add thio.qzz.io + the room subdomains as custom domains.
  3. The included _worker.js permanently redirects exact-root room aliases to their canonical subdomains, rewrites each canonical subdomain to its build folder (portfolio.thio.qzz.io/*/portfolio/*), and serves the in-world 404.

The host-sensitive room alias rule intentionally lives in the Worker. _redirects only supplies path normalization when running without it. See docs/DEPLOYMENT.md for full step-by-step instructions.

Design

Paper & ink neo-brutalism inherited from the original slide deck (/lab/experiments/deck/): cream paper #f4f1ea, ink #0d0c0a, thick borders, hard shadows, accents yellow/pink/blue/green - each room overrides tokens via data-room themes. Space Grotesk + Space Mono. Reduced motion respected everywhere; keyboard & screen-reader friendly; everything works on mobile.

Principles

  • No invented content: every fact traces to the repo, the CV, the chrome deck, or the Wikipedia user page.
  • Imperfect work is archived, not hidden - with honest statuses (Active, WIP, Experimental, Archived, Broken, Empty, Unknown).
  • Discovery first: search, random, related, tags, secrets (terminal, konami code, hidden solver).
  • Static-first: no framework on the client, no database, no tracking.

See docs/ARCHITECTURE.md for the full proposal & content map.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages