HN user

YousefED

616 karma

https://www.twitter.com/yousefed

Excited about Local First software and Future of Programming concepts.

Founder of https://www.blocknotejs.org and https://www.relive.com (outdoor app)

Posts23
Comments79
View on HN
twitter.com 2y ago

Show HN: Hacked a multiplayer text editor into Signal (CRDT updates over chat)

YousefED
2pts0
www.blocknotejs.org 3y ago

Show HN: BlockNote – open-source Notion-style Text Editor with Multiplayer

YousefED
5pts1
github.com 3y ago

Show HN: Nostr-CRDT – real-time collaborative apps over Nostr

YousefED
1pts0
twitter.com 3y ago

Show HN: ChatGPT live codes in my notebook REPL

YousefED
10pts1
www.youtube.com 3y ago

GitHub Blocks Demo / Presentation

YousefED
1pts0
github.com 3y ago

Show HN: BlockNote – a “Notion-style” block-based text editor

YousefED
15pts9
github.com 4y ago

Show HN: Matrix-CRDT – real-time collaborative apps using Matrix as backend

YousefED
320pts72
syncedstore.org 4y ago

Show HN: SyncedStore CRDT – build multiplayer collaborative apps for React / Vue

YousefED
144pts26
news.ycombinator.com 9y ago

Ask HN: YCombinator.com down for everyone?

YousefED
1pts1
www.slackscreen.com 10y ago

Show HN: SlackScreen – a live full-screen visualization of your Slack channels

YousefED
5pts2
www.tweetbeam.com 11y ago

Generating Facebook “Look Back” Style Videos from HTML5 with PhantomJS and FFmpeg

YousefED
6pts0
www.lapsetube.com 11y ago

Show HN: Hyperlapse View of Hong Kong Protests

YousefED
2pts1
www.tintup.com 11y ago

Exposing Tint’s Financial Data with a Real-Time Revenue Dashboard

YousefED
3pts1
www.elasticui.com 12y ago

Show HN: ElasticUI – AngularJS Directives for ElasticSearch

YousefED
39pts9
www.140worldcup.com 12y ago

Show HN: 140 World Cup – Visualisation of World Cup Tweets

YousefED
8pts0
themusic.com.au 12y ago

Car Crashes Into Crowd at SXSW (at least 2 fatalities)

YousefED
22pts19
m.nrc.nl 12y ago

The Secret Role of the Dutch in the American War on Terror

YousefED
1pts0
twitter.com 12y ago

Using Rapportive to Keep an Eye on Competitors

YousefED
1pts0
blogs.msdn.com 12y ago

Reactive Extensions 2013 Year in Review

YousefED
1pts0
m.nrc.nl 12y ago

Dutch Intelligence Agency Hacks Internet Fora

YousefED
1pts0
www.vineroulette.com 13y ago

Show HN: VineRoulette - Vine Search and Full Screen Visualization

YousefED
7pts3
www.tweetbeam.com 13y ago

Full screen experience: Twitter 2012 Year in Review

YousefED
1pts0
www.tweetbeam.com 13y ago

Show HN: TweetBeam, my Twitter Wall project

YousefED
2pts0

In our case, they started building on top of our project and then reached out, so not sure I can share any lessons on this. With that said:

- I think administrations in the EU are (slowly but steadily) adopting "Public Money, Public Code" policies and looking more seriously at open source

- Note that policy / strategy on this depends a lot per country / local administration / project etc. I think most governments don't actively develop in house - France is quite the exception in this

- There are a number of conferences that might be relevant (FOSDEM for example just finished)

- We also benefitted from EU grants (e.g.: NLNet) to bootstrap our work and the early research phases

Think of Docs more of a modern, kind of Notion-style collaboration tool. It's not meant to be a Word replacement for full-scale document authoring (I believe La Suite will work with LibreOffice for that, but might be wrong here). The product vision is that Docs should focus on "Content over Form"; i.e.: make it easy to create well-structured documents (content), as opposed to Word which makes it easy to change every little visual detail of your document (form).

In addition, there are some advanced integrations with other products in La Suite. For example, video calls made in Visio can be automatically AI-transcribed and presented in a Docs document, etc.

Great to see this on HN. fyi, La Suite is an umbrella project built by DINUM in France that started several years ago, mainly to enable people in the public administration to use more independent tools. It's built in-house, often on top of other open source technologies. E.g.: Matrix powers chat and LiveKit powers Visio (which was recently featured on HN as well when they announced it's rolled out to replace Zoom / Teams, etc [1])

I'm fortunate to be collaborating with them as their Docs product is built on top of our open source BlockNote text editor (https://www.blocknotejs.org).

Docs specifically started as an international collaboration with Germany [2] to explore how different EU countries can collaborate in building sovereign workplace solutions (several other countries including NL have shown interest as well).

They're actively supporting us, and related projects like Yjs (https://yjs.dev) by sponsoring feature development.

I'm sure many of the team members will follow along here as well! Happy to answer any questions.

[1] https://news.ycombinator.com/item?id=46873294 [2] https://www.zendis.de/en

They're pretty mindful of sponsoring things that also works for us. I.e.: we try to align both our roadmaps as good as possible.

We're discussing how to work best with downstream dependencies as well. So far they're actively sponsoring Yjs, but not prosemirror/tt.

fyi, here are some early thoughts by the PM of Docs on how to collaborate between public sector and OSS (companies): https://github.com/virgile-dev/playbook-work-with-oss-librar... (we surely don't check all the boxes yet, but it's good to have the discussion!). Feel free to jump in!

