ArmoryHub — March 2026 Roundup
March was a big month. Four major features, a full security upgrade, and a pile of quality-of-life improvements. Here's everything that shipped.
New Features
Ballistics Calculator
Built-in trajectory solver that predicts bullet drop, wind drift, velocity, and energy at any distance — no third-party app required.
Select your firearm and ammunition, enter weather conditions (temperature, pressure, humidity, altitude), and get a full trajectory table with charts. Supports both G1 and G7 drag models, BC trueing from field data, spin drift, Coriolis effect, and shooting angle corrections.
For range day, there's a dedicated Range Card mode with quick-distance buttons, large glove-friendly controls, and a color-coded DOPE table you can reference at the bench or in the field.
Under the hood, this uses RK4 numerical integration and Fritsch-Carlson monotone cubic spline interpolation for transonic drag coefficients. Getting the math right took a while — turns out simulating a bullet flying through the atmosphere isn't as simple as it sounds.
Pro feature.
Wishlist
Save firearms, accessories, and parts you're eyeing to a unified wishlist. Track estimated prices, priority levels, and product links — then add items to your collection with a single tap.
-
Unified list — Firearms, accessories, and parts all in one place with type and priority filters
-
Hero photos — Full photo management with upload, reorder, and hero selection
-
Detail view — Three-column layout with stat cards, item information, and photo gallery
-
One-click add to collection — Converts a wishlist item into a real firearm, accessory, or part with all fields pre-filled. No retyping.
-
Type-specific fields — Caliber, action, barrel length, and capacity for firearms; accessory type and quantity for accessories; category, compatibility, and quantity for parts
-
Dashboard cards — Wishlist overview showing item counts and values by type, plus a high-priority items card listing your most wanted items
Malfunction Tracker
Track and resolve firearm malfunctions across your collection.
- Log from anywhere — Add malfunctions from the firearm detail page (Maintenance tab) or directly during a range session with a quick-add button that auto-links the trip, firearm, and ammunition
- Track details — Record suspected cause, resolution steps, and mark as resolved
- Firearm overview — New malfunctions info card on the firearm detail page showing full malfunction history and current status
- Dashboard card — See all unresolved malfunctions across your collection at a glance
Ammunition Allocation
Track where your rounds are without duplicating records. Allocate rounds from any ammo entry to different locations — loaded in magazines, in a second safe, at the range bag, wherever — while keeping everything under a single record.
Allocations show directly on the ammo card. When logging rounds fired during a range session, the ammo dropdown lets you pick which allocation you're drawing from. Edit or remove allocations at any time.
Security
Optional High-Entropy Passphrase
Your 6-digit PIN provides real encryption — your vault is fully encrypted and the PIN derives the key that protects it. But a PIN has roughly 20 bits of entropy, which means in the extremely unlikely event of a full offline database breach, a determined attacker with direct access to the encrypted payload could feasibly brute-force it.
To be clear, that scenario requires compromising Supabase infrastructure and the AWS infrastructure it runs on — Supabase is hosted on AWS with its own layers of encryption at rest, network isolation, and access controls. Combined with 310,000-iteration PBKDF2 key derivation, the likelihood is extremely low.
That said, I believe in building for worst cases. The new optional passphrase wraps your master encryption key with something computationally infeasible to brute-force even offline. A strong passphrase pushes entropy into the 80+ bit range, making an offline attack effectively impossible regardless of the attacker's resources or time horizon.
Day-to-day, nothing changes — you still unlock with your PIN. The passphrase is only needed when setting up a new device or after a session reset.
As with your PIN, there is no reset, no backdoor, no support override. Forgetting your passphrase means permanent, irreversible loss of your vault. This is by design — it's the property that makes it work.
Server-Side PIN Rate Limiting
PIN brute-force rate limiting has been moved from client-side to the server. Failed attempts are now tracked server-side, meaning lockout timers can't be bypassed by clearing browser data. If the security check can't be verified server-side, the attempt is blocked entirely — no fallback, no workaround.
Tradeoff: Slightly slower PIN validation, but significantly better security.
Biometric Unlock
Unlock ArmoryHub with Face ID, Touch ID, or Windows Hello on supported devices. Choose between two modes:
-
Extra layer — Biometrics as an additional security step before entering your PIN
-
PIN replacement — Use biometrics in place of your PIN for daily unlock
Works across iOS, iPad, Mac, Windows (via Windows Hello), and compatible web browsers. Your PIN remains the actual encryption key — biometrics just controls how you access it.
Improvements & Fixes
-
Responsive dashboard layout — Columns now auto-adjust based on actual content width (accounting for the sidebar). 2 columns under 800px, 3 at 800–1200px, 4 above 1200px. The column toggle still works as a manual override with an orange dot showing the recommended count.
-
Firearm total value now includes parts — The firearm information card now shows purchase price, current value, accessory value, parts value, and a total. Total value also displays next to the firearm in list view.
-
Updated dashboard cards — Improved UI across several cards with enhanced data displays. New Value Breakdown card showing totals for firearms, accessories, ammo, parts, and reloading supplies.
-
Simplified custom options in dropdowns — Type what you want in the search bar. If it matches, select it. If it doesn't, an "Add [your text]" option appears at the bottom. One click (or Enter) to add and select.
-
Inventory value bug fix — Accessories, parts, and reloading components with a quantity greater than 1 were only counted once in the total value. Fixed — 5 magazines at $10 each now correctly shows $50.
-
Custom date picker — New custom date picker for consistent UX across all platforms.
-
Firearm SKU field — Optional SKU field for users who keep tags or labels on their firearms. Shows as a monospace pill in list view, appears in the information card, and is searchable.
-
Form 3 for NFA items — Added Form 3 as a transfer document option for NFA-tracked items.
-
Lot numbers on ammo restock — Ammo purchase history now tracks lot numbers.
-
Improved tab/window switching — Previously, switching browser tabs triggered a Supabase token refresh that briefly unmounted the page, closing any open forms or modals. Fixed — subscription refreshes now happen silently in the background. Your forms stay open. (Auto-lock timer still works as expected.)
As always, shoot me an email at support@armoryhub.app with any app suggestions you have!
-Marc