Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I would love to know a little more about your tech stack and architecture?

You say "Everything is saved locally by default", with full office support. Essentially you have built a "local-first" app, or about 10 of them!

I would definitely play on that for marketing, the local-first place is getting quite a bit of buzz. (I'm biased, but I think 2024 if the year local-first is going to go mainstream)

What tech are you using for conflict resolution for offline edits, I'm guessing you have generalised this in some way? Are you using CRDTs? And any particular local-first database tech?

Have you considered adding any real-time multiplayer features? If you've solved the offline edit problems, you are 95% of the way to real-time.



It's on GCP and 99% "serverless" with TypeScript + React frontend. Flutter for mobile apps and Electron for desktop apps (planning to switch the desktop apps to Flutter too once their desktop frameworks are more stable)

Noted on the "local-first" term, thanks!

I thought about doing CRDT in the beginning, but because not every block type is text, I simplified the implementation to last write wins. Note that every paragraph is a block, so it's not like the entire page is overwritten. CRDT is still doable though.

There are real-time text cursors and block selections, but I intentionally did not implement Figma-style floating cursors that people may expect in certain modules. I thought it looks cool but doesn't offer much value, especially when you can already see what other people selected.


Interesting you say that because I've always felt like a big drawback of Google Docs is the inability to see the floating cursor. It doesn't feel as immersive as, say, Figma editing. However, I'm just one person and my opinion doesn't speak for them all! It'd be interesting to see an A/B test with this sort of functionality.


Have you thought about use flutter for web as well? It seems a lot of effort to maintain 2 codebase for web and desktop




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: