Avatar
Nuh
930ccef12372dd2f16057cfc54f0dbd94335d8b51b4e2737236b00cab718fcd9
Working on https://mlkut.org, designer and maintener of https://pkarr.org. https://nuh.dev

They are couple of people cut them some slack, but yes you can implement whatever you want, but when something seems like a core logic you want to both reuse across platforms and more importantly test with ease, then you move it to the core.

I did play with it but not enough to stand by it yet, whenever I tried it it didn't seem complex but still clunky, however they don't do anything I wouldn't do myself except with great effort so I can't judge them for not ironing out the interface yet, it is not an easy task.

Are you aware of Crux? It is a Rust based elm architecture framework, wat you are doing seems similar, so maybe that framework can save you some time.

Pubky app is a social media app / search engine, more concerned with aggregation of data and tagging etc.

I worked on Pubky core, which is the part where you store your data on a hosting provider, and that part is very similar to what I am saying, but it doesn't have private data yet, and it doesn't have a browser that manages keys and permissions and sandbox apps etc.

So yes everything I am talking about is a continuation of what I did on Pubky core, but I left the team. So I am not calling what I am talking about Pubky core because I can't influence Pubky core to do or prioritise any of what I am talking about.

There is already plenty of work done while I was working at Synonym, under the name Pubky, but going forward, if I kept pursuing this, I intend to work at this org https://github.com/mlkut ... if things went well and I felt I can seriously do work there, I might create a newsletter or something

Solid is designed by alot of people at once, and as expected it is very underpowered, barely any better than WebDav, it has no sovereign identity and data is not encrypted at use, meaning unless you run your own Pod, your host can see everything.

Peergos is great and honestly so very close to the optimal, but it also didn't start with sovereign identity, relying on a centralised PKI, although they plan to mend that, and I don't like that it runs in web browsers for no reason really, and the only way to build apps for it is to build web apps.

Finally Peergos currently has too much latency for my liking and I suspect I will never know if this is a fundamental price of excessive privacy, or an implemtation detail unless I implement some parts of it in Rust and see how fast i can get it to work.

The Internet is way more free than we like to complain about.

As for github, I don't see a problem with that, global discovery and indexing is an impossible problem to solve in a decentralised way, and I am fine with github winning there.

Anyone who needs a credible exit from Github can have it, and with interoperable identity the friction of jumping into someone's gitlab and contributing would be super simple, so you only lose discoverability and exposure on github main page timeline thing, but no one owes you that.​

Urbit and every similar thing is an OS in the same way that browsers are OSs, more like virtual machines or sandboxes or whatever you want to call them, they are specifc ways to isolate programs while still allowing them to mutate a state somewhere.

Arguably Google Drive and the collaborative apps built on them are an operating system.

If you keep the definition tight and conventional; a layer between software and hardware, then that is not what Urbit or anyone similar is trying to do.

Although I know someone actually working on wasm based honest to God OS, but that is not what I am interested in.

I am interested in stuff like Peergos.

My point is, this emergent system will exist regardless, either inside a walled garden like Google or Proton Drive, or hopefully more standardised, and the reason is simple, the web was supposed to be like that and the demand still is here, and if the web doesn't evolve to satisfy that, the cloud providers will remain the AOL of this era.

Yes it was over complicated, at its core Urbit had a good idea though; it is too complex for people to run their own servers because securing Linux is hard, and it is not safe to install applications from untrusted sources, both of which forces centralisation.

So they wanted to make an operating system that is secure and user friendly... but they really over complicated things.

Peergos is much closer to what should have been done.

Replying to Avatar Marius Kjeldahl

Typical pattern is PWA first, then add native as your userbase and commercials allow the added overhead. Historical examples include Tinder, Uber, Pinterest, Flipcard, Amazon, Starbucks and many more. You can find more examples here:

https://laffaz.com/progressive-web-app-history-examples/

Now it's gotta be said as well that Mobile Safari has become what Internet Explorer used to be; the lowest common denominator that makes it VERY hard to make PWAs almost as polished as native apps.

On purpose. Browsers are just awful for almost all things, on purpose.

And I suspect that building a native app can be done easier and faster than a web app, if they target sideloading instead of app stores approval process.

But I need to build few apps to make that argument with confidence.

What example of PWA that works on IOS and has traction/loved by users, and isn't basically a website pretending to be an app?

Replying to Avatar Nuh

Day 0/

Work:

- Opened a PR to update Pkarr to v3 in Iroh and fix wasm issues they were facing because `rand 0.9` https://github.com/n0-computer/iroh/pull/3188

- This included removing `rand` altogether from Pkarr and use `getrandom` directly.

Thoughts:

- I wish I can write this in Obsidian-like app or Obsidian itself and have it both published AND stored long term at the same time. I want to build this.

Day 1/

Work:

- Optimised the random shuffle of endpoints in Pkarr, nice trick lifted from `rand` to avoid making more syscalls than needed.

- Opened a PR for `Reqwest` to detect `error.is_timeout()` in wasm. This should help in retries in browsers after a connection to an http relay timesout.

Thoughts:

- I don't have any more immediate tasks for tomorrow, I think tomorrow I will just setup a boilerplate for the main app I plan to build, and maybe prepare a todo list.

Replying to Avatar Nuh

Starting yesterday, I am no longer a Synonym employee.

I am thankful for John for taking a chance on me and empowering me for the past few years. without such chance I don't think I would have had the time, resources, or confidence to design what is now the foundation of Pubky.

I loved working with that team, and I am confident that they will be able to materialise what was and still is our shared vision for the Web.

This post is meant to clarify, for anyone who cares that;

1. If you are following me merely for being a Synonym employee, you should consider that I no longer speak on their behalf nor have access to anything you don't.

2. If you were interested in Pkarr or Pubky, then rest assured that I will remain a resource for you if you needed help, especially Pkarr as it has matured and won't change going forward, while Pubky still has a room for improvement and innovation and design challenges, and I might not be able to influence that, at least not in Pubky's name.

3. Once you feel the agency of designing and building, it is too difficult to stop, so while I might be distracted for some time consolidating and taking care of my responsibilities, I can't think of a future where I am not building the things I wanted to see in the world.

4. Usually developers don't abandon projects they are passionate about for lack of resources, but isolation and apathy can definitely take a toll, so I intend to start working very publicly again as I did very early on with Pkarr which caught the eyes of engineers (on Twitter) that helped me in many ways, and I am hoping this is a new opportunity to make more of these precious friendships.

Day 0/

Work:

- Opened a PR to update Pkarr to v3 in Iroh and fix wasm issues they were facing because `rand 0.9` https://github.com/n0-computer/iroh/pull/3188

- This included removing `rand` altogether from Pkarr and use `getrandom` directly.

Thoughts:

- I wish I can write this in Obsidian-like app or Obsidian itself and have it both published AND stored long term at the same time. I want to build this.

I never cared for public social media and prefer to focus on things like Signal or Matrix but with keys for identities. As well as general purpose private storage and censorship resistant website.

All usecases that are within reach and their success doesn't depend on popularity much, they can have utility on their own.

Most likely my first focus will be on one of these things and all the UX for them.