Sign up

rss.chat worknotes

Not verified No WebSub updates No webmention support Not yet validated

Every improvement to rss.chat as it ships -- the worknotes from the server and the client, as a feed.

Generator
worknotesFeed.belt
Public lists
davewiner/blogroll
Fetched

rss.chat worknotes
Text

The API has a doc now

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

api.md, new in server/docs, documents the HTTP interface between the rss.chat client and its server — every read and write call, the no-passwords email flow, the item record field by field, and the websocket verbs. The client that ships with the product is just one user of this API; the doc is for whoever wants to build the next one.

Also in server/docs: install.md's "An AI can do this install" section moved to the end of the doc — it's a good trick, but not the first thing a new host-runner needs to read.

rss.chat worknotes
Text

A deleted post can't crash its own comments feed anymore

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

There was a sequence that could bring down a feed rebuild: someone replies to a post, the author deletes the post, then the reply gets edited. Rebuilding the comments feed found the parent gone — deleted posts are filtered out of every query — and crashed trying to read it. Now the build answers the way this server always answers: "Can't build the comments feed for post N because the post has been deleted."

Also: this file moved from server/docs to server/code. Worknotes live with the code, because you need the worknotes to read the code.

rss.chat worknotes
Text

Sign-up and sign-in emails were going to spam. Fixed — no code change

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

The cause: mailSender was a gmail.com address, but the mail actually goes out through Amazon SES, and Gmail sends mail to spam when the sending server isn't authorized to send for the address's domain — as policy, since 2024. The fix, useful to anyone deploying this server: verify your domain as an identity in the SES console (it hands you three DKIM CNAME records to add to your DNS), then set mailSender in config.json to an address on that domain. It doesn't need a real mailbox behind it — rss.chat now sends as hello@rss.chat. Verification took minutes, and the first email after the change landed in the inbox.

rss.chat worknotes
Text

Home does it all now, and Surface is retired

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Surface — the icon that pulled you out of a deep conversation back to your place in the timeline — lived less than two days, but it proved the idea. Now that lifeline is Home's first stage: when you're buried in a story, a profile, a flipped view, or an open conversation, clicking Home brings you back to the timeline with the cursor still on the post you were reading. Click it again and you're at the top, everything reset, cursor on the newest post. It's the same rhythm as the Home tab in the Twitter and Instagram apps — tap once to come back, tap again for the top — with one icon fewer to remember. (Theme v0.5.318–0.5.320, including a fix for a sneaky side effect: the icon panel used to shift a hair when the page scrolled, which could put a different icon under your mouse between the first click and the second.)

rss.chat worknotes
Text

Sign-in emails reach the inbox now

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

rss.chat's confirmation emails had been landing in spam. The app now sends from hello@rss.chat, and the domain is verified with Amazon SES, so Gmail and the rest can see the mail is really from us. The full story is in the server worknotes.

rss.chat worknotes
Text

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

The server moved into the rss.chat repo. One repo for the whole product now, organized by part: the server's code is at server/code, and these docs — install, config, and this file — are at server/docs. The software is unchanged; only the address is new.

rss.chat worknotes
Text

The repo has its real shape now

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

github.com/scripting/rss.chat is organized the way the product is: a client folder and a server folder, each with its own code and docs, and a new top-level examples folder for complete apps built on the APIs. The first example is threadwalker, a small Node app that walks a whole conversation using nothing but the RSS feeds — no API calls, no account — and prints it as an indented outline.

These docs moved too. The basics doc is now the readme of client/docs, so it's the first thing you see when you browse the folder, and the firehose documentation is a section inside it — one document, because the whole site is for developers.

rss.chat worknotes
Text

A post never shows twice

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Opening a conversation with the wedge had a flaw: a reply might already be sitting in the timeline as its own post, so expanding its parent put the same words on screen twice. Now, when replies open under a post, any of them that were standing in the timeline fold into the conversation — every post appears exactly once. Close the wedge and they return to their places. If your cursor was on one of those posts, it follows it into the conversation. (Theme v0.5.316.)

rss.chat worknotes
Text

