I’m working on a new search feature in indiebookclub which uses Open Library and supports cover images. It has me tinkering with the UI of the posting form and I’m interested in feedback about this first pass.

My first thought was to display the selected book information in a more compact, read-only block at the top of the form so you only have to select the status (want to read, currently reading, finished reading), then optionally add tags and other choices if you are using Micropub.

However, I still want to give people the option to update the book information before they post, so I was considering a button that would change the book information into editable fields. I experimented with various options and did not come up with anything I loved. I am now leaning towards always showing the fields with the populated values. Keep it simple.

screenshot of new posting UI that has fields: read status, title, by, ISBN, tags, status, visibility, published date, and timezone offset; all displayed in a horizontal layout on a larger screen

Screenshot 1: on larger screens

screenshot of new posting UI with the same fields described above; all displayed in a vertical layout on a smaller screen

Screenshot 2: on smaller screens

I did make the form more compact overall: less padding inside the form fields, less vertical space between them, and a horizontal layout on larger screens (using this WCAG technique). I also moved the timezone offset field out of a collapsed details element.

For comparison, below is a screenshot of the form as it exists. There are still a few parts of it that need to be put into my mockups, like choosing ISBN or DOI.

screenshot of current posting UI with the same fields described above

Screenshot 3: the posting form as it appears currently, for comparison

There will still be an option to use this form without searching Open Library, so if you are using a bookmarklet or prefer to type in all the fields, that will continue to work.

I look forward to any feedback or questions!

#indieweb #dev #indiebookclub
First day with the new grill worked out pretty well!

I once offered gRegor to write up a bookmarklet for turning Bookshop.org book pages into want-to-read (or currently-reading or finished-reading) posts on your own site with Micropub courtest of IndieBookClub.biz.

Then I lost my main computer’s SSD and my browser bookmarks!

Today I re-created it to make some posts on my site, so here it is!

javascript:(function()%7Bconst%20ld%20%3D%20JSON.parse(document.querySelector('script%5Btype%3D%22application%2Fld%2Bjson%22%5D').textContent)%3B%0Aconst%20p%20%3D%20new%20URLSearchParams(%7B%0Atitle%3A%20ld.name%2C%0Aauthors%3A%20ld.author%5B0%5D.name%2C%0Aisbn%3A%20ld.isbn%2C%0Atags%3A%20'books'%2C%0A'post-status'%3A%20'published'%0A%7D)%3B%0Adocument.location%20%3D%20'https%3A%2F%2Findiebookclub.biz%2Fnew%3F'%20%2B%20p.toString()%3B%7D)()

Here’s the original source for study or to edit to your enjoyment! (I enjoy Marek Gibney’s Bookmarklet Editor for this!)

const ld = JSON.parse(document.querySelector('script[type="application/ld+json"]').textContent);
const p = new URLSearchParams({
  title: ld.name,
  authors: ld.author[].name,
  isbn: ld.isbn,
  tags: 'books',
  'post-status': 'published'
});
document.location = 'https://indiebookclub.biz/new?' + p.toString();

What does this do?

Bookshop.org book pages have a <script> tag marked as a “JSON-encoded Linked Data island” (pejorative) also known as JSON data.

The bookmarklet finds and parses this then (quick and dirty) pulls out likely book title, ISBN, and author and combines these with another couple of options (I tag all my reading posts with “books” and I want the posts to be published by default). Those options are turned into URL query string parameters, as described in IndieBookClub.biz’ documentation and sends your browser over there, where IndieBookClub(dot biz) handles the rest!

#IndieWeb #bookmarklets
📕 Finished reading House of Leaves by Mark Z. Danielewski ISBN: 9780375703768
📕 Finished reading Lessons in Magic and Disaster by Charlie Jane Anders ISBN: 9781250867322
📕 Finished reading Discovering Machine Knitting by Kandy Diamond ISBN: 9780719841996
📕 Finished reading Fair Isle by Nic Corrigan ISBN: 9780719841576

Took my daughter and her friend to see noted anti-fascist musical The Sound of Music at Pantages tonight. The nuns are antifa as hell and it rules.

