For one person Box is folders with a sharing layer: uploads and downloads, a trash, ten file versions and links that expire. An agent can build that as a small server with a WebDAV endpoint, so Finder and Explorer mount it, in a weekend. The weekend goes on the parts around it: resumable uploads for big files, links that open cleanly for people with no account, and path handling that cannot be tricked into leaving the data folder. Box Sign, editing Office files in the browser, the mobile apps and Box's own uptime stay behind, so a rebuild suits someone who mostly needs private storage and links.
Before you buildBox Individual is free with 10 GB and 250 MB per file. If you stay under that, you may not need Personal Pro at all; Nextcloud or Syncthing cover the rest.
Build me a personal file locker to replace Box Personal Pro. Requirements: - Go 1.23 in one repo that builds a single binary `locker`. `locker serve` listens on http://localhost:4880 and serves a small web UI (embedded with `embed`, plain HTML and a little vanilla JS) plus a WebDAV endpoint at /dav. - Storage: files on disk under DATA_DIR from .env (default ./data/files); metadata in SQLite at ./data/locker.db through `modernc.org/sqlite` (no cgo): path, size, SHA-256, mtime, version number and a deleted flag. STORAGE_LIMIT_GB in .env (default 100) refuses uploads past the limit and the home page shows usage. - WebDAV with `golang.org/x/net/webdav` and a custom FileSystem that records every write as a new version; HTTP basic auth against a bcrypt hash in .env (`golang.org/x/crypto/bcrypt`). It must mount in macOS Finder, Windows Explorer and `rclone`. - Versions: keep the last 10 versions of each file (a setting) and a 30-day trash. `locker restore <path> --version N` and a button in the UI do the same thing. - Web UI: browse, drag-and-drop upload, rename, move, delete, name search, in-browser preview of images and PDFs, and folder download as a streamed ZIP. Uploads over 100 MB go through tus (`github.com/tus/tusd/v2`) so an interrupted upload resumes; the size cap is in .env, default 5 GB. - Share links: from any file or folder create /s/<token> with an optional password (argon2id, `golang.org/x/crypto/argon2`), an expiry of 1 hour, 1 day, 7 days or 30 days, and an optional download limit. Tokens are random 128-bit values stored hashed; revoking deletes the link. - Tests with `go test`: version pruning, share-link expiry and password checks, and path traversal attempts (`../`, encoded slashes, symlinks) against the WebDAV and download routes. - Single user. No accounts, no telemetry, local-first. No outbound calls. - Out of scope: e-signatures, Office co-editing, comments, a mobile app, online-only placeholder files, sharing between accounts. - README: put it behind HTTPS with Caddy before sharing /s/ links, how to mount /dav on each OS, backing up DATA_DIR and locker.db together with restic, and a warning not to drop Box until a restore has been tested.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Box Personal Pro.
Extend the file locker in this folder. Requirements: - From any folder create a drop link /d/<token> that only accepts uploads: no listing, no downloads, no overwriting existing files. - Options per link: expiry, total size cap, maximum file count and an optional password. - Store drops in the target folder as "name (from <label>).ext" and show them in a Recent drops list with the link label and time. - Reuse the tus upload path, and reject anything that escapes the folder. - Add tests for the caps and the expiry, and update the README.
Add a backup command to the file locker in this folder. Requirements: - `locker backup` runs `restic backup` on DATA_DIR and a SQLite snapshot of locker.db made with the online backup API, to RESTIC_REPOSITORY with RESTIC_PASSWORD in .env. - `locker verify` runs `restic check --read-data-subset=2%` and re-hashes 20 random files against the SHA-256 values in the database. - A launchd plist and a systemd timer that run the backup at 03:00, and a notification on failure (ntfy topic or macOS notification). - README: how to restore one file and the whole folder from restic.
Add an importer to the file locker in this folder. Requirements: - `locker import <folder>` takes a folder unpacked from Box's ZIP downloads and copies it in, keeping the folder layout and the file modification times. - Skip files whose SHA-256 is already stored at the same path; print counts of new, skipped and failed files before writing anything and ask for confirmation. - Write a report to ./data/import-<date>.txt listing every file that could not be copied. - Never modify the source folder. Update the README with the Box download steps.
Add document previews to the file locker in this folder. Requirements: - For .docx, .xlsx and .pptx files, convert to PDF with `soffice --headless --convert-to pdf` in a temp folder and cache the PDF by the file's SHA-256 under ./data/previews. - Show the PDF in the existing viewer; if LibreOffice is missing, show a download button and a message saying so. - Limit conversions to 2 at a time, 60 seconds each, and never run them on files over 50 MB. - Update the README with the LibreOffice install step.
Box is a name that companies and clients already know, so the person on the other end of a link has seen it before and can open it in a browser. For one person, 100 GB, ten versions and e-signatures in one place are the draw, and a long-running vendor is easier to explain than a server in a cupboard.
Estimate · On a machine you already run, the cost is the backup bucket: restic to Backblaze B2 lists $6.95 per TB a month, under $1 for 100 GB. A small rented server adds a few dollars up to about $10 depending on the provider (not checked here). The build is token usage on your agent plan.
Checked 2026-10-20 against Box Personal Pro's docs: 1, 2, 3, 4, 5
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Individual | $0 | $0 | 10 GB of storage, 250 MB upload limit, 1 file version, 5 Box Sign signature requests a month. |
| Personal Pro | $14 | $10 | Single user: 100 GB of storage, 5 GB upload limit, 10 file versions, 15 Box Sign requests a month, signer verification and password protection on signatures. |
| Business Starter | — | $5/user | For up to 10 users, minimum 3: 100 GB of storage, 2 GB upload limit, 25 file versions, 10 Box Sign requests a month, support in local business hours. |
| Business and above | custom | — | Unlimited storage and external collaborators, unlimited web e-signatures, 1,500+ integrations, data loss protection, watermarking and the admin console. |
The Individual plan is free: 10 GB of storage, 250 MB per file and one file version.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Box Sign: signature requests (15 a month on Personal Pro) with signer verification, Editing Office and Google files from inside Box, plus Box Notes and Canvas.
About $14 a month on the Personal Pro plan, $168 a year (checked 2026-10-20).
Box Sign: signature requests (15 a month on Personal Pro) with signer verification; Editing Office and Google files from inside Box, plus Box Notes and Canvas; The desktop app that shows cloud files without storing them all locally; The phone apps, including camera upload; Box's data centres and uptime behind your 100 GB, instead of one machine. If any of those matter to you, keep paying.
Yes: Nextcloud (open source), OpenCloud (open source), Seafile (open source).