https://github.com/tobua/encrypted-thread-challenge
Submission for Weekly Challenge #4 of Algorithm Arena
https://github.com/tobua/encrypted-thread-challenge
browser challenge crypto
Last synced: 3 months ago
JSON representation
Submission for Weekly Challenge #4 of Algorithm Arena
- Host: GitHub
- URL: https://github.com/tobua/encrypted-thread-challenge
- Owner: tobua
- Created: 2024-02-11T20:59:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-11T22:39:58.000Z (over 1 year ago)
- Last Synced: 2025-01-15T07:32:32.399Z (4 months ago)
- Topics: browser, challenge, crypto
- Language: TypeScript
- Homepage: https://encrypted-thread-challenge.vercel.app
- Size: 23 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Encrypted Thread Challenge for Algorithm Arena
Browser-encrypted thread that can be shared through the url. Submission for the fourth weekly challenge on [Algorithm Arena](https://github.com/Algorithm-Arena/weekly-challenge-4-encrypted-thread). The project uses **Bun**, **React**, **TypeScript**, **Rsbuild** and **Biome**.
Demo: [Video Download](https://github.com/tobua/encrypted-thread-challenge/raw/main/video.mov) or [𝕏 Post](https://twitter.com/matthiasgiger/status/1756808521977401378).
## Description
The user can add one of more replies to the initial thread. By pressing the share button then can add their name and pick an optional password. Using the password and the Browser `crypto` API the replies with be encrypted and added to the URL. The URL can now be shared with somebody else without any middlemen being able to read the message without also having access to the password. The end user can then enter the password to decode the contents from the URL hash resulting in the full thread being displayed. Once a password is entered it's also stored in `sessionStorage` to persist during page reloads.
## Installation
```sh
bun install
bun start # Start and open the application in the browser.
bun format # Format files with Biome.
bun lint # Lint files with Biome.
bun run build & bun preview # Production preview.
```