Small code.
Open possibilities.
A playground for things people made because they wondered what would happen.
Curiosity goes both ways.
Play a little
Browse games, visual experiments, toys and digital memes. Pick one to start it, or open its player for a bigger view. Browsing needs no account.
Look inside
Browse a creation’s original files when its author shares a source archive. Otherwise, inspect the verified built HTML and follow its source link. Check its license before reusing it.
Follow a tangent
Remix a creation or start from the Napplet boilerplate. Our CLI prepares the project and skills for the coding agent you already use. Check the listing preview, publish, and share your link.
Your creation has a life beyond this site.
A napplet is a signed publication on Nostr. Relays carry its listing; our publishing tools use Blossom for files and Git for source. Other compatible clients can discover the same publication. A readable site link is a convenience; its Nostr address travels with it.
Our CLI uses this site’s infrastructure by default. Creators can inspect and change relay, Blossom and Git destinations with soyli config. The documentation explains the local overrides.
- Relays
- Discover signed creations and their conversations.
- Blossom
- Retrieve files by the hash that identifies their bytes.
- Git + ngit
- Keep source history and make a remix from a published revision.
You choose when to play. You choose how to sign.
A boundary around each creation
Before playback, this client verifies the signed manifest and downloaded files. Each napplet runs in a sandbox, with requests handled through the capabilities this client supports. It cannot read the surrounding page or your signing keys.
Some napplets need capabilities we do not support yet. Those stay visible through the gallery’s availability filter. Supported capabilities include shared scores and matchmaking through ContextVM, with peer connections through NAP-WEBRTC.
An identity you can bring along
Connect an extension or remote signer, or import or create a private key and save an encrypted backup. Remembered connections survive reloads on this device. Private keys are remembered only when you choose to save them here; use a trusted browser.
Sign in to like or comment. Anyone can share a link or send an anonymous zap when the creator has a compatible Lightning wallet. Counts reflect the activity this client has found on its relays.
Site administrators can hide content here. That does not erase copies from other clients or relays.
Before you make something.
Keys, code, credit. Here’s how the pieces fit together.
Open the soyLI field guide →Can I unpublish or delete my napplet?
Yes. Sign in as its author and choose Manage publication, or open Your napplets from the identity menu. Unpublish keeps the files for later republishing at the same address. Delete hosted data asks for confirmation and shows progress for each relay, upload and repository. Shared files may stay; Soy’s Git server retains a recovery archive for 90 days. Downloads, forks and independent copies cannot be recalled. Lifecycle guide.
How does this work?
A napplet is a small web creation with a signed Nostr listing. Relays help clients discover it, Blossom hosts its files, and this client verifies and runs it in a sandbox. soyLI turns a local project into that publication and shares its Git source. Compatible clients can discover the same napplet; it belongs to its creator’s key, not a website login.
Do I need an account to create or contribute?
No website account or sign-in is needed to create, remix or propose changes. soyLI can create a Nostr signing identity or connect one you already use. Browsing and playing also need no site login. Likes and comments require sign-in; sharing links and anonymous zaps do not.
How do I change identities?
In soyLI, run soyli account list, then soyli account use YOUR_ACCOUNT_ID with the account ID or npub you want. Existing projects keep their creator binding, so switch back to that creator when publishing them.
On the website, open the identity button and select a saved identity or connect another. Website and CLI selections are separate. Identity commands and backups.
Can I post anonymous napplets?
You can publish under a separate pseudonym without providing a real name, email or profile. Every napplet still has a public signing key, and publications under that key can be linked together. Publishing is pseudonymous, not a guarantee of anonymity.
Public source, Git authorship and commit history can reveal identifying information; infrastructure providers can also see connection information. A fresh key alone does not remove those links. The identity guide explains creating another key and the release status of account create --new.
Why did account create return the same key?
It reuses your selected identity so repeat setup does not replace it. account backup saves or locates that same key’s backup. A different identity needs explicit creation with account create --new; previous identities and backups are retained. See the identity instructions for details.
Where is my private key, and how do I back it up?
soyLI signs with your OS credential store and saves an owner-only, unencrypted nsec backup outside your project. soyli account backup prints its location; encrypted exports are also available. On the website, key creation includes an encrypted recovery download. Remote signers keep the creator key themselves. Preserve a private backup: this site cannot recover a lost key for you. Backup and restore instructions.
Do I need Bun, Node or a particular AI tool?
No global Bun or Node installation is needed. The macOS and Linux soyLI downloads include their runtime and prepare the project toolchain. You need Git and a supported system credential store to publish. Use any editor or coding agent you prefer; new projects include Napplet skills and guidance. An AI subscription is not included or required. Setup requirements.
Is my code public?
Yes, when you share it through soyLI. Publishing or proposing shares source and pushed Git history, including earlier versions of files. Editing and making local checkpoints do not upload anything. New projects use MIT; check and preserve the existing license when remixing. Keep credentials and private notes out of the repository. The edit-to-publish workflow.
What is the difference between a remix and a proposal?
A remix gives you a local copy to work on. From the same copy, publish an independent napplet or propose improvements to the original author, or do both. A proposal includes source changes and a playable preview; the author decides whether to merge and release it. Proposals require a Git-backed original. Remix and contribution commands.
Can I use my own relay or file server?
Yes. soyli config shows publishing destinations, and soyli config init makes editable local overrides. Choose compatible Nostr, Blossom and GRASP services. The website’s Network settings control your browsing providers separately. See the defaults and how to change them.
How do I get a readable link or share the fullscreen player?
Open your napplet page, connect the creator identity and choose Named link to claim /@your-handle/your-slug. It follows future releases. The Share control also offers a player link that opens directly in the immersive view. Portable Nostr addresses continue to work without a named route.
Can a napplet be removed everywhere?
This site’s administrators can hide content here. That does not erase copies held by other clients, relays or file servers. Published code and files can be copied and remixed, so there is no universal undo for a public release.
Built with others. Open to more.
This client uses Bun, React, TanStack Start and Router, shadcn/ui and Applesauce. It follows the NIP-5D proposal and supported NAP capability contracts.
Source for this client
napplet.soy on GitHubNapplet
The project and its open ecosystem.
napplet.run
Explore the wider Napplet world.
NAPs
The contracts between a napplet and the client that runs it.
Boilerplate
The creator-maintained starting point for new napplets.
ngit & Gitworkshop
Git repositories and collaboration over Nostr.
Blossom
Content-addressed file storage for the Nostr ecosystem.
Applesauce
The Nostr libraries behind our discovery and signing.
ContextVM
Services over Nostr for shared scores and matchmaking.
An idea is enough to get started.
Make a little something