Customer files organizer using Vite/React & Go WASM. https://organizrr.innopeak.ch
Go to file
2025-04-08 20:17:28 +02:00
.vscode chore: 🔧 add wasm build vscode task 2025-03-25 18:37:46 +01:00
deploy ci: 👷 move to innopeak namespace 2025-04-08 10:19:01 +02:00
public feat: add Vite PWA plugin and configure icons/meta/manifest 2025-04-04 15:57:37 +02:00
src feat: implement manually add file, use every() to check if pdfs can be dropped, implement file delete, remove nested scrollarea for document preview 2025-04-08 20:17:28 +02:00
.dockerignore ci: 👷 add dockerfile and drone build pipeline 2025-03-25 18:14:37 +01:00
.drone.yml ci: 👷 run main pipelines on custom event 2025-04-08 19:07:13 +02:00
.gitignore feat: implement v2 organizrr with file merge support, overhauled ui/ux and indicator for active llm queries 2025-04-07 18:19:38 +02:00
Dockerfile ci: 👷 add dockerfile and drone build pipeline 2025-03-25 18:14:37 +01:00
go.mod feat: 🎉 implement web-based files organizer with Go wasm bindings 2025-03-25 18:10:10 +01:00
go.sum feat: 🎉 implement web-based files organizer with Go wasm bindings 2025-03-25 18:10:10 +01:00
index.html feat: add Vite PWA plugin and configure icons/meta/manifest 2025-04-04 15:57:37 +02:00
LICENSE chore: 📄 add license and author info 2025-04-08 10:27:08 +02:00
main.go feat: implement v2 organizrr with file merge support, overhauled ui/ux and indicator for active llm queries 2025-04-07 18:19:38 +02:00
package-lock.json feat: add Vite PWA plugin and configure icons/meta/manifest 2025-04-04 15:57:37 +02:00
package.json chore: 📄 add license and author info 2025-04-08 10:27:08 +02:00
package.json.md5 feat: 🎉 implement web-based files organizer with Go wasm bindings 2025-03-25 18:10:10 +01:00
postcss.config.js feat: 🎉 implement web-based files organizer with Go wasm bindings 2025-03-25 18:10:10 +01:00
README.md docs: 📝 remove pnpm from docs 2025-04-08 15:50:44 +02:00
tsconfig.json feat: implement v2 organizrr with file merge support, overhauled ui/ux and indicator for active llm queries 2025-04-07 18:19:38 +02:00
tsconfig.node.json feat: 🎉 implement web-based files organizer with Go wasm bindings 2025-03-25 18:10:10 +01:00
vite.config.ts chore: 🔧 remove purpose from icons to allow pwa installation 2025-04-07 19:08:54 +02:00

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 your src 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:

  1. Builds the Go WASM binary and copies wasm_exec.js
  2. Installs Node deps and builds the frontend
  3. 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. Its 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.