Skip to content

Android · Visual privacy experiment · Android & web prototype

Ghostpad

A notes-style messaging prototype that encrypts a message into a code-shaped text envelope and hands it to WhatsApp, exploring how interface appearance affects casual on-screen privacy.

GHOSTPAD arcade cover: a notebook and phone exchange a sealed message in a moonlit city.
Conceptual project artwork, generated for this portfolio.

Ghostpad explores a different layer of privacy

Ghostpad looks like a simple notes app, but it can encrypt a message into a code-shaped text block and pass that block to WhatsApp. The receiver extracts the ciphertext and decrypts it with the shared password. The product idea focuses on casual visual privacy: a person glancing at the screen sees something formatted like a code note rather than a normal conversation.

That is distinct from transport security. WhatsApp still receives and sends the ciphertext, and the surrounding messaging metadata is not hidden by a code-shaped message. The disguise is a user-interface experiment, not invisibility.

The implementation combines local notes and an encrypted envelope

The code uses CryptoJS AES encryption to produce a ciphertext string and wraps it in a comment and a small JavaScript-like snippet. On Android, the React Native app stores notes and configuration through AsyncStorage, and it opens WhatsApp through a platform link so the user can review and send the prepared message.

The web version keeps the encryption and extraction helpers in a small module with tests. Keeping the envelope format in one place makes the encode and decode paths easier to reason about than duplicating string parsing inside the interface.

A prototype should be clear about its security limits

Ghostpad has not been presented as a security-audited messenger. A shared password must be distributed safely, a password can be exposed on a device, and a code-looking envelope may still draw attention or be recognized. The project does not hide the fact that WhatsApp is the transport layer.

The responsible use case is to understand the difference between encrypting content and disguising its presentation. Do not use this prototype to bypass monitoring where doing so could put someone at risk, and do not treat its interface as a guarantee of secrecy.

INSPECT THE IMPLEMENTATION

Read the code and project notes

The details above describe the public repository and project status as reviewed for this portfolio. Follow the source to inspect the implementation, setup instructions and current limitations.

Ghostpad encryption implementation
React NativeExpoCryptoJSAsyncStorageAndroid