Skip to content
Ruhani RabinRuhani Rabin

Rabin.blog

A technical journal with a custom-styled Astro theme, Markdown and MDX content, and an Obsidian + Vault CMS editorial workflow.

LiveAstro 7Obsidian + Vault CMSCloudflare Pages

The project

Rabin.blog is my technical journal for WordPress, automation, development, and homelab notes. The current site uses a custom-styled Astro theme with local Markdown and MDX content, published as a static site on Cloudflare Pages.

Astro replaced the previous Hugo site in October 2026. The migration carried over the complete post library, established public URLs, images, and existing discussion threads while giving the journal its own reading interface.

A theme built around reading

The interface pairs Dracula/Alucard-inspired dark and light palettes with a restrained layout for technical writing. A System → Dark → Light control follows the reader’s device preference by default and remembers explicit overrides.

The reading experience includes:

  • Articles and shorter Notes, with tag archives and paginated lists
  • Curated series with an explicit reading order and previous/next navigation
  • An article contents rail, heading anchors, and internal-link previews
  • Syntax-highlighted code with copy controls, callouts, and Mermaid diagrams
  • Image galleries and optimized images beside the content
  • Search, RSS, and related reading

Obsidian and Vault CMS for editorial work

The Astro content directory doubles as an Obsidian vault. Vault CMS and Astro Composer provide the editorial workspace around the same files Astro builds, keeping the writing, frontmatter, and attachments together.

New posts use a folder-based MDX structure with an adjacent images folder. Existing Markdown posts remain supported. MDX adds components such as steps and file trees where a technical explanation needs more than ordinary prose.

Drafts can be reviewed locally before publication and stay out of production builds and public discovery. Publishing means updating the content files and rebuilding the static site. The editor configuration is in place; end-to-end acceptance in the Obsidian plugin UI remains a follow-up.

Preserve continuity through the migration

Imported posts retain their established public paths, with redirects for selected legacy routes. Existing cover images take precedence; content without a cover receives a generated social card. Metadata, structured data, sitemap entries, and generated image references are checked during the build.

Comments use opt-in Isso embeds with the existing permalink-based thread IDs. The site also retains its Umami analytics identity, with tracking restricted to production builds.

Practical outcome

Rabin.blog is live on Astro 7 and Cloudflare Pages. The custom theme and file-based publishing model put the reading experience and editorial workflow under direct control, with Obsidian and Vault CMS configured around the content itself. The result is a technical journal that supports both short notes and longer, connected explanations without a separate WordPress publishing backend.

Let's talk

Have a project in mind?

Whether it's a new build or something that needs a fresh perspective — I'd love to hear about it.