Obsidian Publish

    It seems like you don't have to wait four hours like they said in the official Obsidian Forum.

    After additional experiments with sharing the Obsidian Publish permalinks on social media, I discovered that if I do so two hours after the page goes live, the image will appear on the social media post. I haven’t had any luck with a one-hour wait, though.

    Next, I’ll try one and a half hours šŸ˜‰

    UPDATE: So, it looks like my two-hour theory is a bit hit or miss. I’m adding this update because it took a bit more than two hours for the image on this one to appear.



    My Obsidian Publish infinite loop. The saga of creating new problems by solving others.

    It’s incredible how solutions can have a side effect, creating new obstacles. And I secretly love dealing with that challenge.

    Like usual, I’m sharing something I just learned. But let’s begin with the issue. If you use Obsidian Publish to post your notes, the address of the page will be something resembling the path to the note in your vault, which creates two headaches.

    1. If you move that note to another folder in your vault, the page address will change if you update it. And the last thing you want is your site pages changing addresses.
    2. I’m not an SEO specialist, and there is conflicting information about this online, but some say the address format is an important signal. I have no idea whether it’s critical or not, but the address created by Obsidian Publish looks horrible.

    The solution to both is adding your own address as a permalink, which Obsidian Publish allows you to do with a property:

    permalink: /any-address-you-want

    Long story short, all my notes have a permalink, but of course, that created a new problem. Do you know when we publish a link on social media and it creates a miniature with a thumbnail and some details about that post?Ā 

    Obsidian Publish has some properties that you can use to tell the social media site where to look for that information: cover: or image: for the thumbnail and description: for the description. You can learn all about this on the Obsidian Help site.

    That set me on a quest that led me to this Obsidian Forum post: “Pages with permalink take longer to have a social preview.” There’s a long conversation there, but here’s the TL;DR:

    • Wait for four hours before sharing the permalink on social media.
    • Use the original link instead. That link will always exist, even if you create a permalink. Also, it doesn’t take four hours to show the image.

    Open the Obsidian command palette, and type Publish: open in live site. That will first open the page using the original address and then switch to the permalink.

    The screenshot shows a software interface with options to publish, including Open in live site, Publish changes..., and Publish current file, displayed within a navigation and dismissal bar.

    It’s too fast to see, but if you go to your browser history, you’ll notice that page appearing twice in the list. The older one has the original address. Right-click on it and copy the link.

    Two identical email items are displayed, both titled Returning to a book universe from the same sender, dated 2023-07-09.

    Yes, I know what you are thinking…

    I agree. It’s incredible how there’s always a side effect creating new problems. But don’t worry, you’ll be the first one to know when I find out how using the original address creates new complications.



    Experimenting with Voicenotes integration into Obsidian blog

    Note: Originally posted on my Voicenotes Page.

    I’m using the unofficial Voicenotes plugin in Obsidian and I have it set to download everything. Not only the text but also the audio, the attachments, everything. I even have some properties that will capture links, the title, and a lot of other information.

    So, I’m here thinking that maybe it is possible to create a copy of this post—that I’m adding to Voicenotes Pages—in my Obsidian blog.

    Well, it’s not “maybe”, it is indeed possible because, ultimately, it’s also being created as an Obsidian note. All I have to do is set the plugin’s template to download the post and everything else but with the appropriate properties, the ones that I use to publish on Obsidian Publish.

    Hmm, this is an interesting experiment. Let’s see how it goes.



    The day I almost ditched Medium. It turns out it was saving my site.

    Where is my site? Even a direct search for my name brought back Medium’s logo at the top of the list. Why is Medium now my main digital footprint? Why did my digital home suddenly vanish from Google’s searchĀ results?

    My first thought was that either the canonical setting was not working or Medium was ignoring it on purpose.

    Maybe it was time to ditch Medium for good, I thought.

    It was a classic ā€˜guessing game’ moment, one I found myself falling into more and more recently, despite my background in the cold, hard facts of research and statistics. My father, my wife, and many people around me are researchers. In addition to that, scientific papers, numbers, statistics, etc., were frequent in my graduation and post-graduation courses.

    When did I start jumping to conclusions so easily? Perhaps it’s a byproduct of our social media-saturated world, where speculation often overshadows data.

    Anyway, before taking the radical step of telling my readers I’d be leaving Medium, I decided to take a deep breath and start doing some research online to try to understand what was happening.

    Among other things, my quest made me aware of the Google Search Console, which was a huge rabbit hole I ended up in. But that’s a story for another time. Anyway, when I came across the explanation ā€œDuplicate, Google chose different canonical than user,ā€ I was affected by another guessing moment and quickly blamed Medium. Again!

    At this point, my brain was already at full speed trying to figure out a strategy to fix the ā€œMedium problemā€ when I checked the ā€œLinksā€ menu and saw Medium at the first position of external links bringing traffic to my site. Not only that, but the number was much larger than the second item in the list.

    To give you some context, when you start using Google Search Console, the information is not all there at once. It gets built over the coming days after adding a site to be monitored. That lack of all the data probably also contributed to my guessing state. By the way, the ā€œcanonical issueā€ was about other links that had nothing to do with Medium.

    Anyway, that’s good news; it was not Medium. Thank you, numbers! But I was now back to square one.

    Obsidian Publish

    After a lot of reading and long conversations with Gemini to understand all the tech terms I was coming across, it clicked when it mentioned something about the ā€œDisallow search engine indexingā€ switch on Obsidian Publish settings. ā€œOh, s***,ā€ I thought, while that unmistakable feeling of ā€œI did something very wrongā€ permeated my entire body.

    When switching to Obsidian Publish, it took me a while to import all my content from the old website, and I didn’t want Google indexing that big mess. That’s why I turned off the search engine indexing. What I completely forgot was to turn it back on, meaning that I completely erased my site from existence for many months. Unbelievable!

    The BrightĀ Side

    Since I cannot go back in time, I try to always learn something from my mistakes and also look for the bright side of things. And learn I did. A lot! Not just the ins and outs of SEO, but also how important it is for me to regularly check my own online presence, especially since [[vladcampos.com/Action/šŸ’” Consulting|I run my own business]]. From now on, I must create a task or a calendar entry for the future in cases like this.

    Knowing that I would lose Medium’s social element by not publishing there anymore, I had to bring back [[vladcampos.com/Static/Newsletter|my newsletter]], which was a detour that brought me into another deep rabbit hole. I told you I learned a lot.

    Remember the better RSS feed I created for my website? Well, I can now set it as the source of my newsletter, which I rebranded as ā€œFriday Fix by vladcamposā€. As the name implies, subscribers will get a list with links pointing to everything I shared during the week: articles, short posts, podcast episodes, and videos.

    In hindsight, I’d say that the terrible mistake of blocking search engines from indexing my site ended up working as a trigger to making my online presence a bit better.

    As for Medium, how many times have you seen articles stating that it is terrible for your site? Ā I’ve seen many of those. But in my case, that couldn’t be further from the truth. Maybe because I always set a canonical link to the original article on my site. Anyway, the Google Search Console is a good place to start if you really want to know if it’s helping your site. In the end, using facts—numbers—is a great way to avoid guesswork.

    Overall, have fun!



    After hacking my own RSS feed for my Obsidian Publish site, it is now time to try some ideas. The first one is automating my blog posts via Mastofeed. I just created a rule that will compose a Mastodon post using the Title, Summary,Ā Link, and Image from my RSS feed.

    This first post/test has two goals. Make sure the automation is working and understand what will happen if one of the items, in this case an image, is not present in the original feed.



    If you are fed up with Obsidian Publish's limited RSS, here's how I hacked a better feed.

    If you’re an Obsidian Publish user, you’ve probably stumbled upon its default RSS feed by adding /rss.xml to your domain. And if you’re like me, you quickly realized how incredibly limited it is – so limited, in fact, that it’s practically unusable for serious blogging.

    I completely get the problem here. As Obsidian Publish doesn’t offer a standard blog feature, there isn’t an actual blog feed. However, that hasn’t stopped us users from hacking our way to a solution. So, I decided to also hack a better RSS feed.

    The Problem

    As I write this, the official RSS feed is not time-based and doesn’t even have a description for each item, even though there is a “description” property that Obsidian-Publish can read. Anyway, I understand the hurdle of going beyond the simplicity of the meta-information available on our notes, especially if one doesn’t use properties.

    What I never got, though, is why it doesn’t display the items chronologically, matching the date a note was posted as a web page. I can’t share something like this with people willing to follow my blog posts.

    However, even if I avoid sharing it, many modern feed readers look for and find the feed for the user. So, the two problems I have to solve are:

    1. Having a better RSS feed.
    2. Making the current /rss.xml address point to that better feed.

    I’m not a specialist in any of the fields below. I’m sharing the steps I went through as a way to inspire you. Please do your own research and remember to always make backups of your work before trying the directions below.

    How an RSS Feed is Created

    I’m not a developer, but along the way I was, let’s say, forced to learn some things. When I started podcasting back in 2005—yes, yes, you read that right—I had to learn how to write a feed. Back then there was no such thing as a tool or AI.

    The way I see it, a feed is split into two parts. The top part is like the ‘header’ of your blog, containing essential details like its title, overall description, and your website’s address.

    Take a look at mine below, and you’ll notice that it’s easy to guess what is what.

    <rssĀ xmlns:atom="http://www.w3.org/2005/Atom"Ā xmlns:media="http://search.yahoo.com/mrss/"Ā version="2.0">
    <channel>
    <title>vladcampos Blog</title>
    <link>https://vladcampos.com</link>
    <description>Thoughts and articles from one enthusiast to another.</description>
    <language>en-us</language>
    <lastBuildDate>Tue, 17 Jun 2025 10:12:00 GMT</lastBuildDate>
    <atom:linkĀ href="https://social.vladcampos.com/rss.xml"Ā rel="self"Ā type="application/rss+xml"/>
    <image>
    <url>https://social.vladcampos.com/favicon-196x196.png</url>
    <title>vladcampos Blog</title>
    <link>https://vladcampos.com/blog</link>
    </image>
    

    Below this header are the individual entries, or ‘items,’ for each of your blog posts. Think of each item as a mini-summary of a single post, including its title, a brief description, a link to the full post, and the publication date.

    <item>
    <title>šŸ“ƒ Things you should know about Obsidian Publishā€Šā€”my struggles and how I'm dealing with them.</title>
    <link>https://vladcampos.com/2025-06-16-things-you-should-know-about-obsidian-publish</link>
    <guidĀ isPermaLink="true">https://vladcampos.com/2025-06-16-things-you-should-know-about-obsidian-publish</guid>
    <description>Obsidian Publish has been a game-changer for my online presence, but like any powerful tool, it comes with its quirks. Here are the hurdles I’ve faced and how I’m jumping them.</description>
    <pubDate>Tue, 16 Jun 2025 11:32:00 GMT</pubDate>
    </item>
    <item>
    <title>šŸ“ƒ Turning Bluesky into Instagramā€Š-ā€Šmy unexpected workflow.</title>
    <link>https://vladcampos.com/2025-06-14-turning-bluesky-into-instagram-my-unexpected-workflow</link>
    <guidĀ isPermaLink="true">https://vladcampos.com/2025-06-14-turning-bluesky-into-instagram-my-unexpected-workflow</guid>
    <description>Apps like Pinksky transform your Bluesky feed into a visual, Instagram-style experience, but there's a catch.</description>
    <pubDate>Sun, 15 Jun 2025 10:31:00 GMT</pubDate>
    <media:contentĀ url="https://publish-01.obsidian.md/access/54a5cde44e33737dbd9582dc8b12cf1f/vladcampos.com/_files/2025-06-14-pinksky-post-cover-art.png"Ā medium="image"Ā type="image/png"/>
    </item>
    </channel>
    </rss>
    

    Basically, every time there’s a new post in the blog, a new item representing it needs to added ti the feed. And that’s it; whatever software is reading that feed will see that new item.

    Building my RSS Feed

    This is where the magic happens and where my struggles with manual updates finally ended! I partnered with Gemini to create a simple web app I’m calling the RSS Item Generator.

    For that I created another website and assign a subdomain to it using a GitHub repository. It’s aĀ free and easy way to host static websites and you can learn all about it here and here. All I had to do after that was use that space to manually write and publish my own feed. I post frequently, but not that much per week. “It will be fine,” the naive me thought.

    It is, indeed, kind of fine, since all I had to do was copy the last content inside <item></item>, paste it at the top of the previous one, and replace the old information with the new one. However, after a few manual updates, I quickly realized how prone to errors this approach was. I searched for a basic app that could generate new items but couldn’t find one.

    Like I said, I’m not a developer, but since forever I’ve been having these ideas that I could never put into practice. Until now!

    That’s when I turned to Gemini. I explained my needs in detail and asked for help creating a web app to automate the process. The first version was not exactly there but super close to what I envisioned. So, I kept chatting with it, and we came up with what I’m calling an RSS Item Generator.

    How it Works

    First, you need an RSS file, which is a fancy name for a text file with a .xml extension. Usually rss.xml. Copy the initial section of the RSS code (the ‘header’ part) to a new text document and replace my blog/site information with your own.

    Below that, you need to start building the items list. Go to myĀ RSS Item Generator, fill in the blanks with the information from your latest blog post, and click on Generate RSS Item. Now copy that and paste it to the rss.xml file. The most recent <item></item> should be at the top of the list. Make sure it looks like the example below.

    <rssĀ xmlns:atom="http://www.w3.org/2005/Atom"Ā xmlns:media="http://search.yahoo.com/mrss/"Ā version="2.0">
    <channel>
    <title>vladcampos Blog</title>
    <link>https://vladcampos.com</link>
    <description>Thoughts and articles from one enthusiast to another.</description>
    <language>en-us</language>
    <lastBuildDate>Tue, 17 Jun 2025 10:12:00 GMT</lastBuildDate>
    <atom:linkĀ href="https://social.vladcampos.com/rss.xml"Ā rel="self"Ā type="application/rss+xml"/>
    <image>
    <url>https://social.vladcampos.com/favicon-196x196.png</url>
    <title>vladcampos Blog</title>
    <link>https://vladcampos.com/blog</link>
    </image>
    <item>
    <title>šŸ“ƒ Things you should know about Obsidian Publishā€Šā€”my struggles and how I'm dealing with them.</title>
    <link>https://vladcampos.com/2025-06-16-things-you-should-know-about-obsidian-publish</link>
    <guidĀ isPermaLink="true">https://vladcampos.com/2025-06-16-things-you-should-know-about-obsidian-publish</guid>
    <description>Obsidian Publish has been a game-changer for my online presence, but like any powerful tool, it comes with its quirks. Here are the hurdles I’ve faced and how I’m jumping them.</description>
    <pubDate>Mon, 16 Jun 2025 11:32:00 GMT</pubDate>
    </item>
    <item>
    <title>šŸ“ƒ Turning Bluesky into Instagramā€Š-ā€Šmy unexpected workflow.</title>
    <link>https://vladcampos.com/2025-06-14-turning-bluesky-into-instagram-my-unexpected-workflow</link>
    <guidĀ isPermaLink="true">https://vladcampos.com/2025-06-14-turning-bluesky-into-instagram-my-unexpected-workflow</guid>
    <description>Apps like Pinksky transform your Bluesky feed into a visual, Instagram-style experience, but there's a catch.</description>
    <pubDate>Sun, 15 Jun 2025 10:31:00 GMT</pubDate>
    <media:contentĀ url="https://publish-01.obsidian.md/access/54a5cde44e33737dbd9582dc8b12cf1f/vladcampos.com/_files/2025-06-14-pinksky-post-cover-art.png"Ā medium="image"Ā type="image/png"/>
    </item>
    </channel>
    </rss>
    

    But there’s a final touch. Each post item has the publication data inside <pubDate></pubDate>. If you take a look at the top of the feed, there’s also a date inside theĀ <lastBuildDate></lastBuildDate>. That date and time has to be the same as or after the last post you added to the list. So, remember to always copy the date section of the last post published and paste it to the top of the feed.

    That’s it. All you have to do from now on is keep adding the new <item></item> code blocks and updating the date at <lastBuildDate></lastBuildDate>.

    Publishing the RSS Feed

    But an RSS feed is only useful if the entire web can see it. So, you need to publish it.

    Remember the GitHub repository I mentioned above? That’s where you’ll do it, and to make both of our lives easier, I suggest watching the video below where I go through each step.

    Redirecting the /rss.xml

    The last item in our list is to redirect the /rss.xml address to the new feed address. You have to do this because there’s no way to unpublish that rss page created by Obsidian Publish. At least I never figured out how.

    The redirect will make sure everyone gets the correct feed, including feed aggregators trying to guess it.Ā In my case, it is a redirect from vladcampos.com/rss.xml to social.vladcampos.com/rss.xmlĀ . If your website is powered by Obsidian Publish, you are probably using CloudFlare for your domain.

    As for the address, share whatever is best for you. I’ll keep sharing vladcampos.com/rss.xml because it is easier to remember. As for aggregators trying to figure out your site’s feed, as long as you have the redirect running, they will always land at the one you’ve created.

    One thing to keep in mind is that you’ll need to manually update your rss.xml file with each new post using the generator. While not fully automated, it’s a small price to pay for a fully functional blog feed.



    What inspired me to move from Obsidian Publish to Microblog?

    TL;DR: a gateway to a thriving onlineĀ presence

    What if I told you there is a tool that can replace your blog, website, newsletter, podcast, bookshelf, and more? 🤯 It’s even compatible with the ActivityPub protocol.

    In a recent article, I discussed how owning a domain and using permalinks can help you seamlessly move from one hosting service to another without losing your audience. Then I published another article devoted to describing a similar approach for your social media presence

    Well, there is a way to combine the best of both words in a single place. Better yet, what if you could also include other services, like a newsletter? Have I mentioned that the price is a fraction of what you would pay for a combination of similar services from other companies?

    Since this is too good to be true, I feel like a disclaimer is needed. No, this is not a sponsored post. I paid for my subscription, and no one at Micro.blog had any input on this article or any content I’ve been publishing about them. I’m doing it because, as you already know, I’m an enthusiast.Ā 

    Anyway, I hope you’ll find the information below helpful.

    My previousĀ set-up

    I have an institutional website for many years, but have been posting my articles on Medium for a long time to take advantage of the algorithm. Two YouTube channels, one in Portuguese and another in English, a newsletter hosted by Substack, and a presence on multiple social media platforms.

    I believe that diversifying like this helps spread the word because I can take advantage of algorithms from multiple platforms. However, my entire business is run by myself, and things can quickly become overwhelming. So much so that last year I was forced to pause my newsletter for several months.

    Why Obsidian Publish didn’t work forĀ me

    When I moved my website from WordPress to Obsidian Publish, I was trying to simplify things by having my notes and the website in the same tool. But if I’m being honest, it ended up creating more work. Not because of the publishing process, which is easy and straight-forward. The problem was me. I love taking notes, so I suddenly felt compelled to share as much as I could, and that came with its own set of complications.

    Instead of just taking notes, I was constantly thinking about how to structure my notes to have them ready for use and, at the same time, good for publishing. Furthermore, my folders structure became a little chaotic due to the numerous additional files needed to create a website. I was constantly afraid of accidentally moving or deleting files.

    There’s no way to have a blog when using Obsidian Publish, but I was kind of okay with that because Medium was my blogging platform at the time. I also read numerous complaints about SEO, but I’m not a specialist on this topic and cannot say much about it. However, the final hurdle was the verification process at Mastodon, which could never identify the needed code because of the way Obsidian Publish builds the website.

    I couldn’t care less about verification, but I have already been impersonated, and unfortunately, some people following my YouTube channel in Portuguese were scammed. After that, I’ve been constantly trying to do all I can to prevent it from happening again.

    What’s next?

    In 2022, I tried Micro.blog, but it lasted for less than a year. It was the way the platform handled engagement that made me give up on it. If you would like to learn more about it, have already explained everything in more detail in another article.

    For those of you who are not aware of Micro.blog, it’s a complete solution. It is a space to share short posts like ‘tweets’ and pictures, a blog, a website, a newsletter, a podcast hosting service, and many other amenities like bookmarks plus a ‘read it later’ with a highlights feature, a bookshelf, and more. And the price is amazing. US$5 or US$10, depending on the features you need. To learn more about it, I suggest you watch the video below. But beware that it doesn’t cover all its potential.

    I still have my two YouTube channels, and they are not going anywhere. But I reactivated my blog on Micro.blog. I won’t stop publishing the articles on Medium, but I started adding a Canonical Link.

    Micro.blog can be set to share the same content on other websites, like Medium. However, for now, I’m doing it manually.

    ActivityPub

    Regarding the newsletter, I am still using Substack, but I also intend to transition it to Micro.blog in the future. However, the feature in which I’m most interested is precisely the one that made me live in the first place. The blog is compatible with ActivityPub and, as explained in another article, anyone can follow it from any Fediverse service.

    The strategy Flipboard is using inspired me. Their Mastodon instanceā€Šā€”ā€Šflipboard.socialā€Šā€”ā€Šworks as a Twitter alternative, where the community can share and interact with one another. As for flipboard.com, it is being converted to be 100% compatible with the ActivityPub protocol. If all of this seems too much, please watch the video below. It may help you better understand the terminology I used above.

    My plan is to rebuild my Twitter community on Mastodon, while Micro.blog will host my blog, site, and other services, acting as a central point to help people access all the content I’m constantly sharing online.

    Nostalgia

    This doesn’t necessarily count as a rational reason, but since when is feeling at home something that’s rational? When I first tried Microblog in 2022, I noticed a familiar face among the team: Jean MacDonald. I had the opportunity to meet here only twice for brief moments during the 2013 and 2014 Evernote Conferences. Nevertheless, the conversations we had were so pleasant that those moments remain etched in my memory to this day.

    In conclusion, there’s nothing terribly wrong with Obsidian Publish. On the contrary, during those months I used it, it proved to be a fast and reliable service. But there’s no blog or ActivityPub there, and those are some reasons why Microblog is gradually becoming my online home.

    Another reason, as I mentioned before, is that Micro.blog can work as a hub for publications. At some point in the future, when I finish my migration process, I’ll start using it to automatically cross-post content to other social media platforms.

    Combined with all the other benefits I mentioned above, I’m expecting Micro.blog to significantly reduce the work I currently do every time I publish a new article or video.