Migrating from Medium

Why you should consider migrating from Medium to Quarto with free hosting from Cloudflare.
docs
workflow
quarto
Author
Affiliation

miah0x41

Published

April 1, 2024

Modified

April 23, 2024

Medium to Quarto

Medium is a popular blogging platform that saw a surge of Data Science material from around 2017. During that time, publications like Towards Data Science rose to become one of the most popular on the platform.

However for scientific, code or in general technical writing the platform has poor support for everyday features that we rely from code highlighting, reference management to displaying interactive visualisations.

Having weighed the potential discovery benefits of being on Medium relative to the flexibility of using a modern writing platform, today I made the switch to Quarto.

This post goes through the issues with Medium and how a combination of Quarto and Cloudflare Pages offers a much better experience.

Medium Madness

There are several long standing issues with Medium which have been exacerbated by the popularity of Large Language Model (LLM) services such as ChatGPT [1] and Google’s Gemini [2]. They have been grouped into the overall Platform and the (Article) Writing Experience:

Platform Experience

Medium has for a long time had an issue of click-bait articles and despite an official policy of against it, there has been no enforcement action. In practice, Medium itself promotes such articles through its recommendation engine and clicking on such an article further reinforces the recommendation engine to suggest similar articles. This makes it hard to find quality content on the platform.

Medium offers monetisation of articles through its Partner Program and has an entry requirement of at least 100 followers. This has led to a proliferation of “follow for follow” articles. For those within the Partner Program there is an increase in articles being written for the sake of generating content in the hope of monetisation.

Both of these issues are further exacerbated by the rise of Generative Artificial Intelligence (GenAI) content on the platform. Medium like many platforms spent a considerable amount of time to consider its response to the increase in AI written articles, which were either designed to amass enough followers to enter the Partner Program or to maximise revenue through sheer volume of content.

After a long gestation period, the platform’s only action is to kindly request the authors to disclose that the content is generated by AI on a voluntary basis. No validation, no checking and certainly no enforcement. It feels like the owners have given up or worse like much of social media are content to have as much “activity” as possible as long its generates new subscribers irrespective of the type of activity. This is in contrast to enable members to reward authors they like.

So why stick around? A great number of open source projects use the easy blogging platform to host their content having joined in the early on. A wide variety of start-ups who hope to get discovered also use it to reach their target audience and despite the issues, the recommendation engine can sometimes refer to some interesting and engaging content.

Writing Experience

Medium Editor showing key elements and insertion toolbar

Medium Editor showing key elements and insertion toolbar

The writing experience is pretty primitive for an online platform dedicated to generating content. It lacks many basic features such as revision management, versioning and collaboration. Authoring is limited to basic formatting you might expect from the classic Windows program WordPad. There is no support for even tables!

Wordpad on Windows 10

Wordpad on Windows 10

The editor lacks many features that are essential for scientific writing. For example, there is only recent support for code highlighting, no support for LaTeX, no support for interactive visualisations and no support for references. This makes it difficult to write about Data Science, Machine Learning or any other technical topic.

Historically, most of these were mitigated using images, hosting public Github Gists [3] or using a Jupyter Notebook [4] hosting service such as Jovian. This made the process cumbersome writing the article in one format and then splitting the content into multiple mediums, furthermore it discouraged an agile approach as the article was not easy to update.

I started writing on Medium in 2019 as a hobby, having written lots of documentation in work using MkDocs in which I had a productive terminal based workflow using Neovim, Git and Gimp for raster graphic editing (mainly screenshots). In contrast, I grew quite frustrated with Medium in particular having to manually insert in images and captions.

Computational Documentation

The scientific community has long sought a writing system that could meet it’s variety of needs from being reproducible, interactive, versioned and flexible. Whilst there has been a steady trend in easier and more accessible documentation systems from Material for MkDocs, Gitbook and Docusaurus none of these have direct support for computational notebooks (i.e. easy integration of the Jupyter Notebook format) or provide a sufficiently interactive environment.

MkDocs, Gitbook and Docusaurus logos

In almost parallel, two writing systems have emerged that have the potential to meet these needs. These are Jupyter Book and Quarto. The former can utilise a Markdown extension system called MyST, which provides most of the capability.

Jupyter Book, Quarto and MyST logos

Whilst Jupyter Book seemed like a very attractive writing platform for a future book I want to author given that it’s based around the Jupyter ecosystem much like my own workflow, it was the ability to construct blogs and websites that made Quarto the more attractive option. I appreciate that MyST Markdown has also started to support websites it’s still in early development.

Quarto and Cloudflare Pages

Quarto and Cloudflare Pages logos

Quarto advertises itself as an “open-source scientific and technical publishing system” that allows users to author their documents using Jupyter Notebooks or with plain markdown in their favourite text editor. It also combines dynamic content using any Jupyter native language such as python, R or Julia. These can be published in a reproducible manner into production quality articles, presentations, blogs and books in multiple formats such as html, Portable Document Format (PDF), Microsoft Word, ePub and others.

The authoring experience includes all of the elements expected in scientific and technical publishing such as equations, citations, cross references, figure management, callouts and advanced layouts with the ease of a near native markdown experience.

The system encourages local development using tools you are familiar with, which it can render in realtime using the preview command or on demand using the render command. The output is a set of standard static html, js and css files in a directory called _site. The contents can be hosted with any provider that supports static websites.

Alternatively, Quarto provides direct support to a number of hosting providers such as GitHub Pages, Netlify, Posit Connect, Quarto Pub etc. Missing from the list and a popular choice in the website development community is Cloudflare Pages. I chose this because Cloudflare provides a number of useful web services such as Domain Name Services (DNS), Content Delivery Network (CDN), Web Application Firewall (WAF) and DDoS protection. I’m also a heavy user of its Zero Trust services and Cloudflare Tunnels for deploying hosted applications via the Cloudflare network all for free.

Summary

Medium was an attractive platform when I joined, as it was rich with beginner friendly Data Science content, but as a technical writer I found the experience difficult and ultimately unnatural. The other platform related issues in particular, no real effort to combat click-bait titles, AI generated generic content and the inability to filter out paid for only content also made it a difficult reading experience. Far from rewarding authors for their quality content, the recommendation system and platform was geared to mass interactions much like other social media platforms.

Starting from a “writing first” perspective, I found the Quarto experience hosted via Cloudflare relatively easy. It took one day to setup the workflow and deploy a website with my content authored in my favourite tools. As I’m writing now, I know I just have to focus on the content, which is great relief 😍.

Attribution

Original lead image by Pete Linforth from Pixabay

Back to top

References

[1]
Open AI, ChatGPT.” https://chat.openai.com, 2024.
[2]
Google, “Gemini - chat to supercharge your ideas,” Gemini. https://gemini.google.com, 2024.
[3]
GitHub, “Discover gists,” Gist. https://gist.github.com/starred, 2024.
[4]
Project Jupyter, “Project Jupyter.” https://jupyter.org, 2024.

Citation

BibTeX citation:
@online{2024,
  author = {, miah0x41},
  title = {Migrating from {Medium}},
  date = {2024-04-01},
  url = {https://blog.curiodata.pro/posts/2024-04-01-medium-migration},
  langid = {en}
}
For attribution, please cite this work as:
miah0x41., “Migrating from Medium,” Apr. 01, 2024. Available: https://blog.curiodata.pro/posts/2024-04-01-medium-migration