ULDA – Client-side encryption with a simple JavaScript API
Hi HN, I’m Vitalii. Mark Shaposhnik and I have been building ULDA, a library intended to make client-side encryption easier to use in applications. It started with our own project: we needed to authorize updates to clien…
Hi HN, I’m Vitalii. Mark Shaposhnik and I have been building ULDA, a library intended to make client-side encryption easier to use in applications. It started with our own project: we needed to authorize updates to client-side encrypted data without maintaining identity-based user accounts. Mark designed the authorization model and built an early implementation; I developed it into the current SDK and tooling. The JavaScript SDK works with JSON resources and handles client-side encryption, authorization of resource updates, and synchronization. Payload encryption uses AES-256-GCM through Web Crypto, while ULDA provides its own SHA-256-based authorization model. We built ULDA Room, a shared furniture planner, to make this tangible. Send an invitation link to someone on another device and arrange the room together. Changes synchronize between participants, with room content encrypted before it reaches the server. No signup is required, and anyone with the full invitation link can read and edit the room. To try it on your own, click “Open second window” and move an item. The encryption inspector lets you compare readable client data with an encrypted record stored on the server. Demo resources expire after 24 hours. The SDK is source-available under our Community Source license. Demo: https://demo.ulda.io/ Documentation: https://docs.ulda.io/ SDK: https://github.com/ulda-io/ulda-auth We’d appreciate feedback on the developer experience. After trying the demo or browsing the docs, what feels unclear about the concept or API? If you try integrating the SDK, we’d also like to hear where you get stuck.
Discuss this product