DEV Community

Cover image for 🛡️InvisiBox: Bi-directional anonymous email-based communication channel for workplaces.💡
sahra 💫
sahra 💫 Subscriber

Posted on • Edited on

🛡️InvisiBox: Bi-directional anonymous email-based communication channel for workplaces.💡

This is a submission for the Postmark Challenge: Inbox Innovators.

What I Built

I built an MVP-ready✅ application that aims to address a significant issue in the workplace.

InvisiBox is a platform that empowers employees in corporate environments to send anonymous reports, messages or complaints, participate in private email-based dialogues with management, and engage in confidential voting — all without revealing their identity or needing to log in.

Armed with 100% anonymity and confidentiality, employees are now given the power to speak out on matters and issues in the company and be heard without fear of judgment or retaliation ✅.

Demo

Live Site

Use the following credentials to log in to an existing Management account:

For Employee access, use the following credential to send a message to the linked company:

Note: These demo accounts are connected to my personal email, so you won’t be able to view the emails sent.
✨To fully experience the app’s features, I recommend signing up for a Management account and subscribing to your Management Invisibox channel using an email you have access to✨.

How it works

The app is structured around two core components—Management Access and Employee Access.

Features of the Management Access

Companies seeking to onboard with the Invisibox platform are required to create a Management account.

Management signup page

Once successfully signed up, A unique proxy email address would be generated for that account (e.g, companynamexxxx@invisibox.email).

Management welcome modal

The management is to share that email address with their employees.

For Employees Access

💡To enable an employee to have access to send and receive messages anonymously, they are required to subscribe to their company's Invisibox channel using their email address and the company's unique Invisibox email address.

Employee subscription page

✔️Once subscribed, the employee's unique Invisibox proxy email (e.g, emp9x83xxx@invisibox.email) will be generated and sent to their provided email address

Subscription to company successful

Subscription successfull mail

The employee can now communicate anonymously with their company's management.

Employee send message page

Email communication flow

InvisiBox leverages Postmark's Inbound Email feature as the backbone of its communication system:

Inbound Email Processing:

  1. Employee Sends Message: Employee sends email from their proxy address to the company address
  2. Postmark Reception: Postmark receives the email and forwards it to the app's inbound webhook endpoint /inbound-handler
  3. Backend Processing: The backend processes the inbound email, extracts content, and sends to the appropriate management.

Example messaging flow between employee and management:
2 way email communication

Outbound Broadcast Email Delivery:

  1. Management Sends Message: Management creates a message/poll through the dashboard
  2. Backend Processing: The app processes the message and prepares it for delivery
  3. Postmark Delivery: Messages are sent to the emails of all subscribers of that company via Postmark
  4. Employee Reception: Employees receive messages in their regular email inbox

Email Proxy System:

  • Anonymous Routing: All emails are routed through InvisiBox proxy addresses
  • Identity Protection: Real employee emails are never exposed to management
  • Bidirectional Flow: Messages flow seamlessly in both directions while maintaining anonymity

Code Repository

FrontEnd Repo

GitHub logo Sarah-okolo / invisibox-client

InvisiBox is a platform that empowers employees in corporate environments to send anonymous reports, messages, or complaints, participate in private email-based dialogues with management, and engage in confidential voting .

InvisiBox - Anonymous Workplace Communication Platform

InvisiBox is a privacy-first anonymous communication platform that bridges the gap between employees and management. It enables secure, two-way communication without requiring employees to create accounts or reveal their identities.

Invisibox hero section

🌟 Key Features

  • Account-Free Employee Access: Employees can participate without creating accounts or passwords; they are only required to subscribe to their company's Invisibox channel.

    Employee subscription page

  • Anonymous Identity Protection: Employees receive unique proxy email addresses that completely mask their real identity Employee subscription page

  • Two-Way Anonymous Communication and Real-time Messaging: Management can create and send messages to all employees; employees can reply and participate anonymously. Employees can also send anonymous messages to their management and receive replies. Instant communication through email integration and identity masking through Invisibox's proxy emails Employee send message page 2 way email communication

  • Poll & Survey System: Create polls, employees can vote anonymously, and poll results can be shared to all subscribed employees Create poll page Poll email Poll page

  • Subscriber Management: Warn or…

Tech Stack / Tools

  • React - TypeScript ( Framework - Language )
  • Shadcn ( UI components)
  • TailwindCSS ( Style framework)
  • Zustand (State management library)
  • Axios ( HTTP client for API requests)

