Damus
sandwich profile picture
sandwich
@sandwich
A project I started poking at last summer is at a point where it makes sense to share. I started working on it shortly after nsite was beginning to *sometimes* work, and immediately after some of my earliest nsyte.run releases.

https://napplet.run: Composable nostr apps, not monoliths.



Nostr Applets, or napplets, are tiny programs that do one thing and run in sandboxed environments. Shells broker the dangerous stuff, the runtimes behind them handle the implementation and the higher-level UX. Each applet stays portable, disposable, and harder to capture.

Other people are circling similar ideas, NMP by @PABLOF7z and Tiles by the @Soapbox team, to name just two.

This is my take: A protocol that defines a trust boundary. First target is the web as an app runtime for nostr, with alpha tooling, sharp edges, and no fake polish. They are distributed using the same event shape as nsites, which means the napplets themselves are resolved over nostr and blossom.

Key difference between competing solutions and napplets, is that napplets can talk to each other, and there is no runtime lock-in by design. Napplets are a seam that define a trust boundary and some grounding concepts.

The protocol is still under active development and contributors are welcome.

I will be posting a series of articles on the subject with findings, pitfalls and developments.

Some links:
Web Packages: https://github.com/napplet/web
NAPs track: https://github.com/napplet/naps
Web Runtime Packages: https://github.com/kehto/web
"Kehto Playground," an imperfect and chaotic proof of concept and app I use to debug, but can also act as a protocol visualization: https://kehto.github.io/web/playground

History:
I started by developing something like 44billion.net but it was a native app that leveraged NIP-07 to run "napps": https://github.com/sandwichfarm/napp.run
Ceiling was too low on that prototype, so I forked chromium and started ideating an expanded interface in a browser forked from Thorium: https://github.com/sandwichfarm/dryft

Those research spikes led me into a novel prototype, that has since been upgraded to a proof of concept that implements NIP-5D, and will be released very soon.

I have also been working on a RISC-V kernel that is optimized around nostr and attempts to implement the napplet protocol boundaries expressed as native boundaries over an IPC.

For now, if interested in the concept, check out https://napplet.run and lmk what you think.
3218โค๏ธ20โค๏ธ3๐Ÿ‘€2๐Ÿ‘2๐Ÿงก2โš”๏ธ1
DanConwayDev · 1w
This has a lot of promise.
paul keating · 1w
Galaxy brain things ๐Ÿ‘€
Mihai Kirschner Dunareanu · 1w
I read a little bit about it and it sounds like a fantastic ideea.
smeef · 1w
Holy crap. It's going to take me a bit to get through these links.
sword in the stone · 1w
Just to help me understand this, why would I run a napp over an app? What's the benefit, either for a developer or even for a user? I'm not doubting this is incredible, i'm just struggling to process what this is.
sandwich · 1w
There was a typo in there I just noticed, the prototype I conceived last summary has been upgraded to a pilot, not downgraded to a proof of concept ๐Ÿ˜…
Aedifico · 1w
I am tinkering with the idea of ai-app-sandbox. You have an app frame with a chat interface for any model. The model can use local tools to update the app-sandbox with the features you need.
ButtercupRoberts · 4d
Concepts that grab my attention but have no idea how to envision the way it would affect the architecture of building on it ๐Ÿ˜…
rafftyl · 3d
LOL, "naplet" is foreskin in Polish
Vitor Pamplona · 3d
Full support on Amethyst coming soon.