Storage Planner (by Firsh)
A visual drag-and-drop tool for planning storage allocation across multiple drives, servers, and NAS devices.
About
Storage Planner helps you visualize and organize data distribution across different storage locations. Whether you're planning a server migration, organizing a homelab, or managing data across multiple drives, Storage Planner provides an interface to see exactly how and where your data fits.
Ideal for:
- Anyone juggling data across local drives, remote servers, and NAS devices
- Planning storage migrations
- Homelab enthusiasts organizing data across multiple drives
- Data hoarders managing large media collections
- Planning backup sets
This document covers all features, read through the sections below.
- Feedback: Chat with me on bsky: @firsh.dev
- Are you Hungarian? Az eszköz elérhető magyarul is.
Enjoying Storage Planner? If you find this tool useful, buy me a tea 🍵 via Stripe or support directly using crypto. Completely optional, but appreciated!
- BTC
bc1qwm8q89vl3hxzfugztf7p744hnuky7f7vk2s0vt - LTC
ltc1qehgstdq043fhy7th4gf8rs76gprd6vw54y3dqa - DOGE
DLPbYnt5afGzK9GQEYkKVt8qGpq5ESCu3M
Key Features
Storage Management
Multiple Storage Types
- Local Drives: Physical drives connected to your computer
- Remote Servers: Cloud storage or remote machines
- NAS Devices: Network-attached storage
- Unallocated Data: Holding area for data not yet assigned to a storage location
Flexible Sizing
- Enter sizes in GB or TB
- Specify "claimed" (advertised) vs "actual usable" capacity
- Automatically handles manufacturer vs. usable storage calculations
Visual Organization
- Influence the order of storage boxes using arrows on the floating bar
- Category-based color coding (blue for local, green for remote, purple for NAS)
- Filter visibility by storage type
Data Items
Size Tracking with Min/Max Scenarios
- Min Size: Minimum expected size (e.g., after compression or deleting)
- Current Size: Actual size right now
- Max Size: Maximum expected size (e.g., if data grows or is uncompressed)
- Toggle between views to see different scenarios
- Smart Syncing: Min and Max automatically sync with Current when left at default (indicated by a chain link icon). Manually setting them to equal Current re-establishes the sync link.
Drag-and-Drop Organization
- Drag data items between storage boxes
- Automatic capacity usage calculations
Backup Management
- Create linked backup copies with one click
- Backups stay synced with the original (name and size)
- Original has colorized dot indicators where it has a copy
- Double click for visual highlighting to easily see all copies of a data item
Progress Tracking
- Mark items as "done" with a checkbox (e.g. you have finished copying it) as a visual strikethrough for completed items
Capacity Planning
Real-Time Capacity Warnings
- Original color: Less than 90% full (safe)
- Yellow color: 90-100% full (getting tight)
- Red color: Over 100% full (won't fit!)
Visual Space Allocation
- Horizontal bar chart shows space usage at a glance, with clickable segments to highlight corresponding item(s)
- Each data item sized proportionally to its actual size
- Color-shaded for easy identification
Transfer Time Estimates
- Set your reasonable transfer speed
- See estimated transfer time for each data item
- Helps plan migration timing
Tally Summary
- See total data size vs available capacity
- Toggle between unique data (ignoring backups) and total data (counting everything)
- Respects storage category filters
Layouts
Vertical Masonry Layout (Compact)
- Boxes automatically fit into available space
- Minimizes empty space
- Great for seeing everything at once
Grid Layout (Relaxed)
- Uniform rows for predictable positioning and order
- Optional 2-row spanning for large boxes
- Better for focused work
Responsive Column Control
- Adjustable number columns with automatic ranges based on screen size
- Click the columns adjustment control to toggle automatic recommendation
Persistence & Sharing
Automatic Saving
- All changes saved instantly to your browser's localStorage
- Data persists across sessions
- No server, no account, no cloud
Import/Export
- Export your entire configuration as JSON
- Share planning files with others
Example Data
- Load pre-configured example to see most features by holding the lightbulb icon
- Great starting point for exploring the app, but wipe it any time
Reset
- Hold the reset button for 1.5 seconds to clear everything
- Same button loads example data when starting fresh
Appearance
Dark/Light Mode
- Toggle anytime with the theme button
Getting Started
Your First Storage Plan
1. Add Storage
- Click "Add Storage" in the top right
- Enter a name (e.g., "Main SSD")
- Enter size and unit (e.g., "2" TB)
- Choose "claimed size" for advertised capacity or uncheck for usable capacity
- Select category: Local, Remote, or NAS, this will determine its color
2. Add Data Items
- Click the "+" button inside a storage box (or in the Unallocated space)
- Name your data (e.g., "Photos Library", "Work documents", "Music library")
- Enter three sizes:
- Min: Smallest it could be (compressed) - optional, defaults to Current
- Current: What it is right now (required)
- Max: Largest it might grow to - optional, defaults to Current
- All sizes are in GB
- Tip: Min and Max will auto-sync with Current if left at default or manually set equal (look for the chain link icon)
3. Organize Your Data
- Drag data items between storage boxes to plan your setup
- Watch capacity indicators change in real-time
- Use the min/current/max toggle to see different scenarios
4. Plan for Redundancy
- Click the copy icon on a data item to create a backup
- Drag the backup to a different storage
- Edit the original and backups stay synced
- Double click any item to highlight all its copies, or click a segment in the visualizer
Tips & Tricks
Transfer Speed Planning
- Set transfer speed to estimate how long migrations will take
Category Filters
- Click category buttons (Local/Remote/NAS/Unallocated) to hide/show storage types
- Helps focus on specific parts of your setup
- Tally summary respects filters
Tally Toggle
- Click the tally summary to switch between:
- Unique: Counts each original item once (ignores backups)
- Used: Counts every item including all backup copies
- Useful for understanding actual vs redundant storage needs
View Modes
- Min: See best-case scenario (everything compressed/minimal)
- Current: See actual state right now
- Max: See worst-case scenario (everything at maximum size)
- Great for capacity planning: "Will it still fit if everything grows to max?"
Unallocated
- Special storage with unlimited capacity
- Always first (unless filtered out)
- Use it as a staging area for unassigned data
- Helps you see what still needs a home
Data Privacy
100% Client-Side
- No data is sent to any server
- No tracking, analytics, or telemetry
- No accounts or sign-ins required
- Free to use
Your Data Stays Local
- Everything stored in your browser's localStorage
- Data persists until you clear browser data
- Export JSON files for backup
Technical Details
Built With
- React 19
- TypeScript
- Tailwind CSS v4
- Vite
- @hello-pangea/dnd (drag-and-drop)
Browser Compatibility
- Modern browsers
- Requires JavaScript and localStorage
- Best experienced on desktop with a mouse for drag-and-drop interactions
FAQ
Q: Can I use this on mobile/tablet?
A: Storage Planner works on mobile devices with responsive layouts and touch support, but the experience is optimized for desktop use with a mouse. Larger screens provide better visibility for complex storage planning scenarios.
Q: Can I collaborate with others?
A: Not in real-time, but you can export your plan as JSON and share the file with others. They can import it to see and modify your layout.
Q: What happens if I clear my browser data?
A: Your storage plan will be deleted. Export the JSON to back up your work.
Q: Can I import real filesystem data?
A: Not currently, as the tool doesn't interact with your system in any way. You'll need to manually enter data item sizes. Consider using du -sh (Linux/Mac) or folder properties (Windows) to get sizes, then entering them manually.
Q: Why "claimed" vs "actual usable" size?
A: Drive manufacturers advertise capacity in decimal (1 TB = 1000 GB), but operating systems use binary (1 TiB = 1024 GiB). A "2 TB" drive might only show as ~1.82 TB usable. Storage Planner helps you plan with real-world capacities.
Q: Can backups have different sizes than originals?
A: No, backups are always synced to match the original's sizes. This is intentional - backups are commonly identical copies or mirrors. If you need different sizes or overhead for versioning, create additional data items.
Q: How do I delete a backup without deleting the original?
A: Click the delete button on the backup specifically. Deleting an original will delete all its backups, but deleting a backup only deletes that copy.
Q: Can I change the color scheme of the categories?
A: Category colors are fixed (blue/green/purple for local/remote/NAS).
Q: What's the difference between masonry and grid layout?
A: Masonry auto-fits boxes to minimize empty space (compact). Grid uses uniform rows with optional 2-row spanning (relaxed). Try both and see what you prefer! Once you have lots of data items and varying amount of them across storage boxes, the difference becomes more meaningful.