BackEnd Repo

GitHub logo Sarah-okolo / invisibox-server

This is the server repository for the Invisibox application.

Tech Stack / Tools

  • NodeJS - Express ( Language - Framework)
  • MongoDB ( Database )
  • PostMark ( Email parsing )
  • Cloudinary ( Image file storage )

For this application, I am making use of all three of Postmark's email message streams:

Postmark message streams

How I Built It

Built on Postmark’s powerful Email Parsing, InvisiBox transforms traditional email into a powerful, privacy-first channel for workplace communication.

🟡PostMark's inbound email parsing role in InvisiBox🟡

Postmark's inbound email parsing plays a crucial role in this application by allowing the server to receive and process emails sent to specific Invisibox email addresses. When an email is sent to an Invisibox email, Postmark captures the email content and forwards it to the application through the inbound webhook endpoint /inbound-handler, which I had already configured on my Postmark dashboard.

This inbound webhook is responsible for parsing the incoming email data, which includes the sender's email address, the recipient's Invisibox email, the subject, and the body of the message.

The application then determines whether the sender is a management or an employee based on their email address. Depending on the sender's role, the application either forwards the message using Postmark's transactional message stream to the appropriate recipient (employee or management) or sends an error notification if the sender or receiver is not recognized.

router.post('/inbound-handler', async (req, res) => {
  const db = getDB();
  const inboundData = req.body;

  console.log('Inbound email received:', inboundData);

  try {
    const invisiboxEmail = inboundData.ToFull[0]?.Email;
    const from = inboundData.FromFull.Email;
    const textBody = inboundData.TextBody || inboundData.TextBody || 'null';
    const subject = inboundData.Subject || 'No Subject';
    const message = stripQuotedReply(textBody);

    const employees = db.collection('employee_subscriptions');
    const users = db.collection('management_users');

    // Check if the sender is MANAGEMENT
    const company = await users.findOne({ email: from });
    const receiverIsEmployee = await employees.findOne({ employeeInvisiboxEmail: invisiboxEmail });

    if (!company && receiverIsEmployee) {
      // If the sender is not recognized as a company, send an error email
      await companyNotSubscribedEmail({
        to: from,
        subject,
        empInvisiboxEmail: invisiboxEmail,
      });
      return res.status(200).json({ message: 'Sender not recognized as management' });
    }
...
}
Enter fullscreen mode Exit fullscreen mode

Example email sent from employee to management:
example employee to management email

Complete flow diagram of how the 🟡Postmark Inbound stream🟡 communicates with the application and how the backend processes that data

Application inbound flow

This parsing and routing mechanism enables seamless communication between employees and management while maintaining anonymity and security, which are core features of the Invisibox platform.

Features and the Postmark message stream used

Feature Postmark Message Stream Function
Subscription success message Delivery Outbound (Transactional) Sends a subscription success email to the user, including their unique Invisibox email address
Employee Message Delivery Inbound Receives emails sent by employees to the company's Invisbox email address
Sends polls and their results Outbound (Broadcast) Delivers poll and poll results emails to all subscribed employees
Management sends messages from the app Outbound (Broadcast) Delivers message created by management to all subscribed employees
Employee Broadcast message reply Inbound Receives replies from employees and sends to the app, which sets the message as a reply to the appropriate broadcast message
Management password Reset Outbound (Transactonal) Sends password reset instructions to the user
Management sends a message from their inbox Inbound Receives messages sent by management to an employee's Invisibox email address, parses it to the webhook which routes the message to the appropriate email address
Subscription Notification Outbound (Transactional) Notifies management of new employee subscriptions

... Rest features utilize the Outbound (Transactional) stream.

The email integration with Postmark ensures reliable message delivery while maintaining complete anonymity for employees.

Continuous Development

As my first time making use of email parsing in an application, PostMark really opened my eyes to the true capabilities of emails.

I appreciate the PostMark and DEV team for putting together this amazing challenge.

As for Invisibox, who knows, I might turn into my very own first SaaS application😁. I believe it has a lot of potential and I would keep developing on it, of course keeping PostMark as the core email client and backbone of the app ☺️. Thoughts, questions, and feedback on the app are highly welcome.

Well, if you made it this far in the post, here is a glass of wine for you 🥂 Cheers 😁✨

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.