𝕮
@chrisshank.com
1.1K followers 650 following 1.1K posts
Dissoℓving the web from the inside out with @folkjs.org
Posts Media Videos Starter Packs
chrisshank.com
Applications continue to be opaque, don't met all the need of everyone, and has an endless amount of features that no one knows they can use. I wish we understood what's happening here better outside of some studies on keyboard shortcuts.
"- There were 4,000 commands across all of Office 2003 (Word, Excel, etc)
- 80% of users only used two commands: copy and paste

Nobody used all the features, but everyone used a different set.

'At a deeper level, most in a company might not use a feature such as Track Changes (or Redlining) in Word. But their lawyer would. And contracts or legal letters might arrive via email for review. Rarely used features became part of the work of others. This network of usage was a key advantage of Office.'

– Hardcore Software, 077. What Is Software Bloat, Really?" "When asked about their understanding of shortcut keys, the most well-known was "Ctrl + C" (copy) at 62.6%, followed by "Ctrl + V" (paste) at 59.2%. This shows that about 40% of respondents do not know the shortcut keys for copying and pasting. The third most well-known was "Ctrl + Z" (undo) at 30.6%." "The method of keyboard shortcuts was the favorite method for only 6.37% of the users based on loose criterion and for only 1.59% of the users based on the strict criterion."
chrisshank.com
I wish hydra had way to inspect intermediate shader code like this!
Reposted by 𝕮
chrisshank.com
You can just make things on the web collaborative by adding a single HTML attribute...
chrisshank.com
Each of these custom elements can render their own shadow DOM, but use slots to keep richer data in the same level of DOM!

I'll try to finish the kanban board up soon so there is a clear example to reference.
chrisshank.com
I think it only makes sense to sync one level of DOM at a time. But slot composition lets us get around this!

```html
<kanban-board name="...">
<kanban-column name="...">
<kanban-card name="..." description="..."></kanban-card>
</kanban-column>
</kanban-board>
```
chrisshank.com
this still works with state-based rendering, if you use a custom element library like lit and reflect the properties/attributes of custom elements that you want synced
Reposted by 𝕮
jakelazaroff.com
part of me is scared to let go of my precious state-based rendering but part of me wants to dust off jquery and party like it's 2006
chrisshank.com
You can just make things on the web collaborative by adding a single HTML attribute...
chrisshank.com
Thanks! you can do some pretty cool stuff with it already 😜

bsky.app/profile/chri...
chrisshank.com
A region HTML element will reparent shapes when they sufficiently overlap it.

A region HTML element with the sync attribute create shared portals in a canvas.

```html
<folk-region folk-sync folk-shape="x: 100; y: 100; width: 200; height: 150;">
```
chrisshank.com
The elephant in the room is this supposes an architecture that treats the DOM as read/write rather than the prevailing architecture of top-down rendering that largely treats the DOM as read-only... which I think is a better architecture tbh, maybe more on that in the future..
chrisshank.com
(There are surely some lightweight identity & governance primitives missing here though)
chrisshank.com
For these kind of small web apps, I'm curious if directly persisting/syncing the DOM would be all you need?

bsky.app/profile/chri...
chrisshank.com
You can just make things on the web collaborative by adding a single HTML attribute...
chrisshank.com
Syncing defaults to the public automerge sync server, but you are in full control of how the syncing happens, whether it's your own sync server, P2P, or a plurality of appraches.
chrisshank.com
This custom HTML attribute bidirectionally syncs a DOM tree to a CRDT (in this case it's automerge), which makes any part of the UI reflected to the DOM both persisted and collaborative.
chrisshank.com
You can just make things on the web collaborative by adding a single HTML attribute...
Reposted by 𝕮
why.bsky.team
A little proof of concept I've been working on, it's a version of Bluesky that you can run locally, even on your laptop, that pulls just the data you care about from the firehose, indexes it, and provides you an interface to view and interact with posts.
GitHub - whyrusleeping/konbini
Contribute to whyrusleeping/konbini development by creating an account on GitHub.
github.com
Reposted by 𝕮
meri.garden
would anything stop you posting an entire HTML file as an ATProto record on your PDS? Size limits?

Assuming some proxy/resolver service to expose it to the web
chrisshank.com
Not entirely sure, but I'm thinking it should duck the volume of the person already talking so a other people could participate in a significantly less jarring manner.
chrisshank.com
We need sidechaining for video calls... when one person is talking and someone wants to chime in, the software should duck the volume of the first person, so that interruptions are less jarring.
Reposted by 𝕮
joshuahhh.com
Less than 24 hours till the LIVE 2025 Q & A / Discussion session!

Watch the presentations: www.youtube.com/playlist?lis...

Join us to chat about them: links at liveprog.org

Hope to see ya there!
chrisshank.com
Are you saying there are risks publishing to the web that are different than publishing mobile apps?
Reposted by 𝕮
bell.bz
Make these things websites
techmeme.com
Apple removes ICEBlock, an app for anonymously reporting ICE official sightings, from the App Store; AG Pam Bondi says the DOJ requested its removal (Ashley Oliver/Fox Business)

Main Link | Techmeme Permalink
chrisshank.com
It’s worth highlighting these changes at Microsoft happened right after tech workers protested at Microsoft’s main campus and inside executive‘s offices.

bsky.app/profile/inth...
chrisshank.com
The best writing I’ve seen on this topic is the essay “Technically Radical: On the Unrecognized Potential of Tech Workers and Hackers” by @mutual-a.bsky.social

wedontagree.net/technically-...
“Given all this, I posit that the crux of the conflict today is, contra Karl Marx, not over wage relations. Rather it’s a conflict over what technology is developed and how it is deployed (conflicts over wage relations are merely a subset of this broader struggle). And while anyone who wants can play a part, those with technical skills and scientific knowledge have a key role to play.”