Self-hosting is hereRead more →
← Back to blog

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:

  1. Extra layer — Biometrics as an additional security step before entering your PIN

  2. 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