The of my work life.

Add Now page

I finally added a /now page to this site. It is pretty basic right now but I hope to add more content to it soon.

Currently it contains my recent watching and listening info. The movies use my Letterboxd watch diary; the TV shows come from a Notion page; and the music comes from the API.

The API is quite annoying because it doesn’t return artist images, so I had to use the Spotify API for those instead.

Homepage updates

I have been tweaking the styles on the site. I reduced the crop on the big “ZANDER” at the top and bottom of the site. Previously it was set dead-centre, but I found that reducing the crop (so more of the word is shown) looked a lot better.

Otter Raycast Extension

I built a Raycast extension for Otter a long time ago. It allows you to search and view recent bookmarks. It is a great companion to Otter. I have just submitted a new version to the Raycast extension store so it should be released soon for everyone to use.

The PR for the extension is here:

Otter Bookmark entry improvements

When adding or editing a bookmark, Otter checks the contents of the title, description and note fields to see if they match existing tags. If a match is found, it is shown below the tag input field. Since the addition of collections recently, the tag matching logic needed improveing because it would only match tags exactly, for example if the tag was web:dev and the user typed dev, it wouldn’t match. In this update I improved the matching logic to match tags that contain the user input. For example, if the user types dev, it will match web:dev and dev:ops.

Various other UI improvements were made to the app to make it better on mobile devices.

Otter database upgrade

I updated Otter’s PostgreSQL database to version 15 through the Supabase dashboard. There was an issue with the database migration, I wasn’t able to add new items anymore. I was getting this error: permission denied for table http_request_queue.

After a bit of searching, I found out that the pg_net extension was the cause of the issue. To fix I had to disable it then re-enable it in the “Database extensions” section of the Supabase dashboard.

Otter Collections

Added collections to Otter. Collections are not another entity like tags, but are created implicitly when you use a tag with a colon in, for example with the ai:openai or ai:anthropic tags the collection would be ai for both items. I use this form or grouping throughout Otter and I always wanted a simple way for collections to be displayed in the app, and now that they’re here, I can’t believe I didn’t do it sooner!

I also added a tag management page so users can rename tags. It has helped me group more tags together into collections, and I’m sure it will help others too.

This work contributed to the v2.4.1 release.

Opengraph images

I finally added Opengraph images to this site today. I used the @vercel/og package so I could automate the process as much as possible.

Here’s an example image:

The source code for the image can be found here

Otter AI titles

One of the AI features the Arc browser recently introduced renames tabs and downloaded files. It is a really small and simple thing but it made me think that Otter could use something similar. When adding new bookmarks, the titles often use very different formatting from one site to the next. This makes it hard to scan the list of bookmarks and find the one you are looking for. It would be nice if Otter could automatically rename the bookmarks to something more consistent.

I also improved the Toast component. I opted to replace the existing Toast component with a new one that is more easy to use called Sonner.

This work contributed to the v2.3.1 Otter release


I added a worklog to my site. I’ve seen a few other folks doing this, and I think it’s a great idea. I’m going to try and keep it up to date with what I’m working on, and what I’ve been up to.

Otter Raycast OAuth

I spent a large chunk of the day trying to integrate Raycast’s OAuth flow into Otter. I got it working, but unfortunately Supabase only supports the managment APIs using OAuth apps, not the data APIs. I’m going to have to use a different approach.

I have the WIP code in two PRs:

Otter v2.1.0 release

This release added a new dashboard view to Otter that shows a some recent items and others from your past. It is intended to allow more frequent review of your past items so they are not lost in the stream. Below is a video of the new dashboard in action.