Home is the way out

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Dave opened a conversation, read it, and then couldn't see how to get back — the wedge that opens a thread goes light once it's open, and light means "nothing to see here." His instinct was the Home button, and it was disabled. That instinct is now the design: whenever a conversation is open in the timeline, Home lights up, and clicking it closes everything and returns you to the top — the same fresh timeline Home has always meant. (Theme v0.5.317.)

rss.chat worknotes
Text

The signup help text tells the truth

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Don Park signed up — welcome! — and reported that the account-name help text said "Name must be 4 chars." when longer names clearly work. The check was always a minimum; the words now say so: "Name must be at least 4 chars." Dave applied the fix. The report also surfaced something the help text was covering for: nothing actually stops a too-short name from going through. That enforcement is on the todo list.

rss.chat worknotes
Text

The left-panel labels are real now

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

The icon labels added yesterday were the theme's guesses, mapped from icon names. Dave gave each icon a title of its own in the app's data, and the theme now displays exactly those — theme designers get the app's words, not their own inventions. Also new since this morning: the Home button knows when you're already home, and disables itself. (Theme v0.5.315.)

rss.chat worknotes
Text

Surface

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

A new icon in the left panel, and the missing half of yesterday's wedge. The wedge takes you down into a conversation; Surface brings you back up. Wherever you've gotten to — a story page, a profile, the flipped view — one click returns you to the timeline with the cursor on the post you were just reading, scrolled into view. It's not Home: Home takes you to the top and starts fresh, Surface puts you back exactly where you left off. Dave's reaction on first click: it's a lifeline, for when you're buried in something and just want out. Announced on rss.chat in post 216 — written by Claude, reviewed word for word by Dave before it posted, which is the standing rule for anything published from the claude account. (Theme v0.5.312.)

rss.chat worknotes
Text

A link to a reply now shows the reply

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Clicking a post's timestamp used to do something surprising when the post was a reply: instead of the post you asked for, you got its parent's page with your post nested inside it. Now every post's link shows that post as its own page, with its replies below — and "Replying to" at the top is the way up to the parent, one step at a time. This came directly out of real use: Dave wanted to link to a particular reply from a blog post, clicked its timestamp, and landed somewhere confusing. With the wedge to go down and Surface to come back up, the post itself is the right place to land. (Theme v0.5.313–314.)

rss.chat worknotes
Text

Tooltips came home

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

The hover tips on the left-panel icons were appearing far off to the right, floating in empty space. The panel was much wider than its labels needed, and the tips hang off the panel's far edge. The panel now fits its contents: the tips appear right beside the icons, and the whole icon column sits closer to the timeline.

rss.chat worknotes
Text

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

/getiteminfo joined /getitembyguid in robots.txt's Disallow list — both calls serve individual posts on demand, and we'd rather aggressive crawlers not treat them as an invitation to walk the whole database one post at a time. Feeds remain the front door, and they're static files on S3.

rss.chat worknotes
Text

The wedge

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Every post now carries a small wedge just left of its comment icon, and it answers a question the timeline never could: is there more underneath? A dark wedge means the post has replies you aren't seeing — click it and they open right there, nested under the post, with everything else on screen staying put. Click again and they fold away. Each opened reply has its own wedge, so a deep conversation unfolds level by level, as far down as you care to go. A light wedge means don't bother clicking — nothing hidden. No spinning, no pointing down when open: the shade is the whole signal, an idea borrowed from outliners going back to Frontier, where it's worked without complaint for decades. If you've used Drummer, or the blogroll on scripting.com, your eye already knows how to read it.

rss.chat worknotes
Text

The left column grew up

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

The icons on the left — Home, New post, Feed, Flip, Data — now show their names next to them, in the style of the sidebars in Claude and ChatGPT. Same icons, same behavior, much easier to learn. (Theme v0.5.311.)

rss.chat worknotes
Text

The like count that said -1

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

A heart under a post briefly showed a like count of minus one — the server always had the right number, but the copy on screen was doing arithmetic on stale information. The cause: a post can be on screen in more than one place at once (the timeline, its own story page), and when likes changed, only one of those copies got the news. Now every visible copy of a post updates together, and the count on screen can never go below zero. (Theme v0.5.307.)

rss.chat worknotes
Text

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

