projects
Project

ShareText

Minimal encrypted text sharing platform built with Next.js for securely exchanging temporary content through private links without authentication.

Type
Privacy-Focused Utility
Year
2026
ShareText
Overview

ShareText was designed around a very simple idea: sending text securely through temporary links without requiring accounts, onboarding, or unnecessary friction. The experience was intentionally minimal so users could create and share content instantly.

What made the project technically interesting was the encryption model. Sensitive content was encrypted directly inside the browser before being uploaded, meaning the server only ever handled encrypted payloads rather than readable user data.

If password protection was enabled, decryption also happened entirely on the client side after the recipient opened the shared link. The backend acted purely as a storage layer and never had access to plaintext content.

The project also became an opportunity to deeply explore Next.js architecture patterns. Using Server Actions instead of traditional API routes dramatically simplified the data flow and created a surprisingly clean developer experience without manually writing fetch requests throughout the application.

Key Features

Temporary text sharing through unique links

Optional password-protected encrypted content

Automatic expiration and cleanup flow

Client-side encryption and decryption

Authentication-free minimal user experience

Server Actions based architecture without manual fetch calls

Architecture

Client-Side Encryption Flow

Sensitive content was encrypted directly inside the browser before ever reaching the server. The backend only stored encrypted payloads, ensuring the platform owner could never read the shared content.

Next.js Server Functions Architecture

The project heavily explored modern Next.js patterns using Server Actions instead of traditional REST APIs. Data mutations and retrieval happened through framework-native server functions without manually writing fetch layers.

Minimal Temporary Storage System

The backend was intentionally kept lightweight. Shared content could optionally expire after a specified duration, automatically removing inaccessible data while preserving a fast and minimal workflow.

Technical Challenges

Implementing reliable client-side encryption and password-based decryption flows.

Designing secure content sharing without exposing plaintext data to the backend.

Managing cryptographic operations while preserving a simple user experience.

Learning and structuring larger-scale Next.js server-side architecture patterns.

Gallery