Skip to main content
SafeNSound

Version History

A record of every major feature release since SafeNSound launched.

v1.20.0February 18, 2026

Clickwrap Terms & Legal Pages

  • Legally compliant clickwrap modal with three independent checkboxes — Terms of Use, Prohibited Conduct, Privacy Notice
  • Full-page /terms and /privacy routes with complete legal text
  • Acceptance state persisted to localStorage with version tracking and ISO timestamp
v1.19.69February 18, 2026

Hex Grid Stability & GPU Churn Fix

  • Fixed hex grid disappearing at zoom 3.5 — reverted padBounds from wrapLng to clamping (prevents west > east inversion at wide zoom)
  • Anti-meridian aware filterByBounds and filterCellsByBounds for Alaska/Aleutian coverage
  • Added dataComparator to H3HexagonLayer — skips GPU buffer recalc when filtered content is identical
v1.19.67February 18, 2026

12-Bug Deep Static Analysis Sweep

  • Clamped route safety scores to 0-100 range (was allowing negative and over-100)
  • Fixed isMobile useState lazy init — first fetch was using desktop limit on mobile
  • Switched H3 prefetch to Promise.allSettled — one failed tier no longer kills all five
  • Fixed CheckMyArea isSearching stuck state on rapid search abort
v1.19.420February 18, 2026

Data Correctness & Map Accuracy Fixes

  • Fixed stale closure in fetchApiPoints by passing mapZoom as parameter instead of capturing from render scope
  • Added bounds-containment check to incremental H3 filter — prevents sparse grids after map jumps
  • Applied classification filter (dcWhere) to nsopw_offenders query for accurate category filtering
  • Used nullish coalescing (p.count ?? 1) to prevent inflating zero-count areas in scoring
v1.19.369February 18, 2026

Codebase Deduplication

  • Consolidated 6 identical CSV parsing blocks into shared forEachCsvRow helper in h3-scoring
  • Reused shared clampLat/wrapLng/filterByBounds from spatial-cache instead of inline duplicates
  • Hoisted TIME_OF_DAY_BUTTONS and VALID_TIMES to module-level constants
v1.19.3February 18, 2026

Pareto Render Pipeline

  • Ref-based points cache with version counter — breaks the filter→score memo cascade during panning
  • Quantized viewport fetch dedup — micro-pans within the same grid cell skip redundant API calls
  • Incremental H3 viewport filtering from previous subset instead of full 50k-cell cache
  • 100% padding on viewport filter bounds for dramatically better fast-path hit rate
v1.19.2February 18, 2026

H3 Server Cache Optimization

  • Baked lat/lng coordinates into H3 cells at aggregation time — computed once, cached forever
  • Eliminated per-request cellToLatLng mapping in the h3data API route
  • Removed redundant CellWithCoords interface and addCoords function
v1.19.1February 18, 2026

Instant Point Fetch

  • Removed debounce from points API fetch — fires immediately at zoom 12+
  • Abort controller handles rapid-fire panning without debounce delay
v1.19.0February 18, 2026

Zoom-Gated Additive Cache

  • Offender red dots now use a grow-only additive cache at zoom 12+
  • Zoom-gated fetch prevents unnecessary point requests at low zoom levels
  • Cache cleared only on time-of-day change — preserves accumulated density during panning
v1.18.69February 18, 2026

Chroma Wave Text & Icon

  • Rainbow text sweep on filter button label via background-clip:text animated gradient
  • Hue-rotate color cycling on filter icon — GPU-composited, zero repaints
  • Replaced mix-blend-mode overlay that was coloring the entire button background
v1.18.67February 18, 2026

Chroma Glow Border & Mobile Polish

  • Spinning conic-gradient chroma border around the filter button
  • Centered mobile disclaimer with scrolling text at half-width
v1.18.369February 18, 2026

GPU & Render Performance

  • Eliminated GPU/render performance bottlenecks in tooltip, deck.gl, backdrop-blur, and will-change
  • Compact mobile Safe Index and Legend with glass-muted treatment on all map overlays
  • Aligned mobile map controls — same-row time-of-day, matched filter buttons
v1.18.00February 18, 2026

Control Bar Redesign & Mobile Hotfix

  • Relocated map legend into the floating control bar for a symmetric layout
  • Bifurcated mobile and desktop time-of-day controls with dual-render pattern
  • Rewrote all floating controls as mobile-first to fix layout breakage on small screens
  • Safe Index and Legend now visible on mobile with compact sizing
v1.17.67February 17, 2026

Version Sync Fix

  • Footer bar version now derived from changelog — single source of truth
v1.17.0February 17, 2026

