https://github.com/innopeak-gmbh/organizrr
Customer files organizer using Vite/React & Go WASM.
https://github.com/innopeak-gmbh/organizrr
go pdf pdfcpu pwa react vite wasm
Last synced: about 2 months ago
JSON representation
Customer files organizer using Vite/React & Go WASM.
- Host: GitHub
- URL: https://github.com/innopeak-gmbh/organizrr
- Owner: InnoPeak-GmbH
- License: mit
- Created: 2025-04-08T08:15:12.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-04-09T07:50:55.000Z (about 2 months ago)
- Last Synced: 2025-04-14T23:46:22.987Z (about 2 months ago)
- Topics: go, pdf, pdfcpu, pwa, react, vite, wasm
- Language: TypeScript
- Homepage: https://organizrr.innopeak.ch
- Size: 504 KB
- Stars: 6
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://github.com/pdfcpu/pdfcpu) |
| WASM Loader | Native via `wasm_exec.js` |
| Build | Multi-stage Dockerfile for production deployment |---
## π Getting Started
### 1. Clone the Repo
```bash
git clone https://github.com/InnoPeak-GmbH/organizrr.git
cd organizrr
```### 2. Install JS Dependencies
```bash
npm install
```### 3. Compile Go to WASM
Make sure you have Go installed (>= 1.21):
```bash
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
```bash
npm run dev
```App will be served at `http://localhost:5173`.
---
## π¦ Production Build
```bash
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````bash
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](https://organizrr.innopeak.ch)
- π» Code: [github.com/InnoPeak-GmbH/organizrr](https://github.com/InnoPeak-GmbH/organizrr)