Last updated 1 min read

Using Private Tags for Digital Garden Backlinks in a Ghost Blog

Related: Digital Garden, Ghost Blog

As soon as the zettelkasten goes out to the public digital garden links become the biggest maintenance headache.

This is how I made this process smooth with Obsidian Ghost Publication Plugin.

Note publication flow

  • I use a handcrafted [[Obsidian]] plugin to publish notes directly to Ghost in a single click.
  • When a note is being published I create a single private tag that matches the note's post slug. I call it a private slug tag
  • The note is marked as "published" via Obsidian note property
  • Then I collect all its out-links.
  • For each out-link the script of my [[Obsidian]] plugin checks if the targeted note has been published.

If the target note has been published, the current post is published with the following tweaks:

  • [[Double Bracket]] link is replaced with an actual published post URL (since the slug is known)
  • Private slug tag of the target note is added to the currently published ghost post as a tag.

Backlinks are handled on the Ghost blog theme side. Post takes its private slug tag and fetches all posts with that tag.

That is the way how current post gets all its backlinks in the "Links to this note" section.


  • Linked notes show up in the backlinks section automatically. No need to update the topic page every time.
  • Private Slug Tags are private and don't overflow the search results
  • Public Tags are kept clean and separated from the Digital Garden
  • Backlinks look good
  • All the published notes' structure exactly matches the structure in my Zettelkasten. No need to change anything for publishing
  • Close-to-zero extra maintenance cost thanks to automation
  • Topic Page is still a page and allows to add more context to the topic

It simply takes the best from both tags and topic pages and solves its downside mentioned in: Using Tags vs Topic Pages in Digital Garden Running on Ghost