Design Token Cleanup

  • Renamed color tokens to color-agnostic names (accent instead of amber-gold)
  • Consistent token naming across 25 component and style files
v1.16.0February 17, 2026

Zoom-Resilient Layout

  • Fluid sidebar and panel widths that adapt to any browser zoom level
  • Header navigation collapses to hamburger menu at narrower viewports
  • CSS custom properties for consistent layout dimensions across pages
  • Portal dropdown overflow guards for small screens
v1.15.0February 17, 2026

Alert Ribbons

  • Animated safety alert ribbons on map page
  • Performance-optimized rendering with static scanlines
  • Proper z-index layering with sidebars and filter drawers
v1.14.0February 17, 2026

Infrastructure Improvements

  • H3 hex scoring engine migrated from local files to Supabase
  • Preloaded all H3 hex tiers on mount for zero-latency zoom and pan
  • Version history page with changelog timeline
  • Repo cleanup: removed data CSVs and stale config files
v1.13.0February 16, 2026

Donation Support

  • One-click contract address copy in header
  • Streamlined crypto donation flow
v1.12.0February 16, 2026

Registry Accuracy Corrections

  • Statistical corrections for 12 states with NSOPW data gaps
  • Per-capita population normalization for safety rankings
  • Census-based population weighting for fair state comparisons
v1.11.0February 15, 2026

Performance Hardening

  • Eliminated render cascades and stale data issues
  • Improved request lifecycle management
  • Map tile failure resilience
v1.10.0February 15, 2026

Poverty Data Integration

  • USDA/Census SAIPE 2023 county-level poverty rates (~3,200 counties)
  • Continuous risk scale for poverty correlation
  • Updated transparency page with poverty methodology
v1.9.0February 15, 2026

College Safety Layer

  • IPEDS college and university campus data (~5,500 institutions)
  • College security layer with time-of-day modifiers
  • Campus presence as positive safety factor in scoring
v1.8.0February 13, 2026

Stability & Polish

  • Mobile compatibility improvements across all pages
  • Map rendering stability enhancements
v1.7.0February 12, 2026

New York & Minnesota Expansion

  • 15,000+ New York offender records (38x increase)
  • 1,100+ Minnesota offender records (1.7x increase)
  • Improved geocoding for previously unlocatable records
v1.6.0February 12, 2026

Social & Analytics

  • Open Graph and Twitter card images for rich link previews
  • Web analytics integration
v1.5.0February 12, 2026

Mobile Optimization

  • Responsive layout with mobile-first breakpoint system
  • Collapsible sidebar sections with expandable data layers
  • After-Hours mode for nighttime safety assessment
  • Touch-optimized map interaction
  • Compact controls for small screens
v1.4.0February 12, 2026

UI Refinements

  • Compact map legend
  • Expandable footer with detailed disclaimers
  • Corrected safety score labels and color scale alignment
v1.3.0February 12, 2026

School & Route Safety

  • School safety search with multi-source scoring model
  • Route safety analysis with real-time routing
  • Time-of-day safety adjustments (daytime, evening, after-hours)
  • Filter panel with category controls
v1.2.0February 11, 2026

H3 Hexagonal Grid

  • H3 hexagonal spatial indexing for density-aware visualization
  • 5-tier resolution system adapting to zoom level
  • Improved hex aggregation accuracy
v1.1.0February 11, 2026

Safety Tools

  • Check My Area: address search with safety report generation
  • Safety rankings by state, county, and ZIP code
  • Saved reports with comparison view and inline notes
  • Police precinct boundaries for 8 major cities
v1.0.0February 11, 2026

Platform Rebuild

  • Complete rebuild on modern full-stack framework
  • MapLibre GL + deck.gl rendering engine
  • Server-side spatial queries via PostGIS
  • Multi-page navigation: Map, About, School Safety, Route Safety, Transparency
v0.4.0February 11, 2026

Nationwide Coverage

  • 246,000+ additional offender records across two data batches
  • Full coverage across all 50 states and territories
  • Removed regional limitations — all areas scored by real data
v0.3.0February 11, 2026

Visual Redesign

  • Dark editorial theme with custom typography
  • Redesigned sidebar with categorized filter groups
  • Security hardening and performance improvements
v0.2.0February 11, 2026

NSOPW Integration

  • Nationwide sex offender data via NSOPW registry
  • 65,000+ geocoded offender records
  • Replaced sample data with real public datasets
v0.1.0February 10, 2026

Foundation

  • Interactive hex grid safety map with color-coded scores
  • 22-category data layer filter system
  • Sex offender registry visualization at street level
  • Safety scoring model (base-100 weighted risk deduction)