This week we patched a rather silly bug.

It's initially spotted by a reader of @orange, and then, with the aid of a Discord community user @abser this week, I pinned down and fixed the bug.

Welcome to Quail’s Discord server

This bug would appear under an edge case scenario, resulting in an NULL field within the token generated upon login. And then, this would trigger authentication failures, causing users to be repeatedly prompted to log in again.

Enhancing User Experience

Aside from bug fixes, I've implemented a few user experience enhancements this week.

The first upgrade tackled the issue of interrupted user flow due to the image upload overlay.

Imagine that you're an author in the midst of crafting your article. As you write, you upload a photo.

In the previous Quail editor, an overlay would cover the entire editor, blocking any editing during the upload; only when the image was fully uploaded would the overlay disappear. If the image's size was large, this interruption could be quite lengthy, a disruptive pause for any writer.

With the new editor, image uploading no longer hinders the author's editing process. Instead, an "uploading..." message will display at the right postion. Once the upload is successful, this message gets replaced with the image link.

The second improvement is that new article no longer requires a slug explicitly.

Previously, creating a new article meant you had to fill in a slug, either automatically by AI or manually. A well-crafted slug can provide a slight boost to SEO performance.

But I noticed many authors didn't know what a slug was.

So now, if you save an article without a slug, Quail automatically generates one based on the title. Here, it follows certain rules when processing the title:

  1. Normalize to NFD form to separate accent characters in titles, such as "à", will be converted to "a".
  2. Titles containing non-Latin characters will be encoded by url.QueryEscape.
  3. Finally, all characters other than [^a-zA-Z0-9\\-_]+ will be removed.

A Tweak to the Homepage

Our long-unrefreshed official website also got an update, featuring a new interactive section that allows authors to estimate their community worth.

An image to describe post

Another update is a simple animation to show the "Multiple channels delivery" feature.

An image to describe post

You can see it on the Quail's Official Website.

Kicking off a New Iteration to Support Stripe

This feature can be considered to two stages: firstly, integrating Stripe to existing codebase; secondly, adjusting the payouts way by following "Unlock creator monetisation on your platform".

Integrating Stripe is pretty straightforward, so stage 1 is nearly complete. However, there's a group of regression tests still to do, and I need to create the tax-related tools before going live.

I expect to finish those tasks around the end of November.


About the failures and bugs of software, and there are significant misunderstandings among many people:

  • Why are there always bugs?
  • Why do we need to keep spending money post-launch?
  • Why do fixes take so long without a definite end?

Herein lies the issue:

  • Most people lack the relevant knowledge, hence they cannot comprehend how software systems operate.
  • But it's impractical to expect the they to gain such knowledge. Thus, in attempts to educate or popularize, many resort to metaphors, analogies, simplifications, etc., leading to twisted concepts.
  • When issues arise, these twisted concepts exacerbate misunderstandings.

I believe that everything we communicate, through language and text, is merely a semblance. The truth behind the words, if not personally encountered, is always twisted.

Thus, I think that when disseminating concepts, it's better to minimize reliance on metaphors and analogies. If misinformation occurs down the line, you bear some responsibility. And for significant matters, it's better to engage personally at least once.