Skip to main content
Projects

inkognitOh!

An anonymous messaging app for honest confessions and feedback.

Status
Live
Role
Full Stack Developer
Team
Solo
Timeline
3 days
inkognitOh! screenshot

The problem

Honest confessions and feedback are hard to get when the sender can be identified.

Who it is for

Anyone who wants to receive anonymous messages.

What I built

An anonymous messaging app. Users sign in, get a unique public link, and share it. Visitors send messages without logging in, and nothing that identifies the sender is stored. Built with Next.js, MongoDB, Zod validation, and shadcn/ui.

Built with

Frontend
  • Next.js (App Router)
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
Backend
  • Next.js API Routes
  • Axios
Database
  • MongoDB
  • Mongoose
Validation
  • Zod

In detail

Key features

User authentication & dashboard

Secure sign-in with a personal dashboard for managing every message the account receives.

Unique shareable public link

Each user receives a public URL to collect anonymous messages. Sharing the link is the only distribution step.

Anonymous message reception

Anyone with the link can send messages without logging in. No account, no identity attached to the submission.

Message management dashboard

View and manage received messages in a structured interface built for quick triage.

Input validation

Zod validates incoming messages before anything touches the database, so stored data stays consistent.

Interface

Tailwind CSS and shadcn/ui across the public send page and the private dashboard.

Decision

Anonymity by storage design

Messages are stored in MongoDB without any sender-identifying information, so the data layer holds nothing that could reveal a sender.

Platform flow

  1. User authentication

    User signs in to access their personal dashboard.

  2. Public link generation

    A unique, shareable link is generated for the user.

  3. Anonymous message submission

    Visitors submit messages via the public link without authentication.

  4. Data validation

    Incoming messages are validated using Zod schemas.

  5. Message storage

    Messages are stored in MongoDB without sender-identifying information.

  6. Dashboard access

    Authenticated users view and manage received messages.

Challenges

  • Designing anonymous message flows
  • Input validation and abuse prevention
  • Clean dashboard UX for message management

What I learned

  • Full-stack App Router architecture
  • Schema validation with Zod
  • Designing anonymous yet secure systems

Have a role in mind?

Send me a message on X with the role and a link to the posting. My resume has the rest.