Skip to content

Meta

Forgetful Notes has gone through many changes. I have not been shy about moving from technology to technology as I learn new things. Coming across the world of Static Site Generators was a game changer. I have ran my notes through Jekyll, Hugo, MkDocs, Zola, and even Quartz.

The journey continues. This latest iteration embraces the modern web with Astro, a framework known for its incredible performance and “islands architecture.” For the look, feel, and features, I’m using Starlight, a dedicated documentation and knowledge base theme for Astro. This combination provides both a fantastic developer experience and a fast, accessible site for readers.

The core philosophy remains the same: write in plain text and use powerful tools to build the site.

  • Content: All notes are written in Markdown within Obsidian. This provides a powerful local-first writing environment with excellent linking and organization capabilities.

  • The “Brain”: The magic that connects my Obsidian vault to the website is BrainDB. During the build process, BrainDB reads my entire vault, parsing wikilinks, backlinks, tags, and metadata. It creates a structured data graph that the site generator can understand.

  • The Engine: Astro is the static site generator that builds the final website. It takes the Markdown content and data from BrainDB and renders it into highly optimized HTML and CSS. The Starlight theme provides the site’s structure, navigation, search, and overall design system.

This new stack provides a fantastic set of features, many of them out-of-the-box with Starlight and Astro.

  • Fast, Full-Text Search (powered by Pagefind)
  • Bidirectional Backlinks (thanks to BrainDB)
  • Dark & Light Mode
  • Admonition-style Callouts
  • Markdown & Wikilink Support
  • Support for UI Components (React, Svelte, Vue, etc.) within Markdown
  • Table of Contents on every page
  • Latex Support for mathematical notation

The project is now a standard Astro project, with a directory for the Obsidian notes that BrainDB processes.

  • Directorypublic/
    • favicon.svg
  • Directorysrc/
    • Directoryassets/
      • lines.svg
      • lines-light.svg
      • space-racoon.webp
    • Directorycomponents/
      • Backlinks.astro
      • Sidebar.astro
      • TableOfContents.astro
    • Directorycontent/
      • Directorydocs/
        • Directoryknowledge/
        • Directorylanguages/
        • Directorylists/
        • Directorysystems/
        • Directorytools/
        • Directorytutorials/
        • Directorywriting/
        • about.md
        • index.mdx
        • meta.mdx
        • uses.md
    • Directorylib/
      • brainddb.mjs
    • Directorystyles/
      • custom.css
    • content.config.ts
  • .gitignore
  • astro.config.mjs
  • package.json
  • tsconfig.json