Web · Static Site · Design + Tooling
Vibe — a writing & artwork showcase
A hand-built single-page showcase for writing and artwork. The page renders from a content manifest, a small Python build step curates the chosen PDFs and images into a deployable assets/ folder, and an FTP script ships the lot — markup, manifest and media — to static hosting.
abouttime.42web.io/vibe/; the curated PDFs and images are served as static assets.Overview
Vibe is a deliberately small content site: one hand-written index.html that reads its content from a data.js manifest (titles, captions, metadata), so adding or reordering work is a data edit, not a markup rewrite. It's the same "static, hand-built, no framework" philosophy as this portfolio — pared down to a single curated page.
What's in it
🗂 Manifest-driven
The page renders from data.js — the content is data, so the layout never has to be touched to add a piece.
🛠 Python build step
build.py gathers the curated PDFs and images from local folders into a regenerated assets/ tree, kept out of version control.
🚀 One-command deploy
deploy.sh builds, then uploads the page, manifest and assets over FTP — the same lightweight pipeline this site uses.
🎨 Hand-built front end
Markup, styles and behaviour written by hand in one file — no bundler, no framework, no dependencies.
How it works
- Content as data:
data.jsis the single manifest the page reads; the markup is a renderer for it. - Curate, then build:
build.pycopies the selected media intoassets/(regenerated each build, gitignored), so the repo stays light. - Ship:
deploy.shruns the build and FTPsindex.html,data.jsandassets/to static hosting. - Live on the web: the curated build is deployed at abouttime.42web.io/vibe/ — shipped by the same one-line FTP pipeline this portfolio uses.