Whono is a minimal two-column writing theme built with Astro: clean, fast, and designed for reading.
Content is written in Markdown with support for dark mode, syntax highlighting, RSS, and immersive reading — perfect as a starting point for personal writing and lightweight publishing.
The theme is open source. If you have suggestions or want to contribute, feel free to open an Issue.

Site Guide

Essays

/essay/

Article feed (including unarchived content).

Bits

/bits/

Short-form updates and quick thoughts (with multi-image support).

Memo

/memo/

Curated moments and memories worth keeping.

Archive

/archive/

Chronological archive grouped by year.

Tech Stack

Build & Rendering
  • Astro / Vite
    Content site and build tooling
  • CSS / Typography
    Layout and reading experience
Languages & Tools
  • TypeScript
    Type safety and scripting
  • Markdown
    Content authoring and publishing

FAQ

Why do I see a "SITE_URL is not set" warning after deploying?

The production domain hasn't been configured. Without it, a placeholder domain is used and canonical/og:url/sitemap/robots will be incomplete. Add SITE_URL=https://yourdomain.com as an environment variable in your deployment platform and rebuild.

Why don't some articles appear in the archive?

The archive filters out articles with archive: false. They are still published and accessible, but won't appear in the archive list or archive RSS (useful for content you don't want indexed).

Why does clicking an article in /essay/ redirect to /archive/.../?

Article detail pages are unified under /archive/{slug}/. The /essay/ section serves as the article feed entry point, avoiding duplicate detail routes for easier long-term maintenance.

How can I report issues or contribute?

Create an Issue in the repository, or submit a Pull Request.

Contact

If you have questions or suggestions, feel free to reach out