A swishing white S over a stack of color bars reminiscent of books: blue, red, yellow, and green.

StoryTime Newsletter

Archives
Log in
Subscribe
September 30, 2026

September Update

Check Out StoryTime Now

Want to start using StoryTime with your team? Send us a message at [email protected].

Returning to Browser Tabs

The biggest change to StoryTime this month should be mostly invisible. We upgraded Phoenix itself and several websocket-related libraries to the latest versions. This was triggered by investigations into problems re-establishing the LiveView connection when returning to backgrounded tabs, particularly in Safari — the latest version contains some bug fixes for what are at least similar problems.

We spent a while investigating this but we’re still not exactly sure what’s happening. We know that the LiveView client is attempting to reconnect with a LiveView that no longer exists and gets errors about the PubSub topic being closed, but we don’t understand yet why the client indefinitely disconnected from the server in this way and can’t refresh itself on its own. We suspect right now that it has to do with the particular way Safari puts tabs to sleep — it’s quite aggressive about saving battery life compared to the other major browsers, and the process isn’t entirely documented. But it looks like there might be a couple of other things hiding in there, things not necessarily specific to Safari.

Last minute update to this!

Jesse found this video from ElixirConf EU ‘25 that speaks to some of our reconnection issues. We’re going to try some of the techniques here. Thanks to Giovanni (the presenter) for sharing this with the community. This will also make ongoing Coby’s UI explorations more viable.

Money slide:

Image of client <> server success sequence graph with these changes.
Turns out you can send arbitrary client HTML over in your reconnect requests. Neat.

A Pile of Small Improvements

  • When you create a new story in drafts, drafts now scrolls down to the bottom, so you can see your new draft immediately

  • Coby fixed an extremely irritating bug where the border highlight on the description field didn’t show correctly. Because “editing a description” is such a common action in the app this reduces perceived jank levels substantially.

  • fixed an issue where the “scroll-to” flash wasn’t fading from date markers

  • you can now start typing right away after you switch from drafts to search (or back), the cursor will already be in the input field, so you don’t have to click on it

  • trying to make or edit a story with a long title (more than 255 characters) now truncates the title rather than crashing the entire LiveView

  • clicking multiple times in search will no longer cause stories to jitter/jump

  • our TLS certificate is updated! (and our DNS is now configured correctly so that this will happen automatically from now on)

  • we now show whether the LiveSocket connection has been made by longpoll or websocket. This is mostly to improve our own understanding/intuition about the LiveSocket; which transport people are on might be related to those tab reconnect problems.

Coby also built several large exploratory spikes this month, sketching out ideas for how we might use multiple columns.

Gif of columnar design experiment.
A little layout flexibility, as a treat?
Felt cute. Might Delete.

In Progress

Sometime next month you should be able to automatically sign up for (the free, single-user version of) StoryTime — you’ll no longer have to wait for us to create an account after signing up for the newsletter. At which point, we're going to put some real effort into getting new people into the tool.

Don't miss what's next. Subscribe to StoryTime Newsletter:
Older → August StoryTime Update
storytime.team
LinkedIn
Bluesky
Reddit
Powered by Buttondown, the easiest way to start and grow your newsletter.