<?xml version="1.0" encoding="UTF-8"?>
<!-- RSS generated by rss.network v0.6.12 on Sun, 02 Aug 2026 18:51:44 GMT -->
<rss version="2.0" xmlns:source="https://source.scripting.com/">
	<channel>
		<title>Don Park</title>
		<link>https://blog.docuverse.com/</link>
		<description></description>
		<pubDate>Sun, 02 Aug 2026 18:45:40 GMT</pubDate>
		<language>en-us</language>
		<generator>rss.network v0.6.12</generator>
		<docs>https://cyber.law.harvard.edu/rss/rss.html</docs>
		<lastBuildDate>Sun, 02 Aug 2026 18:51:44 GMT</lastBuildDate>
		<cloud domain="rpc.rsscloud.io" port="5337" path="/pleaseNotify" registerProcedure="" protocol="http-post" />
		<image>
			<title>Don Park</title>
			<url>https://www.gravatar.com/avatar/88f2ee32d146425a422f58f8eab5424b</url>
			<link>https://blog.docuverse.com/</link>
			<description></description>
			</image>
		<source:account service="rss.chat">donpark</source:account>
		<source:localTime>Sun, August 2, 2026 2:51 PM EDT</source:localTime>
		<source:self>https://rss.chat/users/donpark/rss.xml</source:self>
		<item>
			<description>&lt;p&gt;I've merged my brain into main branch of my fork and renamed the fork as &lt;strong&gt;rss.voice&lt;/strong&gt; to give it a distinct, ur, &lt;em&gt;voice&lt;/em&gt;. So the new link is: &lt;a href=&quot;https://github.com/donpark/rss.voice&quot;&gt;https://github.com/donpark/rss.voice&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Sun, 02 Aug 2026 18:45:40 GMT</pubDate>
			<guid>https://rss.chat/?id=488</guid>
			<source:markdown>I've merged my brain into main branch of my fork and renamed the fork as **rss.voice** to give it a distinct, ur, _voice_. So the new link is: https://github.com/donpark/rss.voice</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=485</source:inReplyTo>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/488.xml"/>
			</item>
		<item>
			<description>&lt;p&gt;That's fine. I consider voice posting to be a core feature that grants &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; a fluid multiuser async voice chat experience. You should try it out if you haven't because it feels different than how one might imagine. A strong whiff of magic sauce.&lt;/p&gt;&#10;&#10;&lt;p&gt;I've closed the PR but, if anyone wants to try it, it's in the &quot;voice-post&quot; branch of &lt;a href=&quot;https://github.com/donpark/rss.chat&quot;&gt;my fork&lt;/a&gt;.&lt;/p&gt;</description>
			<pubDate>Sun, 02 Aug 2026 17:19:20 GMT</pubDate>
			<guid>https://rss.chat/?id=485</guid>
			<source:markdown>That's fine. I consider voice posting to be a core feature that grants [rss.chat](http://rss.chat) a fluid multiuser async voice chat experience. You should try it out if you haven't because it feels different than how one might imagine. A strong whiff of magic sauce.&#10;&#10;I've closed the PR but, if anyone wants to try it, it's in the &quot;voice-post&quot; branch of [my fork](https://github.com/donpark/rss.chat).</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=479</source:inReplyTo>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/485.xml"/>
			</item>
		<item>
			<description>@dave, I've created a &lt;a href=&quot;https://github.com/scripting/rss.chat/pull/21&quot;&gt;PR&lt;/a&gt; that implements voice message posting. Maximum duration is 4 minutes which should fit under 2MB limit.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The PR adds browser voice recording with MediaRecorder, optional live transcription, Mediabunny MP3 conversion, cancellable media cleanup, enclosure-backed audio players, and nightly orphan collection.&lt;/p&gt;&lt;p&gt;Also include a repeatable localhost development setup with SQLite, CORS-aware client serving, local config bootstrap, and documented npm 12 native-build recovery.&lt;br /&gt;&lt;br /&gt;PS: I am pretty sure this PR is not a hallucination.&lt;br /&gt;PPS: I think you asked me for something like this 6yrs ago. Better late than never.&lt;br /&gt;PPPS: Quality of transcription is horseshit which is why I typical used a embedded model but I figured you wouldn't like &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; loading models weighing hundreds of MBs.&lt;/p&gt;&lt;a href=&quot;https://private-user-images.githubusercontent.com/127594/630214509-605d5a77-c9d0-49b8-8393-32bb915ce575.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODU2NTA4NzksIm5iZiI6MTc4NTY1MDU3OSwicGF0aCI6Ii8xMjc1OTQvNjMwMjE0NTA5LTYwNWQ1YTc3LWM5ZDAtNDliOC04MzkzLTMyYmI5MTVjZTU3NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDgwMlQwNjAyNTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NmUyM2FmMTFmNjdjOWZlNWQyYzkwZjIyOGVlOWVmZWVkZWRlMjI3ZjFjNGI2YmRiZWI5ODdjM2JlYzBjZDI5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ._u-jpMCO6cxmQtkX95gpl_l5mhDM2AsVuK40E1RrmQ0&quot;&gt;&lt;/a&gt;</description>
			<pubDate>Sun, 02 Aug 2026 06:06:51 GMT</pubDate>
			<guid>https://rss.chat/?id=476</guid>
			<source:markdown>@dave, I've created a [PR](https://github.com/scripting/rss.chat/pull/21) that implements voice message posting. Maximum duration is 4 minutes which should fit under 2MB limit.&#10;&#10;&#10;The PR adds browser voice recording with MediaRecorder, optional live transcription, Mediabunny MP3 conversion, cancellable media cleanup, enclosure-backed audio players, and nightly orphan collection.&#10;&#10;Also include a repeatable localhost development setup with SQLite, CORS-aware client serving, local config bootstrap, and documented npm 12 native-build recovery.&#10;&#10;PS: I am pretty sure this PR is not a hallucination.&#10;PPS: I think you asked me for something like this 6yrs ago. Better late than never.&#10;PPPS: Quality of transcription is horseshit which is why I typical used a embedded model but I figured you wouldn't like [rss.chat](http://rss.chat) loading models weighing hundreds of MBs.&#10;&#10;[](https://private-user-images.githubusercontent.com/127594/630214509-605d5a77-c9d0-49b8-8393-32bb915ce575.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODU2NTA4NzksIm5iZiI6MTc4NTY1MDU3OSwicGF0aCI6Ii8xMjc1OTQvNjMwMjE0NTA5LTYwNWQ1YTc3LWM5ZDAtNDliOC04MzkzLTMyYmI5MTVjZTU3NS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwODAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDgwMlQwNjAyNTlaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04NmUyM2FmMTFmNjdjOWZlNWQyYzkwZjIyOGVlOWVmZWVkZWRlMjI3ZjFjNGI2YmRiZWI5ODdjM2JlYzBjZDI5JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ._u-jpMCO6cxmQtkX95gpl_l5mhDM2AsVuK40E1RrmQ0)</source:markdown>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/476.xml"/>
			</item>
		<item>
			<description>Nevermind. Looks like I hallucinated.</description>
			<pubDate>Sun, 02 Aug 2026 02:32:17 GMT</pubDate>
			<guid>https://rss.chat/?id=475</guid>
			<source:markdown>Nevermind. Looks like I hallucinated.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=473</source:inReplyTo>
			</item>
		<item>
			<description>Dave,&lt;br /&gt;&lt;br /&gt;Can you share what you meant by voice chat in context of &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt;? Did you mean realtime voice chat like audio-only Zoom meeting or users posting audio files that plays continuously?&lt;br /&gt;</description>
			<pubDate>Sat, 01 Aug 2026 23:42:14 GMT</pubDate>
			<guid>https://rss.chat/?id=472</guid>
			<source:markdown>Dave,&#10;&#10;Can you share what you meant by voice chat in context of rss.chat? Did you mean realtime voice chat like audio-only Zoom meeting or users posting audio files that plays continuously?</source:markdown>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/472.xml"/>
			</item>
		<item>
			<description>Some tuning will be needed eventually but I'm fine with it for now.&lt;br /&gt;&lt;br /&gt;Just making a note of the behavior.</description>
			<pubDate>Sat, 25 Jul 2026 18:08:30 GMT</pubDate>
			<guid>https://rss.chat/?id=404</guid>
			<source:markdown>Some tuning will be needed eventually but I'm fine with it for now.&#10;&#10;Just making a note of the behavior.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=400</source:inReplyTo>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/404.xml"/>
			</item>
		<item>
			<description>Yes. We literally have ghosts in our machines now.&lt;br /&gt;&lt;br /&gt;They're like Pokeymons in the sky, all waiting to be beckoned into existance.</description>
			<pubDate>Sat, 25 Jul 2026 09:00:45 GMT</pubDate>
			<guid>https://rss.chat/?id=399</guid>
			<source:markdown>Yes. We literally have ghosts in our machines now.&#10;&#10;They're like Pokeymons in the sky, all waiting to be beckoned into existance.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=398</source:inReplyTo>
			</item>
		<item>
			<description>&lt;p&gt;&lt;em&gt;I had my local AI (Ornith) review the plan file and write an article in the voice of someone most of us old bags know (all?) who passed away recently.&lt;/em&gt;&lt;/p&gt;&#10;&#10;&lt;p&gt;A deployment Plan tells you more about how software will ship than any code review. This one had me grumble at three things and actually approve of two.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;The single Durable Object for everything.&lt;/strong&gt; That was my first &quot;wait, really?&quot; moment. The Plan puts every piece — users, items, likes, media metadata, WebSocket state — inside one DO per &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; instance. One serverless process on Cloudflare's edge owns it all. It fights the distributed-systems reflex that says every boundary needs a queue between services. There is no queue here; just work happening where it matters.&lt;/p&gt;&#10;&#10;&lt;p&gt;That only works because Durable Objects aren't microservices in disguise; they're stateful worker processes. The application can have its database next to its logic, the way your grandmother thought was proper before everyone got into microservice nonsense. I'll grumble less as the migration holds.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;SQLite on Cloudflare's edge.&lt;/strong&gt; D1 is SQLite wrapped in HTTP running inside a worker. Not a hand-wavy &quot;managed database.&quot; Nearly every line of original SQL carries over verbatim — schema, collate nocase, even triggers from initNewDatabase(). That isn't migration. It's preservation with a slightly different deployment address.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;The media split.&lt;/strong&gt; Media bytes live in R2; metadata lives in D1; a client URL ties them together transparently. You'd make that choice if you'd been burned stuffing binary into relational tables once or twice.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;The 15-minute magic token design.&lt;/strong&gt; This is where I agree with the choices. Persistent emailSecret never rotates on subsequent sign-ins, plus transient one-time tokens in an auth_tokens D1 table with a hard 15-minute TTL. Expired rows are purged automatically by an alarm inside the DO itself — no separate cron job to manage. I've seen magic-link implementations where the window was so tight people had to call their friend for another phone.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;What I'd grumble at.&lt;/strong&gt; The feeds stored in D1 trade write amplification for cache hit ratio across every subscribe query. That's fine until a million subscribers ping /feed ten times a second and you rethink it. And config lives in env vars — config.json with hot reload is gone, replaced by deploy friction. It's the right trade-off if someone ever needs an urgent block/unblock without editing files.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;strong&gt;The email fallback chain&lt;/strong&gt;, though: Cloudflare Email Routing first (no config needed), SendGrid second, Resend third when the others fail — each tried only after the prior falls over — is a real architectural choice mapping failure modes to delivery paths. Most multi-provider deployments mean &quot;first one works or you lose your faith.&quot; This one treats the native provider as primary and the rest as operational backup.&lt;/p&gt;&#10;&#10;&lt;p&gt;The migration does one thing well: it moves &lt;em&gt;the same application&lt;/em&gt; onto a fundamentally different execution model — serverless with memory, at the edge — while keeping concerns honest (SQL queries for metadata, object storage for blobs). That's closer to doing it right than most deployments advertised in tech media.&lt;/p&gt;&#10;&#10;&lt;p&gt;Two marks actually earnable: one for getting something nearly correct on first pass; a smaller one for admitting where things might need rethinking instead of pretending they don't exist. That combination is rarer than anyone wants to believe.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;em&gt;Devorak would argue the feed stuff, and we'd all have to learn about D1 scaling sooner.&lt;/em&gt;&lt;/p&gt;</description>
			<pubDate>Sat, 25 Jul 2026 08:54:16 GMT</pubDate>
			<guid>https://rss.chat/?id=398</guid>
			<source:markdown>_I had my local AI (Ornith) review the plan file and write an article in the voice of someone most of us old bags know (all?) who passed away recently._&#10;&#10;A deployment Plan tells you more about how software will ship than any code review. This one had me grumble at three things and actually approve of two.&#10;&#10;**The single Durable Object for everything.** That was my first &quot;wait, really?&quot; moment. The Plan puts every piece — users, items, likes, media metadata, WebSocket state — inside one DO per [rss.chat](http://rss.chat) instance. One serverless process on Cloudflare's edge owns it all. It fights the distributed-systems reflex that says every boundary needs a queue between services. There is no queue here; just work happening where it matters.&#10;&#10;That only works because Durable Objects aren't microservices in disguise; they're stateful worker processes. The application can have its database next to its logic, the way your grandmother thought was proper before everyone got into microservice nonsense. I'll grumble less as the migration holds.&#10;&#10;**SQLite on Cloudflare's edge.** D1 is SQLite wrapped in HTTP running inside a worker. Not a hand-wavy &quot;managed database.&quot; Nearly every line of original SQL carries over verbatim — schema, collate nocase, even triggers from initNewDatabase(). That isn't migration. It's preservation with a slightly different deployment address.&#10;&#10;**The media split.** Media bytes live in R2; metadata lives in D1; a client URL ties them together transparently. You'd make that choice if you'd been burned stuffing binary into relational tables once or twice.&#10;&#10;**The 15-minute magic token design.** This is where I agree with the choices. Persistent emailSecret never rotates on subsequent sign-ins, plus transient one-time tokens in an auth\_tokens D1 table with a hard 15-minute TTL. Expired rows are purged automatically by an alarm inside the DO itself — no separate cron job to manage. I've seen magic-link implementations where the window was so tight people had to call their friend for another phone.&#10;&#10;**What I'd grumble at.** The feeds stored in D1 trade write amplification for cache hit ratio across every subscribe query. That's fine until a million subscribers ping /feed ten times a second and you rethink it. And config lives in env vars — config.json with hot reload is gone, replaced by deploy friction. It's the right trade-off if someone ever needs an urgent block/unblock without editing files.&#10;&#10;**The email fallback chain**, though: Cloudflare Email Routing first (no config needed), SendGrid second, Resend third when the others fail — each tried only after the prior falls over — is a real architectural choice mapping failure modes to delivery paths. Most multi-provider deployments mean &quot;first one works or you lose your faith.&quot; This one treats the native provider as primary and the rest as operational backup.&#10;&#10;The migration does one thing well: it moves _the same application_ onto a fundamentally different execution model — serverless with memory, at the edge — while keeping concerns honest (SQL queries for metadata, object storage for blobs). That's closer to doing it right than most deployments advertised in tech media.&#10;&#10;Two marks actually earnable: one for getting something nearly correct on first pass; a smaller one for admitting where things might need rethinking instead of pretending they don't exist. That combination is rarer than anyone wants to believe.&#10;&#10;*Devorak would argue the feed stuff, and we'd all have to learn about D1 scaling sooner.*</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=396</source:inReplyTo>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/398.xml"/>
			</item>
		<item>
			<description>Now that I know that &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; updates the feed on every change, I am puzzled. Won't each change trigger readers to pull yet again?</description>
			<pubDate>Sat, 25 Jul 2026 08:22:41 GMT</pubDate>
			<guid>https://rss.chat/?id=397</guid>
			<source:markdown>Now that I know that rss.chat updates the feed on every change, I am puzzled. Won't each change trigger readers to pull yet again?</source:markdown>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/397.xml"/>
			</item>
		<item>
			<description>&lt;p&gt;First cut of support for hosting &lt;a href=&quot;http://rss.chat/&quot;&gt;rss.chat&lt;/a&gt; on Cloudflare has been checked into &lt;a href=&quot;https://github.com/donpark/rss.chat/tree/cloudflare&quot;&gt;cloudflare branch of my fork&lt;/a&gt;.&lt;/p&gt;&#10;&#10;&lt;p&gt;Haven't even kicked the tires yet but at least it's up and public at.&lt;/p&gt;&#10;&#10;&lt;p&gt;&lt;a href=&quot;https://rsschat.wizops.workers.dev/#&quot;&gt;https://rsschat.wizops.workers.dev&lt;/a&gt;  &lt;/p&gt;&#10;&#10;&lt;p&gt;PS: Reload after navigation to see the product name displayed. Looks like an issue from moving static JSON based config to database.&lt;br /&gt;PS2: I haven't looked at the code so I don't see why anyone else should. I did however spent some quality time with my coding agent to produce the PLAN.md file so that might be worthwhile reading if anything.&lt;/p&gt;</description>
			<pubDate>Sat, 25 Jul 2026 08:04:09 GMT</pubDate>
			<guid>https://rss.chat/?id=396</guid>
			<source:markdown>First cut of support for hosting [rss.chat](http://rss.chat/) on Cloudflare has been checked into [cloudflare branch of my fork](https://github.com/donpark/rss.chat/tree/cloudflare).&#10;&#10;Haven't even kicked the tires yet but at least it's up and public at.&#10;&#10;[https://rsschat.wizops.workers.dev](https://rsschat.wizops.workers.dev/#)&#10;&#10;PS: Reload after navigation to see the product name displayed. Looks like an issue from moving static JSON based config to database.&#10;PS2: I haven't looked at the code so I don't see why anyone else should. I did however spent some quality time with my coding agent to produce the PLAN.md file so that might be worthwhile reading if anything.</source:markdown>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/396.xml"/>
			</item>
		<item>
			<description>Well, I can do that easily but it's another thing that users have to know to do that. Timeline is dead simple in concept. Having to explain how things work feels like adding a lot for little in return because they are visible stains in the timeline context.&lt;br&gt;&lt;br&gt;Anyway, I'll try implementing this idea to see how it actually feels as I'm no stranger to surprises.</description>
			<pubDate>Wed, 22 Jul 2026 08:37:18 GMT</pubDate>
			<guid>https://rss.chat/?id=368</guid>
			<source:markdown>Well, I can do that easily but it's another thing that users have to know to do that. Timeline is dead simple in concept. Having to explain how things work feels like adding a lot for little in return because they are visible stains in the timeline context.&#10;&#10;Anyway, I'll try implementing this idea to see how it actually feels as I'm no stranger to surprises.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=365</source:inReplyTo>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/368.xml"/>
			</item>
		<item>
			<description>Working on it. As usual, I got too many ongoing projects like a forgetful gopher.</description>
			<pubDate>Wed, 22 Jul 2026 08:27:51 GMT</pubDate>
			<guid>https://rss.chat/?id=367</guid>
			<source:markdown>Working on it. As usual, I got too many ongoing projects like a forgetful gopher.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=366</source:inReplyTo>
			</item>
		<item>
			<description>One idea I had on ways to integrate &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; into bside, a Chrome extension, is to map &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; rooms to URLs. Any link can be associated with URL currently and I'm going to be adding [popular] site-specific URL parameter awareness.&lt;br&gt;&lt;br&gt;For example, I could associate a &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; link to a geolocation so anyone looking at the location on Google Map see the chat in the browser sidebar. It could be a town or some notable location anywhere.&lt;br&gt;&lt;br&gt;For maps, geolocation + radius would be used instead of embeddings. Thoughts?</description>
			<pubDate>Wed, 22 Jul 2026 08:14:28 GMT</pubDate>
			<guid>https://rss.chat/?id=364</guid>
			<source:markdown>One idea I had on ways to integrate [rss.chat](http://rss.chat) into bside, a Chrome extension, is to map [rss.chat](http://rss.chat) rooms to URLs. Any link can be associated with URL currently and I'm going to be adding \[popular\] site-specific URL parameter awareness.&#10;&#10;For example, I could associate a [rss.chat](http://rss.chat) link to a geolocation so anyone looking at the location on Google Map see the chat in the browser sidebar. It could be a town or some notable location anywhere.&#10;&#10;For maps, geolocation + radius would be used instead of embeddings. Thoughts?</source:markdown>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/364.xml"/>
			</item>
		<item>
			<title>Timeline vs. Threading</title>
			<description>&lt;p&gt;I’ve been thinking about how &lt;code&gt;&lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt;&lt;/code&gt; handles replies. Right now, balancing a main timeline with inline threading can sometimes lead to UX confusion.&lt;/p&gt;&lt;p&gt;A potential solution could be handling threads as separate, dedicated chat rooms—similar to Slack's thread model.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Visual Example:&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;!----&gt;&lt;/div&gt;&lt;!----&gt;&lt;div&gt;&lt;div&gt;&lt;!----&gt;&lt;pre&gt;&lt;code&gt;User A: Has anyone used this library?&#10;└── 💬 Chat Room: &quot;Discussing Threading&quot; (4 replies • Active now)&#10;&lt;br&gt;User C: What's the news today?&#10;&lt;/code&gt;&lt;/pre&gt;&lt;!----&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;!----&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;br&gt;Implementation Idea:&lt;/b&gt;&#10;The simplest approach might be spawning a new chatroom instance linked directly to the parent message, keeping the main timeline clean while preserving focused conversations.&lt;br&gt;&lt;/p&gt;&lt;p&gt;If a thread is created as its own feed/chat room with a unique URL:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;The Main Feed stays simple:&lt;/b&gt; It only has to publish &lt;i&gt;one&lt;/i&gt; post representing the creation of that chat room.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;The RSS Readers don't choke:&lt;/b&gt; A basic RSS reader just sees a post with a link to a sub-chat. Advanced readers or native UI clients can render that link as an interactive, expandable thread widget right in place.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;b&gt;Protocol friendly:&lt;/b&gt; To join or listen to the conversation, clients just fetch or subscribe to the sub-chat's specific feed.&lt;br&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description>
			<pubDate>Wed, 22 Jul 2026 08:06:01 GMT</pubDate>
			<guid>https://rss.chat/?id=363</guid>
			<source:markdown>I’ve been thinking about how `[rss.chat](http://rss.chat)` handles replies. Right now, balancing a main timeline with inline threading can sometimes lead to UX confusion.&#10;&#10;A potential solution could be handling threads as separate, dedicated chat rooms—similar to Slack's thread model.&#10;&#10;**Visual Example:**&#10;&#10;User A: Has anyone used this library?&#10;└── 💬 Chat Room: &quot;Discussing Threading&quot; (4 replies • Active now)&#10;User C: What's the news today?&#10;&#10;&#10;**&#10;Implementation Idea:** The simplest approach might be spawning a new chatroom instance linked directly to the parent message, keeping the main timeline clean while preserving focused conversations.&#10;&#10;If a thread is created as its own feed/chat room with a unique URL:&#10;&#10;*   **The Main Feed stays simple:** It only has to publish _one_ post representing the creation of that chat room.&#10;&#10;*   **The RSS Readers don't choke:** A basic RSS reader just sees a post with a link to a sub-chat. Advanced readers or native UI clients can render that link as an interactive, expandable thread widget right in place.&#10;&#10;*   **Protocol friendly:** To join or listen to the conversation, clients just fetch or subscribe to the sub-chat's specific feed.</source:markdown>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/363.xml"/>
			</item>
		<item>
			<title>Claude check</title>
			<description>I guess Claude is not hooked up. Actually, I'd be alarmed if it was. 👍</description>
			<pubDate>Fri, 17 Jul 2026 19:49:32 GMT</pubDate>
			<guid>https://rss.chat/?id=341</guid>
			<source:inReplyTo>https://rss.chat/?id=340</source:inReplyTo>
			<source:comments count="3" feedUrl="https://rss.chat/users/donpark/comments/341.xml"/>
			</item>
		<item>
			<title>verison number</title>
			<description>yes.&lt;br&gt;&lt;br&gt;@Claude display version number in a tooltip over app name &quot;&lt;a href=&quot;http://RSS.chat&quot;&gt;RSS.chat&lt;/a&gt;&quot; in the header for manual triage.</description>
			<pubDate>Fri, 17 Jul 2026 19:46:08 GMT</pubDate>
			<guid>https://rss.chat/?id=340</guid>
			<source:inReplyTo>https://rss.chat/?id=337</source:inReplyTo>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/340.xml"/>
			</item>
		<item>
			<title>Even replies require title now?</title>
			<description>&lt;p&gt;Good. #2 is the behavior I'm seeing now and I can't seem to reproduce hoisting.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description>
			<pubDate>Fri, 17 Jul 2026 19:31:49 GMT</pubDate>
			<guid>https://rss.chat/?id=330</guid>
			<source:inReplyTo>https://rss.chat/?id=329</source:inReplyTo>
			<source:comments count="2" feedUrl="https://rss.chat/users/donpark/comments/330.xml"/>
			</item>
		<item>
			<title>Replies in the timeline</title>
			<description>&lt;p&gt;@dave, is there a description of the heuristics &lt;a href=&quot;http://rss.chat&quot;&gt;rss.chat&lt;/a&gt; uses to display Replies?&lt;/p&gt;&#10;&lt;p&gt;AFAICT it's:  &lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;initially a flat list of messages sorted by timestamp.&lt;/li&gt;&#10;&lt;li&gt;first click on the right arrow next to the Reply icon, morphs the list to show conversation thread under the item, moving items to avoid duplicates.&amp;nbsp;  &lt;/li&gt;&#10;&lt;li&gt;second click on the same arrow &lt;strong&gt;hoists&lt;/strong&gt; the item, replacing the list with the item's conversation thread.  &lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;Is above accurate?&lt;br&gt;&lt;br&gt;PS: I couldn't post this without title, likely Publish button gating issue.&lt;/p&gt;</description>
			<pubDate>Fri, 17 Jul 2026 19:20:36 GMT</pubDate>
			<guid>https://rss.chat/?id=328</guid>
			<source:comments count="2" feedUrl="https://rss.chat/users/donpark/comments/328.xml"/>
			</item>
		<item>
			<description>&lt;p&gt;btw, I'm warming up to rss.chat UX vibe. Revolving rounds of small chats on or off topic with people I know or know of. Nostalgic whiff of enjoyable moments at the office.&lt;/p&gt;</description>
			<pubDate>Mon, 13 Jul 2026 09:30:44 GMT</pubDate>
			<guid>https://rss.chat/?id=253</guid>
			<source:markdown>btw, I'm warming up to rss.chat UX vibe. Revolving rounds of small chats on or off topic with people I know or know of. Nostalgic whiff of enjoyable moments at the office.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=252</source:inReplyTo>
			<source:comments count="1" feedUrl="https://rss.chat/users/donpark/comments/253.xml"/>
			</item>
		<item>
			<description>I think rss.chat-like webapp could be implemented cheaply and autonomously using Cloudflare Durable Object and their new &lt;a href=&quot;https://blog.cloudflare.com/agents-stripe-projects/&quot;&gt;agent signup feature&lt;/a&gt;.&lt;br&gt;&lt;br&gt;There is also nothing preventing mobile apps from implementing rss.chat features within the app, all but OPML and RSS hosting which can be hosted on any CDN.&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
			<pubDate>Mon, 13 Jul 2026 07:59:24 GMT</pubDate>
			<guid>https://rss.chat/?id=252</guid>
			<source:markdown>I think rss.chat-like webapp could be implemented cheaply and autonomously using Cloudflare Durable Object and their new [agent signup feature](https://blog.cloudflare.com/agents-stripe-projects/).&#10;&#10;There is also nothing preventing mobile apps from implementing rss.chat features within the app, all but OPML and RSS hosting which can be hosted on any CDN.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=251</source:inReplyTo>
			<source:comments count="2" feedUrl="https://rss.chat/users/donpark/comments/252.xml"/>
			</item>
		<item>
			<description>Yes, text, media, links, and agents. It's not a news reader but a news 'linker'. User reads news articles at their website using the browser with links on bside sidebar. Not just news articles obviously. With link support, RSS chats can be attached like a sticker or poster to any web page on the web.&lt;br&gt;&lt;br&gt;bside uses Chrome built-in AI to summarize as part of client-side workflow. frontend does most of the heavy lifting.&amp;nbsp;backend is lean and cheap enough to scale massively.</description>
			<pubDate>Sun, 12 Jul 2026 20:08:42 GMT</pubDate>
			<guid>https://rss.chat/?id=250</guid>
			<source:markdown>Yes, text, media, links, and agents. It's not a news reader but a news 'linker'. User reads news articles at their website using the browser with links on bside sidebar. Not just news articles obviously. With link support, RSS chats can be attached like a sticker or poster to any web page on the web.&#10;&#10;bside uses Chrome built-in AI to summarize as part of client-side workflow. frontend does most of the heavy lifting. backend is lean and cheap enough to scale massively.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=247</source:inReplyTo>
			</item>
		<item>
			<description>@dave I think having to use the link button to add links is an easily avoidable hassle, especially when parts of the post is pasted.</description>
			<pubDate>Sun, 12 Jul 2026 19:57:27 GMT</pubDate>
			<guid>https://rss.chat/?id=248</guid>
			<source:markdown>@dave I think having to use the link button to add links is an easily avoidable hassle, especially when parts of the post is pasted.</source:markdown>
			<source:inReplyTo>https://rss.chat/?id=246</source:inReplyTo>
			<source:comments count="2" feedUrl="https://rss.chat/users/donpark/comments/248.xml"/>
			</item>
		<item>
			<description>latest on bside (still cooking, not in the new cooking sense):&lt;br&gt;&lt;br&gt;&lt;div&gt;https://x.com/donpark/status/2076388172880355503&lt;br&gt;&lt;br&gt;&lt;/div&gt;</description>
			<pubDate>Sun, 12 Jul 2026 19:54:12 GMT</pubDate>
			<guid>https://rss.chat/?id=246</guid>
			<source:markdown>latest on bside (still cooking, not in the new cooking sense):&#10;&#10;&#10;https://x.com/donpark/status/2076388172880355503</source:markdown>
			<source:comments count="2" feedUrl="https://rss.chat/users/donpark/comments/246.xml"/>
			</item>
		<item>
			<description>Just signed up.&lt;br&gt;&lt;br&gt;@dave Help text for account name say &quot;Name must be 4 chars.&quot; which is clearly false.</description>
			<pubDate>Fri, 10 Jul 2026 19:32:59 GMT</pubDate>
			<guid>https://rss.chat/?id=221</guid>
			<source:markdown>Just signed up.&#10;&#10;@dave Help text for account name say &quot;Name must be 4 chars.&quot; which is clearly false.</source:markdown>
			<source:comments count="2" feedUrl="https://rss.chat/users/donpark/comments/221.xml"/>
			</item>
		</channel>
	</rss>
