- Every network call returns a result whatever fails, not only the exceptions .NET usually throws: on Android the HTTPS client is the platform's own stack, and a network switch mid-request throws others. The outside test as a whole cannot throw; sharing the link falls back to copying it. A last guard (the UI thread, unobserved tasks, Android's raiser) writes errors.log in the app folder and keeps the app running; nothing is sent. - On mobile data the app no longer probes the operator's gateway as if it were a home router: the router card says there is none, a private address on the phone with another public one is the operator's address sharing (CGNAT) and is drawn as its shared exit, the public IPv4 is held by that exit, and the provider's notes are labelled as being about its home lines. These were "router not answering" and "can't tell" on an Iliad phone. - The route's routers appear as stops on the path's wires: the operator's internal ones before its exit, the public ones with their network number towards the internet. - The download speed is timed after the first quarter of the sample, once the connection has ramped up; the path no longer shows the address block's registry country. - Two new strings, drafted in every language. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012CzABvBkbcFqoHdmi8b9WB
me-web?
Can you run your own server from here? me-web? checks your connection and your device and tells you, in plain words, what you could host at home, what stands in the way, and what would fix it.
Status: early development.
What it checks
me-web? draws the path from this device to the internet one step at a time (this device, your router, any shared exit of your provider, your provider, the internet), with the details it found for each, and groups what it checks under the step it concerns:
- whether you are online, or behind a login page;
- how this device is connected, and the address your router gave it;
- your public IPv4 and IPv6 addresses, and which device holds them;
- your provider, found offline in a built-in map, with what is usual for it (shared IPv4, an address of your own, IPv6, the mail port) and the source and date of each note;
- whether your router answers apps that ask it to open ports (UPnP, NAT-PMP, PCP), and which internet address it has;
- whether your provider shares your public IPv4 address with other customers (CGNAT) or there is a second router in the way;
- how your router translates addresses for calls and games (easy or hard NAT), with two STUN servers;
- only if you agree: whether the outside world can actually reach this device, over IPv4 and IPv6, with the ports opened by your router for ten minutes and closed afterwards, and whether your own public address works from home (hairpin);
- whether this connection can send mail directly: port 25, the reverse name (PTR) and the blocklists, asked through your own name server;
- whether your name server checks signatures (DNSSEC) and answers honestly for names that don't exist;
- the speed against the publisher's server, and whether this device makes a sensible server;
- how your public address has changed across your earlier checks.
It ends with what that means: a website, reaching home from outside, family photos and files, a game or voice server, a fediverse or blog server, a mail server — possible, possible with a workaround (and which), or can't tell.
At the end you can choose to share your findings, after reading exactly what is sent, to improve the notes on providers; you can delete them from the app at any time, and they are deleted after twelve months (https://meweb.arasaka.software/privacy).
Planned: the builds for Mac announced once they have been tried on a real Mac.
Platforms
Linux (deb, rpm), Windows, macOS and Android. Builds are published as releases of this repository.
Privacy
me-web? sends nothing anywhere unless a check needs it, and lists every host it contacts ("What this app contacts" in the app). It has no telemetry, no analytics and no crash reporting. Your checks are kept on your device only, unless you choose to share them.
Verifying the Android app
The APK is signed with the key whose certificate SHA-256 is
5f:52:cf:f4:f5:2f:4e:0b:6d:a6:cd:04:4b:fc:ea:f7:8d:1d:42:db:24:f2:47:06:02:db:7f:19:cb:fd:f8:46
(apksigner verify --print-certs MeWeb-<version>-android.apk). Every release also carries SHA256SUMS.txt.
Credits
- Provider map: iptoasn.com, Public Domain Dedication and License (PDDL 1.0), fetched for every release; the release notes carry its date and SHA-256.
- Provider notes: each operator's own technical sheet (AGCOM 156/23 in Italy) and users' reports on
FibraClick, each cited in
data/isps/. - Icons: Lucide, ISC licence.
- Typeface: Inter, SIL Open Font License.
Building
See CLAUDE.md. .NET 10, Avalonia 12.
Licence
GNU Affero General Public License v3.0 (LICENSE). © 2026 Arasaka di Hvozdikov Yevheniy.
Translations other than English and Italian are machine drafts until someone reviews them. Corrections are welcome as issues on this repository. Nauruan and Palauan are missing: no draft good enough to ship could be written, and a speaker's help would put them in.