🎃 day 0: getting started with weird web october
i’m jumping into weird web october — 31 days of weird web experiments, one per day, each based on a daily theme. the goal: spend ~1 hour making something fun and strange on the web.
i also just picked up whimsical animations by josh w comeau and it’s been a blast. i want to channel some of that “animation curiosity” into these and see how far i can push weird little interactions.
the setup
this whole thing runs on astro. each day gets its own route (/1/, /2/, etc.) where i can build whatever i want using html, css, and js. every day is isolated except when it isn’t (some components, sharing the fonts)
the architecture
/src/pages/
index.astro # calendar view of all 31 days
blog/index.astro # blog listing
1/
index.astro # day 1 experiment
about.md # day 1 blog post
2/
index.astro
about.md
...
each day has two pieces:
- the experiment itself →
/day/ - a blog post →
/day/about
when i need a server
most days will just be front-end. but if i need shared state (like the ghosts in day 1), i’ll use:
- bun + hono server serving static astro build
- per-day api routes (
/api/1.ts,/api/2.ts, etc.) - bun:sqlite for quick storage
each day can optionally include an /api/{day}.ts file that exports a hono router. the main server automatically loads all day apis and mounts them at /{day}/api/*. one server, modular apis per day.
the stack
- astro – static site gen w/ optional ssr
- open props – design tokens + light/dark mode out of the box
- gt maru – bold/playful typography (regular, bold, emoji, mono)
- bun – fast runtime, sqlite built in
daily themeing
- hoping each day should be very unique
- bold gt maru fonts
- high-contrast open props colors
- simple layouts
- animations only if they’re fun, not filler
the rules
- ~1 hour per day (rough guideline, not a stopwatch)
- follow the daily theme (loosely)
- try to write a blog post about what the webpage is
- share it somewhere
- LEARN SOMETHING and HAVE FUN
i’m really excited for this, a daily prompt is great for me.