Jared Forsyth @jaredforsyth.com · 08/08/2026did anyone else play a ton of blobby volley as a kid? So it turns out the source is GPL 😁 been adding a ton of fun stuff to it (after porting to rust, ofc) 081
Jared Forsyth @jaredforsyth.com · 14/07/2026New post! "Automate typescript refactors with dosido" I made a tool to move files and definitions around, and for extracting folders into new monorepo packages. jaredforsyth.com/posts/dosido... 480
Jared Forsyth @jaredforsyth.com · 28/06/2026Anyone up for a little local-first crdt-backed collaborative wordsearch? crdt-wordsearch.quick.jaredforsyth.com?peer=3e27c3a... while supplies last 😅 020
Jared Forsyth @jaredforsyth.com · 26/06/2026somebody stop me, I'm creating an everything app. vega charts, slide decks, polls 🎉 140
Jared Forsyth @jaredforsyth.com · 26/06/2026did somebody say inline math? no? well here it is anyway! seamlessly integrated into the collaborative editing experience. 030
Jared Forsyth @jaredforsyth.com · 25/06/2026real-time collaborative, rich-text ... mermaid diagrams? Sure why not 😄 0110
Jared Forsyth @jaredforsyth.com · 17/06/2026annnnotations! proving out "marks, but more complicated". and yes, you can have a footnote in a footnote, or a comment on a footnote in a popover etc. 140
Jared Forsyth @jaredforsyth.com · 14/06/2026I came across plim (github.com/darylcecile/...) and couldn't resist integrating it with my new block-rich-text CRDT 😄 very helpful in fleshing out my own API surface 151
Jared Forsyth @jaredforsyth.com · 09/06/2026ok I think I've really got this working. - rich text CRDT (peritext-based) - movable blocks with split & join, retaining provenance and collaborative editing - strong cycle prevention both for split/join and block nesting annnd just for fun I've also implemented multicursor in the demo (cmd+click) 7625
Jared Forsyth @jaredforsyth.com · 09/01/2026who wore it better (pattern from the Alcázar of Seville in Spain) 020
Jared Forsyth @jaredforsyth.com · 30/11/2025doin some animatings. This pattern is from the Minbar of Saladin in Al Aqsa Mosque in Jerusalem 130
Jared Forsyth @jaredforsyth.com · 03/09/2025an art based on a macro-pattern from the Mirador de Lindaraja in the Alhambra 070
Jared Forsyth @jaredforsyth.com · 30/04/2025I'm struggling to understand what www.npmjs.com means by "Recently updated" 🤔 010
Jared Forsyth @jaredforsyth.com · 26/04/2025Here's another flex 💪 we can have a function of two arguments where *at least one* of the arguments needs to have a given attribute defined. 010
Jared Forsyth @jaredforsyth.com · 25/04/2025ok this is just really cool. the constraints system I set up gives you "optional record arguments" for free! it would be simple to add syntax affordances for it as well, e.g. ({one, two, three = true}) => ... 020
Jared Forsyth @jaredforsyth.com · 24/04/2025Ok so it's possible I'm overlooking something crucial, but I think I might have gotten polymorphic records to work?? without needing a distinction between (extend) and (override), as well as allowing for multiple-extend, e.g. {...a, ...b, c: 2} I haven't seen papers that can pull this off 😳 1130
Jared Forsyth @jaredforsyth.com · 20/04/2025we have full rewind & replay, including viewing live results of evaluation at every step 🎉 😎 090
Jared Forsyth @jaredforsyth.com · 30/03/2025status update: parser & basic type inference hooked up for ground level language. once I finish fleshing out the type inference, I'll move on to inline execution 150
Jared Forsyth @jaredforsyth.com · 26/03/2025slides for my talk at #EpicWebConf2025 docs.google.com/presentation... 4547
Jared Forsyth @jaredforsyth.com · 06/02/2025Are there any languages that allow you to "re-enter" the switch control flow, if you determine that the branch you're on isn't right? I sometimes find myself having e.g. nested switches, and I want to be able to "jump out" to the parent switch and keep going, often in a default case. same with "if"s 230
Jared Forsyth @jaredforsyth.com · 25/01/2025imagine, conway's game of life, but, hexagons (the rules are the same, cells still have 9 neighbors, every other row is just shifted over a bit. it's a display-only change) 150
Jared Forsyth @jaredforsyth.com · 25/01/2025was feeling a little braindead the 3rd day of POPL so I made a colorific game of life inspired by @todepond.com's huegene (www.todepond.com/lab/cells/dr...) 1302
Jared Forsyth @jaredforsyth.com · 14/12/2024finally implemented decimal-point handling, so 2.3 doesn't get parsed as attribute access 😅 020
Jared Forsyth @jaredforsyth.com · 13/12/2024considering switching from in-place "placeholders" to tooltips that only show when your cursor is over the blank node. Thoughts? 120
Jared Forsyth @jaredforsyth.com · 11/12/2024I'm thinking a regex literal as a match case, so like 110
Jared Forsyth @jaredforsyth.com · 07/12/2024tables! these are a critical feature of my CST; they account for any syntax form that has children that need to be "paired"; such as records, switch statements, and more! Because you can have more than 2 columns, it unlocks features you couldn't reasonably have in a text-based syntax. 020
Jared Forsyth @jaredforsyth.com · 06/12/2024placeholders! (generated for free from the parser definition) the syntax becomes somewhat self-documenting, which seems quite nice! 151