.vscode | ||
deploy | ||
public | ||
src | ||
.dockerignore | ||
.drone.yml | ||
.gitignore | ||
Dockerfile | ||
go.mod | ||
go.sum | ||
index.html | ||
LICENSE | ||
main.go | ||
package-lock.json | ||
package.json | ||
package.json.md5 | ||
postcss.config.js | ||
README.md | ||
tsconfig.json | ||
tsconfig.node.json | ||
vite.config.ts |
Organizrr
Organizrr is a local-first, open-source file labeling and PDF splitting/merging tool built to support back office workflows in the financial advisory sector.
Runs fully in the browser (no backend, no file uploads), and can be installed as a PWA. Built with React, Go, and WASM.
🧱 Tech Stack
Layer | Tech |
---|---|
Frontend | React, Vite, Mantine |
PWA | Vite PWA Plugin |
PDF Engine | Go (compiled to WASM) using pdfcpu |
WASM Loader | Native via wasm_exec.js |
Build | Multi-stage Dockerfile for production deployment |
🚀 Getting Started
1. Clone the Repo
git clone https://github.com/InnoPeak-GmbH/organizrr.git
cd organizrr
2. Install JS Dependencies
npm install
3. Compile Go to WASM
Make sure you have Go installed (>= 1.21):
GOOS="js" GOARCH="wasm" go build -o ./src/main.wasm ./go
cp "$(go env GOROOT)/lib/wasm/wasm_exec.js" ./src
This will output the
main.wasm
binary and include the Go JS runtime shim (wasm_exec.js
) in yoursrc
folder.
4. Start Dev Server
npm run dev
App will be served at http://localhost:5173
.
📦 Production Build
npm run build
Static assets will be built to dist/
.
🐳 Docker Build (Multi-Stage)
This project includes a multi-stage Dockerfile
:
- Builds the Go WASM binary and copies
wasm_exec.js
- Installs Node deps and builds the frontend
- Serves it using
vercel/serve
docker build -t organizrr .
docker run -p 3000:3000 organizrr
App will be served at http://localhost:3000
.
💡 Project Goals
Organizrr is not a commercial product. We built it to improve the efficiency of internal teams who:
- Receive a large number of files from customers
- Regularly split, merge, and label PDFs
- Need to work without uploading sensitive data to the cloud
Organizrr runs entirely in-browser and respects privacy by design. It’s open-source and built to be forked, modified, and branded.
🛠 Customize It
- Want to change file label presets? Edit them in the
src/utils.tsx
file. - Want to theme or rebrand? The Mantine-based UI is fully customizable.
- Need different PDF logic? Extend the Go WASM module.
📜 License
MIT License.
📎 Links
- 🔗 Live: organizrr.innopeak.ch
- 💻 Code: github.com/InnoPeak-GmbH/organizrr