Maintainer of BlockNote here (and contributor to HocusPocus). I can't speak for Docs as to why they chose BlockNote, but can answer some of your questions. BlockNote is actually built on top of Tiptap - but designed to take away the heavy lifting. As powerful as they are, to build a Notion-like editor on top of Tiptap (or Prosemirror) still requires quite some engineering firepower. We've built BlockNote to come "batteries-included" with common UI components and a simpler API to make it easy for you to add a modern, block-based editor to your app.

Congrats OP on launching this, looking forward to dive further in! It's great to see people experimenting in the Reactive + Live Programming space as like you mention, I think it can bring a lot of improvements to how we build software. Did you run into any limitations adopting this model?

A killer feature of Observable notebooks for me is that they provide the shortest possible route from having an idea to having a public URL with a tool that I can bookmark and use later

Thanks for sharing simon! I'm working on an Open Source Notion + Observable combination (https://www.typecell.org), where documents seamlessly mix with code, and can mix with an AI layer (e.g.: https://twitter.com/YousefED/status/1710210240929538447)

The code you write is pure Typescript (instead of sth custom like ObservableJS) which opens more paths to interoperability (aside from having a public URL). For example, I'm now working to make the code instantly exportable so you can mix it directly into existing codebases (or deploy on your own hosting / Vercel / whatever you prefer).

Thanks, great feedback!

Although it's entirely architected on a local-first stack, I indeed haven't shipped the main benefit of this, a locally installable app. There's a WIP PR here that adds PWA support: https://github.com/TypeCellOS/TypeCell/pull/352. I'll highlight this more when this is merged.

Nevertheless, some of the benefits are already noticeable and come "out of the box" with building on a local first architecture, even if not shipping an executable yet: - multiplayer sync - speed: documents are loaded from local storage initially if they have been loaded before, and changes sync in after that

In the future (when there's an installable app), I also want to enable saving / loading from the file system, so that it's completely transparent where your data is.

This article has been quite the inspiration for many projects and progress on this front. I think we're seeing more and more developments around CRDTs and local-first frameworks / applications.

I'm working on a few projects in this area:

- https://www.typecell.org - Notion meets Notebook-style live programming for TypeScript / React

- https://www.blocknotejs.org - a rich text editor built on TipTap / Prosemirror that supports Yjs for local-first collaboration

- https://syncedstore.org - a wrapper around Yjs for easier development

In my experience so far, some things get more complicated when building a local-first application, and some things get a lot easier. What gets easier is that once you've modeled and implemented the data-layer (which does require you to rethink / unlearn a few principles), you don't need to worry about data-fetching, errors etc. as much as in a regular "API-based" app.

Another interesting video I recommend on this topic is about Linear's "Sync Engine" which employs some of the local-first techniques as well: https://www.youtube.com/watch?v=Wo2m3jaJixU

Thanks for the feedback! It was designed from the philosophy that existing frameworks like PM or even TipTap are too low-level - but I can understand you need more ways to customize UI elements. It's certainly possible, but I think we need to document it better

Hi HN! BlockNote is an extensible, block-based editor (similar to Notion, Coda, etc.). Featuring different block types, animations (try changing block types, indenting, etc), menus, placeholders, collaboration and more you expect from a good editor.

BlockNote builds on top of Prosemirror and TipTap (two great libraries to build text editors for the web and work with ContentEditable and its quirks), but these libraries are pretty bare-bones / low-level("headless").

I hope BlockNote makes it a lot easier to get a great out-of-the-box text editing UX and am looking forward to your feedback!

I just added real-time collaboration to the demo on the homepage (desktop only), powered by Yjs & Partykit - definitely play around :)

What makes me most excited about this is that it uses LLMs in a way that the result (a computer program) is still understandable and editable (hackable).

Instead of having an AI model output some kind of "black-box conclusion" on a data set / question, it can output code that we can inspect, improve, and learn from. Using LLMs in this way still keeps us as users "in control" - and I think it's a promising path for responsible AI.

I've done some experiments[1] adding ChatGPT-like functionality to my open source Typescript Notebook environment[2] back in december, and hope to revisit this soon :)

[1] https://twitter.com/YousefED/status/1599805936280907776 [2] https://www.typecell.org/

Hi HN!

I've been working on a "notebook"-style live programming environment called TypeCell (https://www.typecell.org). It mixes TypeScript, Monaco (vscode) and full NPM support into a as-you-type live programming experience.

After being amazed by ChatGPT last week, I gave it a go to integrate it into TypeCell. Still can't believe it actually works! Most prompts work in one go. If it gets a little bit more complicated, sometimes I need to add some instructions about the error I'm getting or about a possible fix.

Hi! I think the Liveblocks demo is quite impressive as well! It looks pretty smooth. One of the main things I'm missing is the ability to nest (indent) blocks similarly to how Notion / BlockNote allows this. This was quite a bit of work to get right in BlockNote.

BlockNote's live collaboration is powered by Yjs, or (y-prosemirror to be exact). Highly recommend checking it out!

Toggles are on the roadmap to add! They are definitely a basic kind of block that should be built-in.

Databases/tables are a whole different ball game of course. I’d like to focus on building an open source, reusable text/block editor on par with Notion’s editor, not to build a clone of their entire product :)

Thanks! Agree those components are important. Some of them are already available for the Prosemirror ecosystem, so it should be straightforward to add them.

Focus so far for BlockNote has been to get the “block” system right (including nesting, drag and drop, etc) and the basic UX elements (placeholders, menus, etc). Now I think we can continue working on more block types!

Programmable Notes 4 years ago

Love the examples in this blog (both use cases and prior art). Thanks for sharing.

I'm currently exploring what the ideal end-user-programming environment for this could look like https://www.loom.com/share/6fd5637254584cfea8de315f0f3b532c. I'd love to see end-user programmable applications that can be customized like described in the blog - in an environment that reacts as spreadsheet software (immediate results, no need to fire up an external editor or wait for a build-loop).