https://github.com/collapsinghierarchy/noisybuffer
E2EE form data (e.g., contact/wait-list) API – works on any static site, uses post-quantum hybrid KEMs (Kyber 768 + X25519) under the hood, streams blobs straight into the cloud, and lets owners decrypt In-Browser.
https://github.com/collapsinghierarchy/noisybuffer
contact-form e2ee forms quantum-safe waitlist
Last synced: 11 months ago
JSON representation
E2EE form data (e.g., contact/wait-list) API – works on any static site, uses post-quantum hybrid KEMs (Kyber 768 + X25519) under the hood, streams blobs straight into the cloud, and lets owners decrypt In-Browser.
- Host: GitHub
- URL: https://github.com/collapsinghierarchy/noisybuffer
- Owner: collapsinghierarchy
- License: gpl-3.0
- Created: 2025-07-11T18:00:48.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-12T10:03:03.000Z (11 months ago)
- Last Synced: 2025-07-12T11:49:36.397Z (11 months ago)
- Topics: contact-form, e2ee, forms, quantum-safe, waitlist
- Language: Go
- Homepage:
- Size: 38.1 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NoisyBuffer — End-to-End Encrypted Forms API
NoisyBuffer is an end-to-end-encrypted (E2EE) form backend for static sites and Jamstack pages.
A drop-in `` seals every field in the browser with post-quantum crypto (Kyber-768 × X25519 → AES-256-GCM) and streams an opaque blob to a lightweight Go API—so neither your server nor any third-party ever sees plaintext. Plug it in where you’d use Formspree or Netlify Forms and stay GDPR-proof and post-quantum ready.
> **Status:** early WIP — API surface will change
---
## ✨ Features
| Capability | Details |
|------------|---------|
| **True E2EE** | Form data is encrypted *in the browser*; the server only stores opaque blobs. |
| **Post‑quantum hybrid** | Kyber‑768 × X25519 → AES‑256‑GCM. With [hpke-js](https://github.com/dajiaji/hpke-js) and [WebCrypto API](https://developer.mozilla.org/en-US/docs/Web/API/Crypto) |
| **Static‑site friendly** | Works behind GitHub Pages, Netlify, S3, etc. — just drop the JS snippet. |
| **Owner export** | Stream `/nb/v1/pull` → decrypt locally → JSON / CSV. |
*XWING KEM and browser‑based exporter are on the roadmap.*
---
## 🚀 Quick Start (dev)
```bash
git clone https://github.com/whitenoise/noisybuffer
cd noisybuffer
docker compose up -d # Postgres + API
open http://localhost:1234 # demo Push/Pull page
```
---
## 🏗️ Embed on any page (Preview of the Functionality)
```html
<script src="URL/nb.js">
NB.init({appId:'bc8c5b3c-b496-4dcc-8551-575978214c44'})
Join wait‑list
```
The snippet fetches your public key, encrypts fields, and calls `/nb/v1/push`.
---
## 📦 Project layout
```
cmd/noisybufferd/ main.go + embedded demo UI
handler/ HTTP handlers (push, pull, key)
service/ domain logic (validation, E2EE)
store/postgres/ SQL adapter (implements store.Store)
web/ index.html, app.js test harness
```
> Contributions welcome! Open issues or pull requests to discuss improvements.