Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
wim
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
7 ms
·
31.
▲
by
wim
2y ago
We're working on an "IDE for notes/tasks" [1] in the space of Notion and so on where you can easily self-host the sync backend with a single binary. The idea is that you can choose between cloud or self-host (and "e
32.
▲
by
wim
2y ago
I also find their library for Go ( https://github.com/caddyserver/certmagic ) a major timesaver! We're using it to make it easy for people to self-host our app and it takes care of all the TLS cert set up/renew
33.
▲
by
wim
2y ago
I think it's not too different from downloadable software, so it doesn't rule out commercial services (we plan on both paid and free versions).
34.
▲
by
wim
2y ago
Another aspect of local-first I'm exploring is trying to combine it with the ability to make the backend sync server available for local self-hosting as well. In our case we're building a local-first multiplayer "IDE for task
35.
▲
by
wim
2y ago
This is great. You need to write so much code to do conversion between arbitrary timezones reliably now. And even if you don't mind including yet another (large) dependency instead, even those almost all have problems around DST bounda
36.
▲
by
wim
2y ago
That only works for past events, not future ones. Converting to UTC is lossy so rendering timestamps correctly in the future becomes problematic with DST/TZ rule changes.
37.
▲
by
wim
2y ago
Right, hadn't listened to that one, thanks for the tip!
38.
▲
by
wim
2y ago
One experiment I would love to see, although not really feasible in practice, is to train a model on all digitized data from before the year 1905 (journals, letters, books, broadcasts, lectures, the works), and then ask it for a formula f
39.
▲
by
wim
2y ago
We're building Thymer [1] for this, which is end-to-end encrypted, offline-first and optionally self-hostable. It's like an editor but you can organize anything into custom database views, we hope to get it ready soon. [1] https:
40.
▲
Local-First and Ejectable
(thymer.com)
1 points
by
wim
2y ago
|
0 comments
41.
▲
Ejectable Apps
(thymer.com)
2 points
by
wim
2y ago
|
0 comments
42.
▲
by
wim
2y ago
This is probably where the real trade-off is, and for that it's helpful to look at what the actual failure modes and requirements are. Highly available is a range and a moving target of course, with every "extra 9" getting a
43.
▲
by
wim
2y ago
Sure, this is just about the syncing backend. Our "IDE" frontend is written in vanilla JavaScript, which the Go backend can even serve directly by embedding files in the Go binary, using Go's embed package. Everything's
44.
▲
by
wim
2y ago
(Also building a product in the productivity space, with an option for users to self-host the backend) That's interesting, for us there was actually no trade-off in that sense. Having operated another SaaS with a lot of moving parts (s
45.
▲
by
wim
2y ago
Right but rather than working on an array it's combined with a tree operation in this case, so if someone drags a task to reorder but someone else moves it to another parent it won't cause (cycle) conflicts
46.
▲
by
wim
2y ago
We built it from scratch, so not based on prosemirror or contenteditable or anything like that (as we needed something which feels as if you're just editing text but also supports outlining features)
47.
▲
by
wim
2y ago
Hah well there is definitely some scope/vision creep involved, and it all took a bit longer than planned. Not 15 years though! (that's about the very first app we ever made, which we only keep online for existing users). We'v
48.
▲
by
wim
2y ago
We're building a new multiplayer editor for tasks/notes [1] which supports both text and outliner operations. Although it behaves like a flat text document, the outliner features essentially turn the document into a large tree und
49.
▲
by
wim
2y ago
I think an important requirement for making the "forever" aspect of local-first possible is to make the backend sync server available for local self-hosting. For example, we're building a local-first multiplayer "IDE for
50.
▲
by
wim
3y ago
It's something I also tried to do for a while, just by using VSCode and a bunch of text files. I really like the lightweight-ness of just being able to edit as if it's text, but wanted to have for tasks what VSCode has for code: c
51.
▲
by
wim
3y ago
Right, I also don't understand why it's considered a feature of many of these languages to introduce so many ways of doing the same thing. Like the boolean example, but also having three different ways to express a list or diction
52.
▲
by
wim
3y ago
Another issue which git won't solve is if you collaborate on text which has "structure". For example when merging indented (todo) lists as flat text, bullets might end up in the wrong place, e.g. [ ] Project [ ] Don
53.
▲
by
wim
3y ago
Meanwhile on the web RSA keeps popping up because for some odd reason it's the easiest way to do public key encryption using the built-in option, Web Crypto (it does support RSA-OAEP, but still). With interfaces like this https:/
54.
▲
by
wim
3y ago
Nice outline of the various techniques. We've built something in-between the operation-based and delta-based approaches for our offline-first multiplayer "IDE for notes/tasks" [1]. In our case we have a central server wh
55.
▲
by
wim
3y ago
Very elegant solution, and neat demo page! I'm curious what trade-offs you looked at regarding sending state vs mutations from the server back to clients. As the server is authoritative, I imagine it could also send mutations to the cl
56.
▲
by
wim
3y ago
Right, there are quite some collaborative applications for which a hybrid approach is useful. We're building a collaborative editor ( https://thymer.com ) for example, where the underlying data structure is also a tree (as th
57.
▲
by
wim
3y ago
We’re building an "IDE for notes/tasks" [1], so as an editor of sorts, UI snappiness matters a lot for us too. The approach we’re taking is to basically split up the app in two parts (we refer to these parts as "frontend
58.
▲
by
wim
3y ago
We’re working on building an IDE of sorts [1] (but specifically for tasks/notes) trying to combine the benefits of plain text but with rich elements and structure (tree/graph). The illusion of a real editor breaks down pretty quic
59.
▲
by
wim
4y ago
For certain data structures the "pure" CRDT approach can get tricky. In our case, we're building a collaborative notes/task IDE [1] which is a hybrid of a text editor and an outliner at the same time. So you can perform
60.
▲
by
wim
4y ago
I think the combination of these "ideals" makes a lot of sense. If you want the combination of a web app but with native-like performance, you kind of get to many items on the list automatically. The web app we're building no
More ›