Signal Stress: Crowdsourced, Tamper-Proof Geospatial Network Accountability

*Note: use your Mobile Data connection for testing *

Signal Stress is a next-generation, community-driven geospatial web platform that holds mobile network operators (telecom carriers) accountable. By combining cryptographic verification, live network intelligence, and geospatial database queries, it maps true cellular data performance block-by-block and exposes provider dead zones and throttling.

The Problem Statement

Consumers pay premium rates for mobile data plans, yet they frequently experience undocumented dead zones, carrier-level speed throttling, and unstable connections. Traditional tools to measure network performance suffer from significant limitations that obscure these failures:

  1. Carrier Traffic Prioritization & Zero-Rating: Many telecom operators configure their Quality of Service (QoS) queues to prioritize traffic to traditional speed testing websites (e.g., Speedtest.net, Fast.com). This artificially inflates performance figures during tests, masking the slow speeds users actually experience on normal websites.
  2. Wi-Fi & Broadband Contamination: Traditional mobile speed test applications often allow tests to be conducted over home Wi-Fi or fiber broadband connections. This pollutes the database, making it difficult to distinguish true cellular mobile network performance from local broadband quality.
  3. Data Forgery & Bot Spoofing: Standard speed test APIs are prone to botting or spoofing. Malicious actors can send arbitrary HTTP POST payloads containing forged high or low speeds, corrupting the platform's reliability.
  4. Coarse Spatial Resolution: Most network metrics are reported as macro-level averages (e.g., city-wide or nationwide averages). This hides localized infrastructure failures, such as a specific street, block, or neighborhood completely lacking coverage. ## The Technical Solution (How We Fixed It) Signal Stress addresses these challenges with a rigorous, server-validated, and tamper-proof testing protocol: ### 1. Cryptographically Signed Session Handshake (JWT) Before any speed test begins, the client initiates an API handshake with /api/test/init. The server generates a unique testId and signs a JSON Web Token (JWT) containing a timestamp (startTime). This token has a strict 1-minute expiration window. Why it matters: The client cannot self-generate session details. All test metrics submitted later must be accompanied by this signed server token. ### 2. Strict Duration-Constrained Validation When a test is finalized at /api/test/finalize, the server decodes the JWT and measures the elapsed time since startTime. The speed test sequence consists of:
  5. Ping Routing Test: 2 seconds
  6. Download Stream Test: 10 seconds
  7. Upload Stream Test: 10 seconds
  8. Overall Handshake & Processing Buffer: 2–18 seconds The server enforces that the total duration must be between 18 and 38 seconds. If a client attempts to bypass the test by submitting simulated results instantly, the server rejects the request with a 400 Bad Request error. ### 3. Server-Side ASN Mapping (Cellular Enforcement) The server extracts the client's public IP address (using the x-forwarded-for header) and queries it against a local MaxMind GeoLite2 Autonomous System Numbers (ASN) database.
  9. The system rejects all local, private, and loopback IPs.
  10. The system matches the IP's ASN against known mobile network operators in Pakistan: Jazz, Zong, Ufone, Telenor, and SCOM.
  11. If a user attempts to run a test over Wi-Fi or broadband (e.g., PTCL, Nayatel, Transworld), the server blocks the test with a 403 Forbidden response. ### 4. Client-Side Network State Monitors During active speed testing, the client listens to changes in the network configuration using the navigator.connection API. If a user starts a test on cellular data but switches to Wi-Fi mid-test, the client immediately aborts the process and fails the test. ### 5. Accurate RTT (Ping) Handshake To prevent download streaming overhead from skewing latency metrics, the application separates download tests from ping tests. A lightweight endpoint /api/test/download?ping=1 returns a plain 'pong' response immediately. The client consumes the response body completely to close connection handles cleanly, capturing an accurate round-trip time (RTT) average. ### 6. Geolocation & Spatial Clustering (PostGIS) All tests require precise GPS geolocation permission from the device. Coordinate points are stored in the database in a PostGIS-enabled table using the geometry format (SRID=4326; POINT(longitude latitude)).
  12. On the map view, coordinates are clustered using the DBSCAN density-based algorithm via ST_ClusterDBSCAN with an epsilon distance (eps) of 500 (representing 500 meters).
  13. This clusters multiple speed tests within the same 500m radius, displaying a localized aggregate performance popup (showing carriers, speeds, pings, and device models). ## 💡 The Core Philosophy The primary objective of Signal Stress is Public Accountability. We believe that high-speed internet is a fundamental utility. Telecom providers wield massive lobbying power and frequently publish idealized coverage maps that mask real-world network failures. By shifting control to everyday citizens, Signal Stress compiles an open, transparent, and tamper-proof registry of actual cellular service. By demanding cryptographic and physical proof of network performance, we eliminate data pollution and corporate manipulation. ## How This Helps the World
  14. Information Symmetry: Empowering consumers with street-level data so they can see which carrier operates best in their specific building, workspace, or school before purchasing a SIM card.
  15. Targeted Infrastructure Upgrades: Localized hot-spot maps provide public evidence that forces carrier companies to upgrade towers in under-served pockets of suburban and rural communities.
  16. Exposing Digital Inequity: Highlighting neighborhoods where data throttling or network dropouts are systematically ignored by service providers, helping regulatory bodies hold ISPs accountable. ## Technologies Used
  17. Framework: Next.js (React Server Components & App Router)
  18. Styling & Layout: Tailwind CSS (Custom Dark HUD Terminal UI layout)
  19. Interactive Maps: Leaflet.js & OpenStreetMap (rendered client-side without SSR overhead)
  20. Database & GIS Engine: Supabase (PostgreSQL with PostGIS extension for spatial index queries & DBSCAN clustering)
  21. IP Geo-Mapping: MaxMind GeoLite2 IP-to-ASN Database Reader (maxmind NPM library)
  22. Token Signatures: JSON Web Tokens (JWT) for secure server-client handshake authorization
  23. Device Identification: Navigator Web API (navigator.userAgentData with fallback regex parsing)

Built With

  • iptoasn
  • mmdb
  • nextjs
  • supabase
Share this project:

Updates

Submission history