Services The RSS feed for Services.

  • My Content Creator Workflow & Digital Tools — Edition 2024-12

    It’s been quite a long time since my previous content creator workflow update, more than a year actually, back in November 2023. With 2024 coming to an end, it’s time for a detailed update. First, consider the following overall diagram, then continue reading.

    An overview of my digital tools and workflows.

    Outlining purposes: Zavala, a free open-source outliner, is nearly perfect for outlining YouTube video production. I don’t do detailed scripting before recording videos, but I like to create the outline. I was using Zavala until the release of Mindnote Next, but this might change. Mindnote is a superbly designed mind-mapping application that also supports the creation of outlines, which are more beautiful than those created in Zavala. One of Zavala’s strengths is that it is free but also easily exports a document into Craft via a simple drag-and-drop. I will see how it goes in 2025.

    Presentation purposes: iA Presenter offers a unique approach to presentation creation. I rarely use presentation software outside of my day job, but when I do, it supports me while recording a YouTube video. A recent update to iA Presenter introduced an online presentation sharing feature that works really well and is beautifully implemented. For 2025, I’ll try to take advantage of this. iA Presenter is such a unique take on a very old software category I must keep trying to find a use for it.

    iA Presenter 1.4 main window.

    Website site analytics: Tinylytics joins Plausible in my toolset. I was happy with Plausible until this year, but the developer of Tinylytics is also the developer of Scribble.pages, a blog hosting service I really like. I decided to subscribe to Tinylytics as a support gesture for all his hard work building simple yet valuable web services.

    Tinylytics website analytics for numericcitizen.me.

    Web bookmark management: I’m happy to introduce Anybox. Sure, it’s not raindrop.io, but it’s a great native Mac app, also available on the iPad and the iPhone. That’s all I need. My collection has less than four hundred bookmarks, all organized using folders and tags. It’s nothing fancy but practical.

    RSS feeds publishing: FeedPress is a simple yet effective way for adding a unified feed in front of all my different websites (Ghost, Micro.blog, Scribbles, Medium). Also, I offer an RSS megafeed that encompasses all my other individual RSS feeds, which can be found here: https://feeds.numericcitizen.me. The added value of using FeedPress is to enable RSS feed analytics, which other publishing platforms like Micro.blog, for example, won’t provide.

    I should take FeedPress analytics numbers with a grain of salt.

    Podcasting purposes: Micro.blog is now my podcast hosting service of choice. The feature is built-in and very simple to configure and use. There are two ways for me to share a podcast episode: either use the narrated post feature of Micro.blog or use a traditional workflow, build an audio file using Screenflow, post-process it in Adobe Podcast, and convert it from WAV to MP3 using Permute before uploading the audio file to Micro.blog.

    Files-hosting and cloud storage service: Dropshare will upload a file to Backblaze cloud storage, and Short.io will shorten the resulting URL. All my files are shared under the following domain name: https://go.numericcitizen.me, using my custom branding. Here is an example: https://go.numericcitizen.me/PLx2st2Y. This workflow was implemented in 2024 and works well. The only thing is that I don’t use it often enough, and it can compete with CleanShot Cloud, which I use more often when sharing screenshots or short video clips. Those media files are using the following URL: cloud.numericcitizen.me.

    My cloud storage services.

    Specialized blog hosting: Micro.blog. I created a metablog on Micro.blog using one of the five blogs in my Micro.blog subscription. As you can conclude, I’m increasing my foothold on Micro.blog because it is cheap, effective and unique on the market.

    Read-later service: I removed Omnivore because the service is no longer being developed, and I decided to focus on Inoreader instead. It’s not a perfect solution, but it is a cheaper one. I still depend on Readwise to sync text highlights from Inoreader.

    Another blog hosting service, Scribbles, was. I’m using it to host short-form posts called Blips or longer ones using the /Now spirit under the following URL: https://blips.numericctizen.me.

    One-page website hosting: Numeric Citizen Hub on Micro.blog has replaced my Linktr.ee page. I’m again focusing on Micro.blog for many of my online publishing needs while saving some money along the way. This one-page website is for hosting my visitor card, sort of. Micro.blog offers support for one-page websites, so I’m taking advantage of this.

    When saving bookmarks on Miicro.blog, I take advantage of text highlights while reading the article that Micro.blog is keeping from the bookmark. Text highlights are synced to Readwise, too.

    Website for my supporters: For prople who wants to show their support for my work, I have built a Ko-fi page that can be reached here: https://ko-fi.com/numericcitizen. It was created for the one dollars a month club initiative from Manuel Moreale. I’m one of his supporter.

    Document writing and editing needs: Craft & Ulysses. Both apps are still at the center of my publishing needs. More than ever, I depend on Craft to gather my thoughts and notes, research, and write. Ultimately, content is exported into Ulysses for publishing to either Ghost, Micro.blog or, more recently, Medium.

    My Craft ecosystem.

    Behind-the-scenes newcomers: Apple Freeform plays a more prominent role in helping me create diagrams. Freeform is joining Mindnote and Keynote for creating visual content when needed.

    Freeform is a great tool for creating simple diagrams.

    These are gone: All my domain name registrations are now entirely moved to Cloudflare, and gone is GoDaddy. Omnivore is being phased out by its developers; it’s gone, too.

    Until next time

    The continuous evolution of toolsets reflects the dynamic nature of technology and the diverse needs of users. No toolset is flawless, and each comes with its own set of strengths and weaknesses. This notion is evident in your evolving content creator workflow, where you adapt and integrate new tools, illustrating digital tools’ perpetual state of change. For 2025, I don’t expect too much change in my workflows. Don’t forget to visit my complete content creator toolset if you are curious about the individual tools that I’m using.

    This document is also available as a Craft shared document.

  • For those who didn’t know, I maintain a description of all the apps and services that I use on “My Complete Content Creator Toolset And Some More” page.

  • I spent some time this morning to update my content creator toolset mini website. It was long overdue.

  • Why So Many Publishing Platforms?

    For long-time readers and followers, they know that I own a few websites or publishing places, but a reminder is always welcomed. With so many places to publish to, you might wonder why not use only one big website. Well, I’m glad you asked. You’ll find most of the answers in the following diagram.

    My (too) many publishing platforms

    As you can see, each place fills a different role. Think of them as publishing channels. I prefer to have many focused places with content directed to a specific crowd over having a single channel full of seemingly unrelated posts. But there is more to it: I love using different tools and services. Each has its strengths and weaknesses and a specific set of features. That’s what drives me the most to use different publishing platforms.

  • Browsing Past Published Articles on Ghost

    Circumventing Ghost’s limited posts management capabilities.

    List of publications in Ghost admin panel.

    I recently decided to spend some time editing past articles published on my Numeric Citizen Space website. I first thought that by going to my Ghost admin page, I could quickly browse past published articles by month. I couldn’t be more wrong. In fact, Ghost offers limited post management capabilities, thanks to its limited content browsing capabilities. I cannot go back, say, list articles published early in 2023. I can sort by ascending or descending order, but from there, I have to scroll through a long, dynamically created list of posts. It’s not very effective for a website with 600-plus posts. I had to find a different option to locate a post for an update. This is where Ghost’s content APIs come into play.

    The following API request doesn’t do the job (API key voluntarily removed!):

    curl -H "Accept-Version: v5.0" "https://numeric-citizen-introspection.ghost.io/ghost/api/content/posts/?key={APIkeygoeshere}&fields=title,url,published_at,updated_at&filter=published_at:>2024-01-01%2Bpublished_at:<2024-02-01" | json_pp
    

    Let me explain what is this API request.

    First, I’m going to the request using the macOS command line, hence the curl command. Next, the whole query follows in quotes. I query the content/posts API endpoint. Next, I pass my API key, followed by a field selection (&fields), and next with the filter using the published date between two dates. Finally, I pipe the results in the pretty JSON print macro (is this a macro?) so the output looks like this:

    jfm@CraftingMAChine ~ % curl -H "Accept-Version: v5.0" "https://numeric-citizen-introspection.ghost.io/ghost/api/content/posts/?key={API-key-goes-here}&fields=title,id,url,published_at,updated_at&filter=published_at:>2024-01-01%2Bpublished_at:<2024-02-01" | json_pp
    	{
    	   "meta" : {
    	      "pagination" : {
    	         "limit" : 15,
    	         "next" : null,
    	         "page" : 1,
    	         "pages" : 1,
    	         "prev" : null,
    	         "total" : 9
    	      }
    	   },
    	   "posts" : [
    	      {
    	         "id" : "65b6a09840566000015b0d37",
    	         "published_at" : "2024-01-28T13:50:19.000-05:00",
    	         "title" : "My Weekly Creative Summary for the Week of 2024/03",
    	         "updated_at" : "2024-01-28T13:50:19.000-05:00",
    	         "url" : "https://numericcitizen.me/my-weekly-creative-summary-for-the-week-of-2024-03/"
    	      },
    	      {
    	         "id" : "65b6540640566000015b0cf7",
    	         "published_at" : "2024-01-28T08:23:26.000-05:00",
    	         "title" : "Special Message to Paying Subscribers",
    	         "updated_at" : "2024-01-28T08:23:26.000-05:00",
    	         "url" : "https://numericcitizen.me/special-message-to-paying-subscribers/"
    	      },
    	      {
    	         "id" : "65b16e25bc7fde0001314ccb",
    	         "published_at" : "2024-01-24T15:09:24.000-05:00",
    	         "title" : "The Mac Turns 40",
    	         "updated_at" : "2024-01-24T15:09:24.000-05:00",
    	         "url" : "https://numericcitizen.me/the-mac-turns-40/"
    	      },
    	      {
    	         "id" : "65ad35418532ae000169ddd2",
    	         "published_at" : "2024-01-21T10:22:33.000-05:00",
    	         "title" : "My Weekly Creative Summary for the Week 2024/02",
    	         "updated_at" : "2024-01-21T10:22:33.000-05:00",
    	         "url" : "https://numericcitizen.me/my-weekly-creative-summary-for-the-week-2024-02/"
    	      },
    	   ]
    	}
    

    Next, I copy the post ID of one article and paste it my browser for edition using this special URL:

    https://numeric-citizen-introspection.ghost.io/ghost/#/editor/post/652e6eedb8a2650001ad9c5b

    This URL brings me directly into the Ghost editor, provided that i was already authenticated with my account. That’s pretty much it. It could be much simpler. For this, I miss WordPress.

    You can find the Ghost API document right here.

  • I’m Ready to Move This Website to Craft

    Numeric Citizen I/O hosted within Craft document.

    In recent days, I’ve been working on a proof-of-concept to replicate Numeric Citizen I/O website currently hosted on Blot.im into Craft. I’m happy to report that the main portion of my work is completed. You can have a look at the end results here (Craft link). Now, the only missing part is the support of custom domains and notifications. The former will help mask the Craft URL behind a more user-friendly URL. The latter will let me know when someone is dropping a comment on the website. For the time being, I’ll update both versions in parallel. Enjoy.

  • On Migrating WordPress Content to Ghost

    Moving content from one platform to another isn’t easy. And it shouldn’t be that way.

    The problem: I want to migrate a few dozens of posts from my Numeric Citizen Blog to my other website, Numeric Citizen Introspection, hosted on Ghost. Easy, right? Think again. The Ghost migrator plugin doesn’t support posts selection; it’s an all or nothing tool. How can I migrate a subset of my posts in that context? By assigning a specific category to each post, I can use the WordPress export tool to export these posts. Next, those posts can then be imported into an empty WordPress instance. From there, I could use the Ghost Migrator plugin. The issue is that I don’t have an empty WordPress instance sitting idle. Using WordPress.com, I cannot install the plugin in a free instance (it’s part of a Business plan, which I subscribe to for my main blog). The solution, was to use my Synology NAS to install an empty WordPress instance locally and proceed from there. Let’s see what the workflow looks like.

    1. Turn off post update in the WP to Buffer Pro plugin to prevent flooding your Buffer queue
    2. On the source WordPress instance, update posts category that you want to export
    3. Install the “Export media with selected content” plugin (which is needed to export images as well as text content)
    4. Export content to an XML file with the plugin
    5. Install WordPress on Synology NAS with all required dependancies
    6. Configure a WordPress website that will be used to host exported content in transit to Ghost
    7. Install “Export media with selected content” in Synology WordPress instance (not really required)
    8. Install the Ghost Migrator plugin
    9. Delete the default post and unneeded page from the WordPress instance, as well as any images from the media library.
    10. For each post to export, add the export category of your choice (in my case it was “PhotoLegend”.)
    11. Export posts using these options from the WordPress Tools menu
    

    WordPress export with selected content plugin in action.

    12. Switch to the WordPress instance running on the Synology NAS
    13. Select Import from the Tools menu
    14. Select the XML file created from the Export step earlier
    15. Set the author for the imported posts
    

    WordPress import plugin in action.

    16. Set the Download and import file attachments to bring in images
    17. Click Submit and wait for the process to complete (it takes some time, depending on the number of posts and images to import)
    18. Verify if all posts are listed in the Posts section (check creation date, author, etc.)
    19. Check for Media Library to verify if images are imported
    20. Open a few posts to see if content is correctly formatted
    21. Edit posts with back links or other elements that need to be updated before importing content into Ghost
    22. Edit tags according to the destination website requirements
    23. Edit post slug and post title according to destination website requirements
    24. Export using Ghost Migrator plugin, select the JSON format since ZipArchive module isn’t installed with this version of WordPress and PHP
    

    Ghost Migrator plugin is pretty limited in functionality.

    25. Import JSON file created in the previous step
    26. Check for imported posts issues. This is where I hit the wall. Missing photos, content imported as HTML blocs, etc. Not great at all.
    

    Images are missing in imported post.

    Posts from WordPress are imported in HTML block in Ghost which is not good.

    27. Turn back on the WP to Buffer Pro Post Update option
    

    This workflow doesn’t meet the goal of migrating WordPress content to Ghost. I ended up deleting the posts on the source WordPress instance and kept a copy of them on my Synology instead. I don’t know what I’ll do eventually with these “archived” posts.

    Observations

    Some observations are in order. This whole story brought many observations that I think you should consider if you’re attempting something similar.

    • The Ghost Migrator plugin is very limited, which make it hard to build an optimal migration workflow.
    • Images migration is close to impossible or very unreliable, forcing to use a manual export and import process.
    • Image optimization plugins on WordPress could make the migration harder than necessary.
    • Website optimization plugins on WordPress could add tags that are probably hindering the migration process.
    • Ghost import feature is still a work in progress can there is no way to select which post to import after reading the JSON file.
    • Testing the migration with a single post would most likely help identify issues faster, instead of importing all the content on the first try.
    • It doesn’t help to convert the WordPress post to use the block editor before exporting the content.
    • Migration efforts are time-consuming, making sure the content still has value to your reader is a good idea. I ended up deleting my 23 posts after spending hours of migration efforts. The positive side of this story is that I learned quite a lot.
    • Even if I couldn’t use the ZIP file for the Ghost Migrator plugin, I don’t think it would have made a difference in the migration quality. I tried to add ZIP Archive to the PHP installation, but the WordPress installation within my Synology NAS is hard to customize. After spending a few hours trying, I dropped the ball.
    • Data portability is really an issue these days. Even with export or import plugins exist, there are other problems that are inherent to each platform or CMS.

    One thing that I gained from this experience is that by using WordPress on my Synology NAS, I can export content from my online WordPress to my Synology NAS for archiving purposes. That’s cool. Other than that, the problem of data mobility across content platform is real.

  • My Blogger Workflow as of 2021-12

    My previous blogger workflow update was in March 2021. Quite many things have happened since then. It’s time for another update. Buckle up because this is a big one, and enjoy the ride!

    My blogger workflow as of 2021-12.

    What’s in

    For 2021, I was expecting a year without many changes to my blogger workflow, and yet, I was in for quite a few surprises.

    • Probably some of the most important additions this year are Toggl, Timery, and Focused Work to track my time while creating content (consider bookmarking and reading “Why and How I’m Tracking Time With Toggl” if you want to know all the details.) Tracking my time does take some time, but I like the results.
    • Hello Ghost (again)! I started experimenting with Ghost during the 14-day trial period, during which all features were available for testing. I started building automation with the Zapier integration. After the trial period ended, the integration with Zapier stopped working for some reason. I quickly found out that many features like custom themes, custom integrations, and commenting support are only available with certain subscription tiers. Commenting on each blog post isn’t available by default unless I’m on the Creator tier and customize one of the provided themes. To use Commento, I needed an API key, as well as a custom theme and a custom integration. And moreover, a custom version of Casper with some script invocation was added to enable Commento integration. Forking such a built-in theme requires staying in sync with the official theme, as Ghost updates them from time to time to benefit from all Ghost’s additions. Finally, I visited Google Search Console to add my Ghost website for better SEO management and optimizations. I became a subscriber at the entry-level tier for $9 per month, but I quickly realized that the $25 was the one I needed (consider bookmarking and reading “Moving From Substack to Ghost–My Experience” for more details.)
    • iPadOS 15 introduced support for Safari extensions. Working on the iPad now feels less and less a compromise, as Grammarly support and many other extensions are now available. For people depending on the iPad, it is a much-welcomed addition. Unexpectedly, in 2021, my workflow shifted towards the MacBook Air (read “Coming Out of a Rabbit Hole and Buying Two MacBook Air”).
    • Pocket made a comeback in addition to Readwise (consider bookmarking and read “Instapaper vs Pocket — Which Read Later Service Is Better for Me”). Pocket is well-known and doesn’t need much introduction. According to Readwise website: “Readwise makes it easy to revisit and learn from your ebook & article highlights.” Resurfacing previously highlighted text snippets is fun and helps build a lasting memory of past readings. I added Readwise as a source to my weekly newsletter built using Mailbrew.
    • Using the Readwise sharing feature to repost quotes on Twitter is handy. I don’t use it too often, though.

    Sharing a Readwise highlight.

    • WordPress plugin: I’m using the paid version of “WB to Buffer” for reposting previously published posts to Buffer. With another WordPress plugin named “Feedzy” it imports RSS feeds from Substack and Microblog and creates “Also on my …” type of blog posts automatically. It didn’t generate much traction and added too much noise to my original content feed. This was disabled after a few months when I moved out of Substack.
    • I unexpectedly started using Matter when Matter officially became public. Matter seems to have gained some traction over Pocket as the best read-later service. Compared to Pocket, it creates great link posts that can be saved or shared online, just like Readwise and Pocket.
    • I became a subscriber of Typefully (typefully.com), a web application for writing threads on Twitter. Some features of Typefully are similar to Buffer’s, like being able to schedule tweets. I use it to write threads to complement some of my articles. The latest example of things to watch in 2022. Finally, Typefully brings great engagement analytics.

    Typefully analytics.

    What’s out

    • My experience with HEY World didn’t last long. I’ve been moving out of HEY World to go to Substack for my Friday Notes* and Photo Legend* Series (consider bookmarking and reading “Migrating My Content From Hey World to Substack”). I can say the same thing about my Substack experience. These services, while attractive, didn’t stick in my workflow.
    • HEY is no longer on the workflow diagram. HEY doesn’t really contribute to my blogger workflow. Most of my readings don’t happen there anyway, even if HEY provides newsletters dedicated feed, one of the tent pole features of the mail client.
    • As mentioned earlier, Substack is out. The popularity of a platform doesn’t guarantee the popularity of your content.
    • I closed my Telegram account. Read more here to learn why. I’m contemplating Signals instead.
    • WordPress Plugin: Coblock was disabled to remove overhead in webpage processing. It didn’t make a difference, though.

    In progress

    • I do spend more time maintaining my digital garden in Craft all year long. You can find a lot of stuff in there.
    • I’m still trying to figure out how to use Apple’s Quick Notes feature in iPadOS 15 and macOS Monterey. I may end up having no use for this after all, which is too bad because, on paper, the idea is cool.
    • I’m always thinking about using Apple’s Reminders in my workflow. Reminders have improved quite a lot over the years, but occasionally, I think Craft could take over if table support was better (sorting, tagging, etc.). The more things I’ll do with Craft, the more synergy it creates. I’ll watch Craft’s evolution in 2022, and maybe make a move.

    Things to improve

    • Adding text clipping in Craft would be so helpful. There are shortcuts that work with Craft that do just that, but I don’t find the experience very satisfying.
    • Speaking of Apple’s Shortcuts, I do find more use cases for them to speed up a few key tasks, like setting up my work session after logging into my account on macOS.
    • Templates in Craft to kickstart the creation of a new article would be very handy. It is expected in 2022, in an upcoming update in 2022 or via an extension.
    • As much as I would like to see the addition of tags in Craft, implementing this feature could be tricky. Where should we be able to tag things? In a page’s properties, inline in the page’s content?
    • I have to work on my reading workflow and decide what I’m going to do with Pocket, Readwise and Matter. Pocket will probably go as it is entirely covered with Matter.

    Miscellaneous

    • My usage of ** Craft ** has significantly increased this year. It is becoming my second brain (Fun fact: find out the name of my MacBook Air). Lately, I decided to use the Craft calendaring feature to prepare a weekly plan containing my content creation objectives. As the week progresses, I keep it up-to-date and check items off the list. It’s a satisfying experience, trust me.
    • I’m still using Notion to keep my old data and connect Matter to Notion to save my reading highlights automatically. As soon as a Craft extension allows me to pump my data out of Notion, I might be done with Notion once and for all. Notion is not shown on my workflow diagram but will be in an upcoming post covering my reading workflow.
    • Twitter Revue: I had a Revue account before Twitter bought them. Now that it is integrated into their platform, I experimented with it (read a sample issue here). I love Twitter Revue, but I have yet to find a unique and useful use case for it. I currently have five subscribers.
    • Furthermore, I should consider closing my Flipboard account. I never go there; it’s not what it used to be, and I don’t get any traffic from this platform.
    • Google News, where I cross-post my main blog content, could also go down the drain. I don’t get any traction there.
    • Finally, Tumblr is another place where I cross-post content. Tumblr has become a ghost town in recent years, and it doesn’t help at all. Even if cross-posting is done automatically using WordPress’ built-in feature, I should consider stopping using this platform.
    • In my previous workflow update, I considered moving my Photo Legend Series to Hey, which I did for a short while. Now, it is hosted on Ghost, along with my Friday Notes Series and monthly newsletter. I like consolidating stuff sporadically.
    • Since getting a MacBook Air, my iPad Pro usage significantly dropped. The Mac is the power user tool. I cannot be as productive on an iPad.
    • I worked a lot on my WordPress blog to improve its score on Google’s PageSpeed Insights, as documented here. Did it make a difference? According to my blog visitor statistics, the answer is no. Here is a strange thing: if I run PageSpeed tests twice in a row, the final score is quite different. Usually, the second try gives much better results. How much trust should I put in these results? Another observation: my score for this blog, a static website, is the worst. Is Blot hosted on a low-end performance tier in the cloud?
    • I’ve been using Commento with Blot to add comments support on this blog. I never got a single comment! It’s a high price to pay for a service that nobody takes advantage of. Maybe it will be a better fit with my newsletter website on Ghost? Time will tell.
    • IFTTT still plays an important role in my publishing workflow as it works with Buffer to help me control the cross-posting flow. Each day, I spend some time managing the Buffer queue to spread out posts to be published. I also use IFTTT to cross-post anything I post on Reddit to my Twitter channel on Buffer. Buffer has a new calendar view that helps you see a timeline overview of all future publishing. Buffer isn’t cheap, but I like what it does for me. Cross-posting content does help create traffic and improves engagement.

    Well, that was a long one. I want to walk you through my reading workflow for an upcoming article. I read a lot of stuff online, and many applications and services are involved here. Reading is the source of my inspiration for most of my work as a content creator. I think there are some interesting things to write about. Stay tuned, and see you in 2022.

  • Moving From Substack to Ghost — My Experience

    Digital nomads. The flavour of the day. Looking for a better digital experience? Every reason is good to move from one place to another in the digital world. It’s about having some fun.

    I recently came across this blog post from Greg Morris where he writes: “I look at blog designs like Birchtree.me* and think to myself “I want a blog like that” and then go out and try to build one.”*. I often tell myself the exact same thing. But then, not long after, I came across another blog post , but this time by Andy Nicolaides writing on his blog, The Dent:

    “I’ve just gone through yet another blog migration, moving from Micro.Blog to Ghost (again). I was happily posting to Ghost a year or so ago, saw a nice looking blog on Micro.blog and jumped ship. I then sat there, not posting for half a year, before I saw Greg Morris’ updated site over on Ghost and my blog envy kicked off again. Let’s not even mention how incredible Matt Birchler’s Birchtree looks right now!”

    Ghost has always been a source of curiosity for me, coming back to it from time to time to look and see how it is evolving. Following those two blog posts, I got back to one of my articles about a past experience with Ghost for photo sharing. At the time, it didn’t go well. Furthermore, I started using Substack to host my newsletter for unknown or clearly defined reasons. So, this time, I returned to Ghost to look at it as an alternative to Substack. Why? After all, I was quite happy with Substack. And yet… If I look at Substack and Ghost, there are many things that made me dubious of my choices.

    • I don’t get any subscribers from Substack Discovery because Substack is very popular these days.
    • I prefer the way Ghost handles the publishing process and the distinction between having a CMS and a newsletters publishing platform within the same platform.
    • Ghost’s API supports text editors like Ulysses, which would help speed up the process of creating newsletter issues. By working directly with Ulysses, each new issue would be much easier to put together, as Ulysses supports templates, while Substack doesn’t. Since the basic structure of my newsletter stays the same each month, using a template makes perfect sense.
    • Substack offers some visual customization options, but they are quite limited. On the other hand, Ghost offers themes that help make a more personal-looking website.
    • Ghost supports Unsplash, which is a must for me.
    • Ghost provides better support for photos than in Substack with photo galleries. This could prove to be useful for my photo legend series, among other use cases.
    • Integration of plausible analytics is easy, but it is not possible with Substack. Another must-have for me.
    • Stripe integration, which I already use for Medium payments, if I ever choose to add a paid tier to my newsletter.
    • Commenting is possible by tweaking the theme and adding some integration code. Yet, I wish there was a better and easier way to add this to a website. In the future, I could try to set up Commento for comments using this procedure. Ghost theme customization is available only on mid-tier and up-paid plans. This feature could replace the thread feature available on Substack.
    • Good integration with Buffer via Zapier. IFTTT integration is possible only via RSS feeds. As a paying member of IFTTT, I chose the latter.
    • Better RSS feeds support posts, tags, and pages just by adding /RSS to any URL. On top of that, it is possible to customize the webpage referring to a tag by adding a header image and a description, just like here for the Photo Legend Series.
    • Selecting a fully featured theme is challenging, as Ghost doesn’t provide an easy way to filter themes by supported features.
    • I’ll leave my Substack account active for the Substack Reader feature.
    • Easy migration path from Substack to Ghost using this procedure.
    • Should I import my content? After a short test run using the 14-day evaluation period, it was clear that I had to.

    How Ghost could be improved for me?

    One of the Ghost editor’s most powerful and useful features is the ability to create and reuse content snippets. If you’ve ever used an email client with saved replies, this will be immediately intuitive.

    • Integration features and custom themes for the entry-level paid plan (access to the API admin token).
    • A customizable dashboard.
    • A native client on Mac or iPad.

    Steps to move from Substack to Ghost

    1. I exported my data from Substack, which took less than 10 minutes to complete. Substack makes this super easy.

    2. Import my subscribers list into Ghost’s members list.

    3. Download Xcode from the Mac App Store and launch it for default configuration (required for the next step).

    4. Install Homebrew to be able to install NPM modules later (importing content into Ghost requires Node.js and NPM modules): https://treehouse.github.io/installation-guides/mac/homebrew

    5. Install Node.js and NPM: https://treehouse.github.io/installation-guides/mac/node-mac.html

    6. Follow this procedure to import articles into Ghost CMS. This is done via the command line.

      `migrate substack numericcitizen-export-2021-11-14-m9k19kr99s/posts.csv –readPosts numericcitizen-export-2021-11-14-m9k19kr99s/posts –url https://numericcitizen.substack.com –useMetaImage –useMetaAuthor –drafts false

      `A lot of my decision to switch depended on the success of this step. If content was successfully imported without too much required tweaks, I would consider this a success and go with the next steps.

    7. Import the created zip file (the migrate command generated a 230 MB zip file ready to import). This file was then imported using this procedure.

    8. Configure site pages and tags Once the import is complete and without error.

    9. Review imported content and set tags according to each post’s content. That step was tedious but was mandatory to recreate the same content structure currently on my Substack website.

    10. Configure and write a contact page so that users can click from the bottom portion of my Ghost website to contact me.

    11. Connect my Ghost account to my Stripe account just in case, even though my newsletter is free—you never know!

    12. Configure Ulysses publishing options to publish content from within the application to Ghost. After all, this was one of the main reasons I switched from Substack to Ghost, right?

    13. Do a test run with a fake article and check RSS feed content generation.

    14. Configure the support and reply-to email addresses.

    15. Set up Plausible analytics and add it to my Ghost website using the customization feature in the header section.

    16. Update all my IFTTT automations for cross-posting to Twitter via Buffer when a newsletter issue comes out.

    17. For mid-tier paid plans only: Add Twitter Revue new sign-up to Ghost via Zapier (this requires the Admin API token, which is not available in the entry-level paid tier).

    18. For mid-tier paid plans only: Add Ghost cross-posting to Buffer via Zapier (this requires the Admin API token unavailable in the entry-level paid tier.)

    It took me about a day of work to accomplish all this, from the trigger to the final announcement post on Substack. I’m super happy with the end results.

  • Migrating My Content From HEY World to Substack

    Yesterday, I put an end to my HEY World experiment. After making the call, I wanted to keep my content and migrate it to Substack. So, I tried the Substack RSS feed import feature, but it wasn’t working. As shown in the following screenshot, the error wasn’t explicit enough to pinpoint the cause of the problem.

    Substack's RSS feed import couldn't see my HEY World content

    I had 23 posts to import, which was not a big deal, but I preferred not to move my content manually. Trying different variations of the URL didn’t help. Substack wouldn’t detect any feeds from HEY World. Here is my solution.

    HEY World uses ATOM RSS feed format. I thought Substack couldn’t parse those. The idea was to transform the ATOM RSS feed into something else. After googling for a solution, I remembered about RSSMix (this service is no longer available and FeedPress is way better). This free web service enables merging many feeds into one. I use it to merge all my personal RSS feeds into a single one to build a publishing timeline. It’s pretty cool1. For my HEY World content migration, I took the ATOM RSS feed with another one and merged the content2. The end result is another feed, but this time in XML format. I went to Substack again, and sure enough, the resulting feed could be imported. After the import was completed, all I had to do was delete posts from the second feed content which wasn’t part of HEY World3. Simple as that.

    Update #1: 2022-05-22 : Since the publication of this article, I moved (again) my newsletter to Ghost. Update #2: 2024-06-15 : Replace RSSmix with FeedPress as the former is no longer available


    1. I think I should write about it in a different post. ↩︎

    2. RSSMix requires at least two RSS feeds to work. I chose one of mine with little content associated with it. ↩︎

    3. The one thing I would have liked from Substack was a way to select each post individually before hitting the Import button. ↩︎

  • Bye Bye Universe — It Was a Nice Ride

    Nearly a year ago, I introduced my Numeric Citizen Visual Space, a website made with Universe, a website creation application running on iPhone, iPad and macOS. This space never really took off and never attracted traffic, probably because of its lack of a social network dimension. In retrospect, this was an experiment more than anything else. Universe is a special application where websites are built using a visual block metaphor. There is nothing like it. I was seduced by it and forgot the goal of building a web presence to expose my urban exploration photography work. Eventually, I stopped updating the website. I decided to cancel my subscription ($159.99 CAN per year, which is rather expensive if you ask me). If there was a free tier, I would probably keep it, but that’s not the case.

    I’m still looking for a better photo sharing solution besides the usual suspects. Glass? Bokeh? Both of these are still under wrap, and their future is uncertain. As I’m waiting, I decided to “park” my work on a lesser-known place called “Ello”. Ello is a lot like Tumblr. It’s free and does the job for now.

    Update 2024-06-06: Ello and Bokeh are no longer being developed and were abandoned.

  • Getting Ready for Google's May 2021 Algorithm Update

    Getting ready for the upcoming Google May 2021 algorithm update. See how I improved my Page Insights score by more than 225%. My blog visitors traffic from 2019 to 2021.

    In May, Google will tweak its ranking algorithm again by including new experience metrics into the equation. Those changes were first announced back in May 2020. According to a recent post on Yoast’s blog:

    In May 2021, Google will add Core Web Vitals as ranking factors in its algorithm. This means your site’s page speed and page loading time will impact your rankings.

    And, from Liz Moorehead of ImpactPlus:

    …these “page experience signals” will be rolling out in May 2021 as part of an algorithm update, meaning how well you measure up against these page experience factors will positively or negatively affect your rankings after this update takes effect.

    After reading this, I was expecting the worst. I felt like it was like a storm waiting to strike. The feeling is not really cool, a feeling of “deja vue”. In November 2019, something happened to my blog visitors analytics: it dropped by more than 50% in just a few days. I was astonished and didn’t really know what happened or if I broke something with my blog. I did some research and found out that it was the consequence of a ranking algorithm change by Google1, an update that put my blog at a disadvantage2.

    Preparing for this upcoming change, I had to find ways to minimize the impacts on my main blog, fearing I would lose traffic again.

    The starting point

    At first, when I started to look into this matter, I discovered the pagespeed insights tool from Google3. Don’t miss this insightful article about why PageSpeed Insights is an important tool. As you might expect, I tried it against my websites. According to this tool, my main blog didn’t score well, both from a mobile user perspective and a desktop user perspective, albeit it did a bit better for the latter. Both scores weren’t in the “green range”. I ran the test many times, and sure enough, on average, the scores were bad. Consider the following two scorecards.

    Initial scorecard for the desktop version of Numeric Citizen Blog.

    Initial scorecard for the mobile version of Numeric Citizen Blog with AMP pages enabled.

    That’s not good, but it serves as the starting point. I had to make improvements on all fronts. Does all WordPress websites need to be slow? They certainly have a bad reputation in that respect. As a Business Plan subscriber on WordPress.com, I get to run my website on its own virtual instance. This makes a big difference. Yet, the next steps weren’t clear to me.

    Improving the mobile experience

    The worst score shows that mobile users were the most affected. How many visitors come from the desktop, and how many come from mobile devices? According to my Plausible analytics, surprisingly, most of my visitors come from desktops, not mobile devices, as shown in the following table. Yet, the score needed some improvements.

    Blog visitors by device types.

    A big change was to remove support for Google’s AMP page format. AMP pages aren’t the best idea for the open web and, according to my testing, made my website run slower. Disabling AMP support in WordPress.com is as simple as turning off a switch. After doing so, I could already observe big improvements in loading time, but that wasn’t enough to get my score into the green zone. What else could I do?

    Revisiting my WordPress plug-in usage

    WordPress is well-known for its support of plug-ins. The more plug-ins installed, the higher the possibility of a slower-than-normal website. It’s easy to have a plug-in overload. For my optimization work, I had to revisit the usefulness of each of them.

    I simplified my blog’s main page a bit by removing a rarely used footer widget. This widget allowed people to subscribe to my Mailbrew newsletter. This change improved response time quite a bit. For some reason, the Mailbrew widget contained many scripts calling Mailbrew’s home, which increased latency.

    The Twitter timeline widget was also removed; I don’t think people cared much about my latest tweets showing up there4. By removing the sidebar on the main page, content retakes the center stage in a cleaner page layout.

    The IndieWeb support plug-ins (three in total: IndieWeb, Micropub, IndieAuth) were disabled because I suspected they could negatively impact the performance. After re-testing the website, the speed didn’t change much; those plugins were re-enabled5. Media Cleaner and Mailchimp support were no longer needed and were removed, too, but I don’t think they negatively impacted my website loading time.

    Other plug-ins like CoBlocks, add a richer set of block types in the WordPress editor. This plug-in adds a few scripts and CSS according to my research. By disabling this plug-in, some of my posts would break, not that there are many of them but still, some care is required here.

    Adding two optimization services to my toolbox

    In “How to speed up WordPress”, I discovered two paying services: the first one is WP Rocket, to optimize many internal aspects of my WordPress website and Imagify to optimize images.

    After reading about WP Rocket’s capabilities, I installed the plug-in. After installing the plug-in, WP Rockets does many optimizations behind the scenes without any intervention. Then, I poked around the provided features and started to enable options one by one, carefully testing my website at each step, as suggested in the plug-in documentation, to see if anything was broken. At each step, everything was loading perfectly. At the end of this process, I did a new round of performance testing using the page insight tool, and to my delight, my score went up even more.

    In summary, the following options in WP Rocket were enabled:

    • Cache / Enable caching for mobile devices
    • Cache / Enable caching for logged-in WordPress users
    • File Optimization / Minify CSS files
    • File Optimization / Optimize CSS delivery
    • File Optimization / Minify JavaScript files
    • File Optimization / Load JavaScript deferred
    • File Optimization / Delay JavaScript execution
    • Media / LazyLoad for images
    • Media / LazyLoad for iframes and videos
    • Media / Add missing image dimensions
    • Preload cache

    All in all, I’m pleased with WP Rocket. The optimizations may not provide a night and day difference, but they do add up to make my website a better web citizen.

    Next up is a companion service to WB Rocket, Imagify. It is simple to install and configure. The free version allows for optimizing 500 MB of image content. I went with the unlimited version so I could process all my published content. It took 12 hours to process about 5 GB of images. The end result is that my image library size was reduced by 62%. That’s a big improvement. As expected, optimized images look pretty much the same as before.

    Other considerations

    I considered using a content delivery network service (CDN), but after much thought, some internet research, I decided not to do so. My blog doesn’t use a lot of heavy content like videos, only some pictures and many screenshots. I don’t think this would have made much of a difference6 for most of my visitors7. The following is a Lighthouse test result for speed access according to geographic locations. The next graphic shows where my visitors are coming from.

    \_Imagify-optimization-results.png

    My website performance by geographic locations

    \_Speed-access-by-geo-locations.png

    My website visitors’ origins

    My WordPress theme is flexible and allows for many customizations. This means a lot of CSS is involved. I’m also using custom fonts that add some weight to the website. According to SolarWinds’ Pingdom tool, the main page of my blog weighs about 784K, where 40% is for the fonts, 27% for images and 26% for scripts and CSS. Repeated tests show the main page loads in about 3 seconds or less. This doesn’t fit with my observation when I’m visiting my website from my machine, which seems to load faster than in 3 seconds. Three seconds isn’t bad, isn’t it? Anyway, I’m not planning to undo my font selection, as the standard ones are ugly as hell.

    Another step was to look at Google-related stuff. Since I’m using Plausible Analytics, references to Google Analytics were no longer needed and were removed from WordPress.com configuration settings found in the JetPack settings. Good riddance.

    Final scores and looking forward

    Final scorecard for the desktop version.

    Final scorecard for the mobile version with AMP pages enabled.

    I’m happy with all the improvements I’ve made to my website. The improvements were the most impressive on the mobile version. It could be better, but I’m utterly happy with where the score stands now.

    Keep in mind that WordPress-based sites are dynamically generated. A lot of processing happens behind the scenes when hitting the homepage with a browser. My microblog and the site you are reading are static-generated and fast to load. But, if you compare the loading times of all these sites, you’ll find that they are comparable.

    Now, the big question: Am I ready for Google’s 2021 algorithm update? I think so. Will my optimization efforts be rewarded? Who knows? Google is like a beast that we have to feed, and please, who knows if he will like the meal served this time.

    By increasing my website’s score for mobile users by as much as 225% and by more than 25% for desktop users, and by meeting most of Google’s requirements for “website providing a great user experience,” I hope that the upcoming Google changes in May will be beneficial.


    1. I wasn’t the only victim of Google’s action. ↩︎

    2. This change prompted me to change the type of content that I post on my main blog: longer posts with more meaningful content. ↩︎

    3. Another useful tool is GTmetrix↩︎

    4. Anyway, I recently reduced my Twitter usage by a lot, as fully documented in this blog post↩︎

    5. IndieWeb plugins provide a useful integration of comments from other websites. ↩︎

    6. According to my research, my blog is hosted on WordPress.com in the US, where most of my visitors come from. ↩︎

    7. WP Rocket offers a CDN service for 7$ a month. I’m not willing to pay for that. ↩︎

  • Should I Try Write.As? I Came, I Saw, Then I Left

    I saw someone on Micro.blog using Write.as a platform for publishing a blog. After spending a few minutes on the blog and Write.as website, I find it very tempting; it’s clean, super simple, well-thought-out, and cheap. Maybe I should try it? Or maybe not. I’m already spread too thin. I feel it would be another rabbit hole. If all my current platforms were fully satisfying, I wouldn’t be looking at other places.

    At the very least, I could open a free account and see if my impressions are valid.

    [Update #1: 2022-05-19: I did take advantage of a special pricing for a five years subscription. You can find me on write.as: https://write.as/numericcitizen/]

    [Update #2: 2024-05-20: I no longer use write.as since earlier this year. I deciced to bring the content to my main blog instead.]

  • My Blogger Workflow as of 2021-03

    This is the first post on Numeric Citizen I/O about my blogger workflow. This website’s mission is metablogging, which means writing about the tools and services that I use as a blogger and content creator. I hope you enjoy the ride here. This is the most comprehensive update yet. In this workflow release, as of 2021-03, there are many important changes. Here is a run-down, in no particular order.

    My blogger workflow as of 2021-03.

    1. First, as stated earlier, I created a new website about meta-blogging. It’s called Numeric Citizen I/O, which is hosted on Blot1. That’s where I’m talking about the tools and experience as a blogger and content creator. The domain name is hosted on GoDaddy. Domains ending with .io aren’t cheap, here are possible reasons why. I’m super happy with Blot. Their support is excellent. I learned how to properly use Git in my endeavour. I’m using Commento as a commenting service which is privacy friendly.
    2. Linktr.ee: is now my virtual visitor card. Super easy to set up. Lots of formatting options. Not cheap, though. In the past, I had an account on about.me which I closed because of its lack of formatting features. I’m pleased with Linktr.ee.
    3. Gone is the venerable MarsEdit on my Mac. Ulysses version 22 supports publishing to Micro.blog2. I do like MarsEdit, but I prefer Ulysses which is available on all Apple platforms.
    4. Gone is Linky, from my iOS devices. Used to be a great app for sharing links on Twitter and text highlighting. As my Twitter usage has dramatically reduced in recent months, I no longer need it. The app is no longer being updated, apparently, which is also contributing to its demise.
    5. Now in: Nova and Working Copy for publishing to Blot. Nova was recently reviewed on MacStories.net. I think it is important to show support for those developers who care to create real Mac software, not just ports of Windows apps.
    6. Now enabled is the automatic archive of my Micro.blog content to a Github repo. I like the idea of having my content available on Github. Using Nova, I cloned the repo on my Mac too. From time to time, I make pull requests to update my local repo.
    7. Craft is my new note-taking application, replacing Notion. Read my recent article on Craft. I still have content on Notion and I don’t know ye how and when I’ll be able to take it out. I’m waiting for their APIs release. I’m in no rush.
    8. Speaking of Craft, I’m using it to maintain a digital garden which can be found here. It’s super easy to nurture and the extensive formatting options of Craft allows me to have a decent website. You can leave comments by the way!
    9. Apple’s shortcuts, not shown here, play a small part in my workflow. One of them is to generate quotes from a web page by selecting the text that I want to quote. Another one is to create a page in Craft from a website. It’s very handy and covers a use case not available in Craft but which is available in Notion.
    10. I restarted my Vimeo page as an experiment and for storing short clips of user-interface micro-interactions from apps that I use and like a lot. You’ll find many examples from Craft. Vimeo is not cheap. Microinteractions are created using the screen recording feature of iOS, but are converted to GIF when needed in a blog post using IMGplay, an excellent GIF maker available on all Apple platforms.
    11. I’m still super happy with Plausible, a Google Analytics replacement. You can have a look at my visitor statistics for this site, for example.

    From an idea to a blog post.

    Under consideration

    Reeder for maintaining a list of read later articles. I could use Craft for this instead. I created a page that contains all the bookmarks. This page is accessible from my digital garden, too. I like Reeder’s design for reading, though. Maybe there is a more profound problem: read later features like the one with Safari or with an app like Reeder don’t make me read more. I tend to forget about things I save in these lists. So, why give a damn about those app and service? If I don’t read an article that I find interesting in the first few hours or days, I’ll never read it. I’ll give myself some more time to think about this one.

    Readwise: It is a fascinating service, but as my Twitter usage has dropped significantly, its usefulness is uncertain. Syncing highlights from Medium is interesting, though, because I’m a big reader of Medium content. The iPad app is lacking in certain areas. There is no Safari Extension that I’m aware of. Let’s see where it all goes from here.

    A return of Things. Craft is able to export and import data to and from Things but not from Apple’s Reminder. The problem is that Things doesn’t have an URL field, which I depend on in Apple’s Reminder. I asked the Craft developers if support for Reminders was coming. It is coming. Things won’t make it back, I think.

    Using Square on Linktr.ee to enable tips from my readers. Too bad only Square is supported, I would have preferred Stripes on which I already have an account setup to receive Medium payments. Furthermore, my experience shows that people don’t tip bloggers. Nobody really cares to support marginal content creator like me. Oh well, getting my rewards from the journey, instead.

    Moving my Photo Legend Series to HEY World. I think it would be interesting to restart this photo series but this time on HEY World. It is super easy to publish, much easier than WordPress. That’s enough to consider this move.

    Closing remarks

    That’s it for this blogger workflow update. Things are starting to settle a bit. I don’t see major changes in the foreseeable future. I hope you made some discoveries with this blog post. Let me know in the comment section.


    1. That’s the website you are currently reading! ↩︎

    2. The exact date of Ulysses version 22 is still unknown at the time of publishing this post. ↩︎

  • Ghost 4 is Out! So What?

    Ghost 4 is out, but is lacking one major feature.

    Now, at version 4, Ghost, a self-hosting publishing platform, is buzzing again. To me, Ghost always looked like a modern version of WordPress. They share many similarities. The close integration of website and newsletter publishing is way better than it is on Substack. I’m thinking, what if I moved my main blog over there? I was tempted once to make a move. Others discuss why moving from one platform to another might be a bad idea. Matt Birchler:

    “As I look at this Ghost 4.0 stuff focused on newsletters, my mind naturally goes, “ooh, I could use that, let me switch platforms!”

    But the lack of a native mobile client for the iPhone or iPad was and still is a deal-breaker. For an open platform with APIs, it’s surprising no real client exists. Ulysses supports publishing on Ghost, but that isn’t enough. Oh, and those analytics—aren’t they too much?

    Ghost 4 has lots of new stuff with issues. I’ll pass.

    [Update #1: 2022-05-20: My monthly newsletter has been migrated to Ghost as I wrote in my last article on Substack]

  • Tips and Tricks on Optimizing Articles Exposure on Medium

    To make a dent on Medium, optimizing exposure is a must.

    I’ve been on Medium for many years, and I learned a few tips on maximizing article exposure along the way. These tips and tricks made a difference for me.

    1. If you plan to submit an article to a Medium publication, beware of busy publications: the exposure might not be what you expect. The turnover is too high, and your article won’t stay fresh for long. One example of such a busy publication is Mac’O Clock1^1. I did publish many articles for them over time. My content does get some traction, but it is for a very short period of time.
    2. Articles like “The Top 5 Utilities for macOS” are really popular. Opinionated articles tend to perform well, too. “The Rotten Side of Tim Cook’s Apple” is such an example. This article was published by The Startup2^2****, not on the Apple-centric Mac’O Clock. It still receives regular views and reads.
    3. Allow some content to be published outside the Medium paywall to increase your chances of being noticed (cross-post a link on Twitter, for example). It’s a difficult balance to achieve, though. If your article is interesting, people will get it for free; you’ll leave money on the table. Consider doing this as giving samples of your quality work.
    4. Publish on your term. Some publications require submitting an article in draft mode (not yet published). Depending on the publication owner’s schedule, it may require up to a few days before your article gets published. Sometimes, timing is everything. Consider publishing on your own if that’s the case.
    5. Reviews of hot tech gadgets are also popular, particularly from Apple.

    Your mileage may vary. Many articles on how to be successful are already available on Medium. Search for them. You’ll get a better picture.

    This article should have been published on Medium, behind their paywall, because it usually gets a lot of traction. Oh, well. I feel generous today3^3.

    1. I hate this magazine name.

    2. Contrary to its name, the magazine has little to do with startups.

    3. It will end up on Medium, but in a few days from being published here.

  • Cleaning up my WordPress Blog

    Simpler is better.

    If you know about WordPress, you probably know how bloated your WordPress site can become with heavy visual themes and lots of more or less useful plugins installed. Those using WordPress.com for hosting their WordPress website know how pushy WordPress.com can be. They really want you to use WooCommerce or ExactMetrics. I decided to do some spring cleanup this week by removing WooCommerce. Why did I have it set up?

    During my early days on WordPress.com, I had the idea to allow readers to support me financially. I implemented WooCommerce to enable payment options, but it turns out that readers don’t often tip bloggers. So, I made the decision to remove the Tips page and disable WooCommerce. The result? My website now feels more responsive and visually appealing, a testament to the benefits of decluttering.

    I should continue to remove unneeded features. Next up is the footer portion, which contains redundant features, and my sidebar, which contains my most recent tweets. They don’t really add value to the content. My main blog is available here: https://numericcitizien.me.

  • A Really Useful Git Beginner’s Guide

    I’m using Git to maintain this blog, which runs on Blot. Up until now, my Git knowledge has come from YouTube. Today, I came across this Git beginner’s guide that I wish I had on hand before starting this blog. The nice thing about this guide is that it covers the command line commands plus a GUI-based tool, Atom, in that case. I’m mostly a GUI type of guy, but it’s always interesting to see what happens behind the scenes when interacting with Git.

  • This Blog Uses Commento - Here is Why - Updated 2024-03-10

    You can leave a comment on each blog post, thanks to Commento, you’re not being tracked.

    When I created the Numeric Citizen I/O blog, I thought it would need a way for visitors to be able to leave comments as they see fit. I decided to go the Commento route because of its tight integration with Blot, but also for a more profound reason: privacy protection. According to Commento’s website:

    Commento is more than just a comments widget you can embed — it’s a return to the roots of the internet. An internet without the tracking and invasions of privacy. An internet that is simple and lightweight. An internet that is focused on interesting discussions, not ads. A better internet.

    There are no ads with Commento, so there is no need to track users. The weight of the script needed to add Commento support is light. Commento is easy to use for end-users and doesn’t require an account to publish a comment. But, if you prefer, you can use your Twitter account, your Google account, your Github account, etc, to identify yourself with the service before posting your comments. The design is nice and simple. Commento is not a free service, but I’m paying $99/year for it. That’s the price that I’m willing to pay so my readers aren’t tracked.

    Enabling Commento on this blog was dead simple

    Do you want to try the end-user experience? Please respond to this blog post; you’ll see. Thanks in advance.

    Update: 2022-11-15: Since this blog is no longer hosted on Blot.im, comments are handled “automagically” by Craft as a Craft-based document. Update: 2024-04-10: This content is now hosted on Micro.blog. You can reply to this post by using the provided buttons, below.

  • Testing wall.blot.im

    Testing a web-based blog post publishing tool for posting directly to Blot from a webpage.

    I’m currently testing a straightforward blog post publishing tool running on a webpage. The tool is accessible at https://wall.blot.im. I wrote a front matter; I guess Blot will process it as usual. The editor provides a character count, a word count, and a way to export the current blog post or publish it directly on my Blot website. Once published, I guess that I’ll have to do a “pull” from my Git client to sync the newly published content with my local repo clone. Let’s try this. Nope. It won’t work unless I use Dropbox, not Git. Too bad. Returning to normal programming in 3, 2, 1.