My Connection makes network information easier to understand.
It brings together connection status, signal strength, performance, Wi-Fi details, IP configuration, and other network properties in one place.
The goal isn't to expose as much technical information as possible.
It's to make the information that is available useful and easy to understand.
The idea started with a simple question:
🤔 Where is the best place in my home for a reliable Wi-Fi connection?
I wanted to walk around the house and understand how the connection changed from one place to another.
Answering that question usually meant jumping between system settings, network utilities, and speed tests.
So I built My Connection.
What started as a small experiment became a full mobile application focused on turning low-level network information into a clear, practical experience.
My Connection organizes network information around the things you actually want to know.
Start with the basics.
See what you're connected to and the current state of your connection.
For Wi-Fi connections, the app surfaces information such as:
- Signal strength
- Link speed
- Download link speed
- Upload link speed
This makes it easier to compare different places and understand how your connection behaves.
When connected through Wi-Fi, the app can provide details such as:
- Network name (SSID)
- BSSID
- Frequency
For supported connection types, the app can provide:
- IP address
- Subnet information
Additional properties are shown when supported by the current connection type.
For cellular connections, this can include carrier and cellular generation information.
Network information is only as useful as the information the platform makes available.
My Connection treats platform behavior and permissions as part of the product experience.
The application adapts its interface to the current connection type and only presents information that is relevant to it.
Supported connection types include:
- Wi-Fi
- Cellular
- Ethernet
- VPN
- Bluetooth
- Other platform-supported connection types
Permissions and unavailable information are also handled explicitly, so the interface can explain why a particular piece of information may not be available.
My Connection is developed as a real-world mobile application, with the tooling and infrastructure needed to build, validate, observe, and ship it continuously.
- TypeScript-first codebase
- Expo Router
- Modular React Native architecture
- Bun-based workflow
- Biome for formatting and linting
- Automated CI on pushes and pull requests
- Type checking
- Linting
- Expo Doctor validation
- Separate development, preview, and production environments
- Automated production builds
- Google Play distribution
- Release workflow for production versions
- Public changelog
- Production application configuration
The application is localized using i18next and currently supports:
- English
- Portuguese
- Spanish
Localization is treated as part of the product architecture rather than as a final step before release.
The project uses:
- Sentry for error monitoring
- Expo Observe for application observability
- Structured application events
The application also makes use of platform capabilities such as:
- Network state information
- Location permission handling for Wi-Fi information such as SSID and BSSID
- Haptics
- System appearance
- M3 Android Dynamic Colors
- Application lifecycle events
The project uses a modular React Native architecture with a clear separation between screens, components, hooks, contexts, services, repositories, and platform concerns.
src/
├── app/
├── assets/
├── components/
├── contexts/
├── hooks/
├── i18next/
├── repositories/
├── screens/
├── services/
├── theme/
└── utils/
The home experience is composed from focused sections rather than putting all network logic and presentation into a single screen.
This keeps platform-specific behavior isolated and makes individual parts of the experience easier to evolve.
My Connection can periodically refresh network information while the application is in use.
Update frequency can be configured by the user, while the application also takes its lifecycle into account to avoid unnecessary work when the app is not active.
The interface keeps track of the latest update so the user can understand how current the displayed information is.
Some network information is subject to platform restrictions.
On Android, certain Wi-Fi information requires location permission even though My Connection does not need to track the user's physical location.
The application therefore treats permissions as part of the network experience rather than hiding them behind technical details.
It handles states including:
- Permission not yet requested
- Permission granted
- Permission denied
- Permission that can no longer be requested
- Reduced/approximate permission
- Location services disabled
The application is designed around a simple information hierarchy: start with the current connection, then explore more detailed information when needed.
|
|
My Connection is open source, and contributions are welcome.
Whether you want to fix a bug, improve the documentation, add a translation, refine the user experience, or work on the technical foundations of the project, feel free to contribute.
Before opening an issue or pull request, please read:
For bugs and feature ideas, you can also open an issue.
My Connection is licensed under the MIT License.
Copyright © 2026 Matheus Zanin.