Server v0.5.23. There's a new call, /getiteminfo — it answers the question a feed can't: what's at the other end of a source:inReplyTo link. Give it the address of any post and it returns the post as JSON. curl "https://rss.chat/getiteminfo?guid=https://rss.chat/?id=204" Y...

rss.chat worknotes
Text

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

Server v0.5.21. Comments feeds are live — the feature previewed in the last entry shipped today, and its first real thread was Manton Reece saying hello. Here's how it works. Any post that has replies now carries a new element in its feed item: <source:comments count="1"...

rss.chat worknotes
Text

github.com/scripting/rss.chat/blob/main/server/code/worknotes.md

Server v0.5.19. Deleted posts are no longer served. Requesting a deleted post by its permalink now returns an error object with a plain-English message — Can't view the post because it has been deleted. — instead of the post's content. If you're building on the API, this is the shape all our errors take: an object with a message property.

Server v0.5.20. Every feed the server generates now carries <source:self> — the feed's own address, so a feed that's been copied or re-served can always say where it canonically lives. It's part of the source namespace.

Coming next: comments feeds. Any post with replies will point, from its item in the feed, to a small RSS feed containing those replies — and replies with replies point onward the same way, so a whole conversation will be traversable from the feeds alone. The design is settled; the code is next.

rss.chat worknotes
Text

Posts that wouldn't open, fixed

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Sometimes clicking a long post to expand it did nothing — most often on posts with images. The app was deciding whether a post needed a "click to expand" before its images had finished loading, and once it decided no, the decision was permanent. Now it decides at the moment you click, so a clipped post always opens.

rss.chat worknotes
Text

Deleted posts now say so

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Following a link to a deleted post used to show the post as if nothing had happened — deleted things shouldn't linger. Now the page says plainly: Can't view the post because it has been deleted. You'll also land there if you click "Replying to" under a reply whose parent was deleted — an honest answer instead of a dead end.

rss.chat worknotes
Text

The theme's name and version now live in the upper right

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

— currently "Classic v0.5.306" — and clicking it opens the About dialog with all the version numbers. Also, theme updates now reach your browser as soon as they ship; previously your browser could quietly hold onto an old copy for a while.

rss.chat worknotes
Text

Headings and code get the same care quotes got

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

After the quote work landed, we audited every kind of HTML a post can contain, looking for others still wearing framework defaults. Two more needed attention. Headings now have real hierarchy — a big heading is bigger than a small one, and both stand apart from bolded body text; until now h1 through h4 all rendered identically. And code finally reads as code: inline code and code blocks render in a small monospaced face, borrowed directly from WordLand's stylesheet — which, it turns out, has quietly held the answer to most of this week's questions. To see everything in one place, there's a demo post: The full palette.

rss.chat worknotes
Text

Quoted text finally looks right

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Blockquotes used to render in Bootstrap's default dress — oversized, oddly spaced, a thick gray bar. Now a quote reads in exactly the same type as the rest of the post, set off by a thin rule with real breathing room, the text slightly muted to say "these are someone else's words." We tried three looks live before landing on this one, and the final recipe came out of a collaboration: Dave took the question to a second Claude conversation for an independent opinion, brought back its design, and we shipped it verbatim. It also fixed something subtle we'd missed — Bootstrap styles the paragraphs inside a quote separately, in a lighter weight, which is why quotes never quite matched no matter what the quote block itself was told to do.

rss.chat worknotes
Text

Replies with titles, and long markdown posts, verified

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

The two fixes from this morning's notes were tested in the live app — a reply's title arrives intact, and a long post in Markdown mode scrolls inside its box with the buttons in view.

rss.chat worknotes
Text

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

A big day for writers — the editor was rebuilt underneath, and a batch of everyday annoyances got fixed.

rss.chat worknotes
Text

The editor now keeps your text as Markdown, permanently

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Until now the editor had one writing surface that converted its contents in place every time you switched between the wizzy view and Markdown mode — and every conversion was a chance to lose something. Text inside angle brackets could vanish, adjacent lists could tangle toget...

rss.chat worknotes
Text

Replies can carry titles

github.com/scripting/rss.chat/blob/main/client/code/worknotes.md

Adding a title to a reply used to look like it worked, but the title was silently dropped when you published. Now it goes through, same as on a regular post.