If you had told me Lewis was going to get P2 and Charles P4 heading into the Grand Prix, I would have said you were crazy. What a result — especially for Lewis. Still not looking like a championship is in the cards anytime soon, sadly. #F1

Found a great iOS terminal emulator that supports custom fonts and ligatures. Excellent app. https://apps.apple.com/us/app/moshi-ssh-mosh-terminal/id6757859949

Stack updates

#music #software #commerce

I’m happy that The Boys is finally done. I didn’t love the last few seasons, but I honestly thought the finale was decent, apart from some of the emotional moments that were… poorly executed.

Ran my 14th Bay to Breakers race in 1:57:12 this past Sunday.
Almost 2min behind last year, from needing a 5min+ pitstop at the Panhandle.

I skipped public transport (see previous years), and left at 7am to jog to the start. After ~3.5 miles I found my way to corral A and serendipitously my pal Henri, dressed in the purple grape costume he’s known for.

Beautiful day for a run, cool and sunny blue skies from the start. The South of Market (SoMa) area seemed cleaner than usual which was a nice change.

High-fived the Midnight Runners Raccoon Riot cheergang on Hayes street. Hayes hill was a jog / power hike slog like recent years with a pleasant downhill after. Except by the time I got to Fell street I felt uncomfortable enough to run out to the portapotties and took a while to deal with the discomfort. The prior evening’s dinner out at Thee Parkside was perhaps too much of a change for my system. Novel eats the night before a race a minor rookie mistake.

The parties on Fell Street seemed particularly loud and crowded this year.

Golden Gate Park was beautiful as usual, and I spotted a few November Project San Francisco (NPSF) folks near Blue Heron Lake (formerly known as Stow Lake). We gathered a few more and took photos in front of the Naga Sea Serpent sculpture.

The rest of the race felt like a comfortable downhill til we passed the bison paddock. Normally where the race turns left at the end it turned right to a new southbound finish on Great Highway. Picked up the pace there to finish in 1:57:13 by my watch, only one second off the recorded chip time.

This past week was a step up in running volume over the past few months, ironically a bit of a reverse taper. Including the warmup and race, I ran 29 miles total (Monday through Sunday). That was a big jump from the previous week so I hiked back through Golden Gate park rather than jogging it out.

Last year: https://tantek.com/2025/138/t1/ran-bay-to-breakers

#SanFrancisco #run #runner #race #roadRace #B2B #Bay2Breakers #BayToBreakers #MidnightRunners #NovemberProject #NPSF
#SanFrancisco #run #runner #race #roadRace #B2B #Bay2Breakers #BayToBreakers #MidnightRunners #NovemberProject #NPSF

Google, I Dump Your Ass!

The "Agent Verified" signup flow from WorkOS is exactly what I've been telling the agent platforms they should be doing with Cross App Access! Very cool to see this launch! 👏

https://workos.com/auth-md/docs/flows/verified

"The agent's provider — OpenAI, Anthropic, Cursor, or any trusted agent platform — attests to the user's identity at registration time. Your service verifies the attestation and issues credentials synchronously, no human interaction required."

In Cross App Access terms:

• The "agent platform/provider" is the ID-JAG issuer, because users are already signed in to those platforms when they use agents
• The "service" is the ID-JAG consumer (the Resource AS), and issues an access token if the ID-JAG is trusted and valid

You can test this out in the Cross App Access sandbox today! https://xaa.dev/
#oauth #xaa #ai #okta

It’s the end of an hair-a.

I started growing the facial hair in April 2020 because, hey, why not? I had no idea if I would keep it for long, but fast forward six years and I guess I liked it. I still like it today, but I thought it was time for a change, especially with summer coming.

Prototyped in PLA, sent out for printing in nylon, they turned out great! Now I just have to put this together
The Verge Plex is tripling the price of a lifetime pass to $750 after doubling it last year | The Verge Plex is giving every prospective customer until July 1st to lock in a lifetime subscription at today’s rates —...

On December 27, 2012, I paid Plex $74.99 for a lifetime subscription. Today, I received an email from Plex that they’re raising the price of the subscription to $749.99.

#Photo #Social Stream #Typewriters #life expectancy #Lindy effect #longevity #one typed quote #typecasts #typewriter collecting
my head feels like a blender that has been filled past the "do not fill above" line