Skip to content

aka-vm/encoder-decoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Encoder · Decoder

A lightweight, browser-based toolkit for everyday encoding and formatting tasks. No build step for the app — open it locally and go.

Demo — JSON formatting and Checksum hashing

Why this exists

Every feature here is something I use day to day at work. Before this app, I relied on a mix of pages from Google, tools coworkers shared, and shell commands — workable, but scattered.

I built this to pull those workflows into one place that runs locally in the browser. Nothing you paste is sent to a server. No ads, and no guessing whether a random online tool is logging your input.

This app What I used before
JSON JSON Formatter
Base64 base64decode.org
Checksum Hash Forge — built by coworker Achintya
Unix Time unixtimestamp.com
Key Gen Shell one-liners and ad-hoc scripts

Tools

Tool What it does
JSON Format, minify, and validate JSON; optional single-line primitive arrays
Base64 Encode / decode UTF-8 text with swap support
Checksum Hash files or text — SHA-256/512/1 (Web Crypto), MD5, CRC32, XXH3
Key Gen Generate UUID v1/v4/v7, ULID, NanoID, or MongoDB ObjectID
Unix Time Convert between Unix timestamps and human-readable dates; includes a native date/time picker

Drag the tool pills to reorder them. Drop a file onto JSON or Base64 input panels to load its contents.

Local hosting

Everything runs on your machine — nothing is deployed or exposed to the internet.

Pick a server (Python, Go, or TypeScript)

The same static app can be served with three small implementations so you can use whatever runtime you already have installed — no need to install Python just for this if you have Go or Node, and vice versa.

Runtime Command Notes
Python 3 python3 serve.py No extra deps
Go 1.21+ go run serve.go From repo root
Node / TS npx tsx serve.ts Or node --experimental-strip-types serve.ts on Node 22+

Port — set via the PORT environment variable (default 8444):

PORT=3000 python3 serve.py
PORT=3000 go run serve.go
PORT=3000 npx tsx serve.ts

Open the URL printed in the terminal. All servers bind to 127.0.0.1 only, so nothing is reachable from other devices on your network.

Press Ctrl+C to stop.

Alternative — any static server

PORT=8080 python3 -m http.server 8080 --bind 127.0.0.1

ES modules require a local server — opening index.html directly from the filesystem won't load the JS modules.

Project layout

encoder-decoder/
├── index.html          # Page structure
├── css/styles.css      # All styles
├── js/
│   ├── main.js         # Entry point
│   ├── config.js       # Shared state & tool options
│   ├── storage.js      # localStorage persistence
│   ├── utils.js        # Clipboard, formatting helpers
│   ├── ui.js           # Pill bar & option toggles
│   ├── json.js, base64.js, checksum.js, keygen.js, utime.js
│   └── hash/           # crc32, md5, xxh3
├── serve.py            # Local server (Python)
├── serve.go            # Local server (Go)
├── serve.ts            # Local server (TypeScript / Node)
├── AGENTS.md           # Guide for coding agents
├── CLAUDE.md           # Short agent entry point
└── LICENSE

Keyboard shortcuts

  • JSONCtrl+Enter / Cmd+Enter to format

License

See LICENSE.

About

Browser-based toolkit for JSON, Base64, checksums, ID generation, and Unix time — no build step, runs locally

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors