Live utility PWA
Just Message!
A small installable web app that opens a WhatsApp chat without first saving the phone number.
- Categories
- PWA
- Year
- 2026
- Role
- Creator
Premise
Remove one unnecessary contact-saving step.
Just Message does one small job: take a phone number with its country code and open the corresponding WhatsApp conversation.
The app does not need an account, contact-book access, a backend, or message content. It simply prepares the WhatsApp URL in the browser.
Interaction
The complete flow fits in three actions.
Enter
Provide a phone number including its country code.

The installable PWA uses the same focused WhatsApp utility identity. Clean
Normalize the input to the digits expected by the WhatsApp URL.
Open
Redirect to the wa.me conversation address in WhatsApp.
System
A client-only React utility with an offline shell.
Interface
- React
- TypeScript
- Single number field
- One primary action
Browser
- Input cleanup
- URL construction
- PWA manifest
- Service worker cache
External handoff
- wa.me address
- WhatsApp application
- Network-required conversation
- Offline behavior
- The interface remains available after the first successful visit, but opening a conversation still requires connectivity.
- Deployment
- The public build is deployed to GitHub Pages on pushes to the repository's main branch.
Boundaries
Small scope keeps the privacy surface small.
| Question | Current answer | Boundary |
|---|---|---|
| Are contacts read? | No contact access | The user enters the number directly |
| Is the number stored? | No server or account | The utility only prepares the browser handoff |
| Is a message sent? | No | WhatsApp opens the conversation and remains responsible for messaging |
| Does it work offline? | The application shell does | Opening WhatsApp still requires an internet connection |
Build notes
The product is intentionally smaller than its integration.
One job
The interface avoids contact management, message composition, and account state.
Installable
The manifest and service worker let a supported browser launch it like a native utility.
Portable stack
Vite, React, and TypeScript produce a static build that can live entirely on GitHub Pages.
Still unresolved
Any expansion should protect the same narrow boundary.
Input clarity
Country-code guidance can improve without collecting location or contact-book data.
Localization
The current repository does not provide translated interface strings.
Messaging scope
Message sending, templates, contact storage, and account features remain outside the utility.
