IntroJoy reaches 10,000 users in 6 months

We built IntroJoy, a web app for professional introductions where the connector drafts the intro once, both parties confirm via email, and the connection is made without further coordination overhead.

See all work

This project

Result 01

launched the product's 1st version

12 weeks

Result 02

in initial 6 months

10k users
4.9 / 5 on ClutchSee all work
Platform
Web App
Duration
12 weeks
Industry
Enterprise
Read time
6 min read
logo of Online Web App For Making Intro

RaftLabs built IntroJoy, a professional introduction web app that replaces the back-and-forth email coordination required for warm introductions with a structured double opt-in flow. The connector drafts the introduction once, both parties confirm via email, and the connection is made without further coordination. IntroJoy reached 10,000 users in 6 months, earned a 4.2/5 rating on Product Hunt, and expanded active users' professional networks by 20%. Built in 12 weeks using React, Node.js, PostgreSQL, and AWS SES for high-deliverability email dispatch.

Making a warm professional introduction involves more coordination than it should. The connector emails person A to ask if they want to be connected, waits for a reply, emails person B for the same, waits again, then writes the mutual introduction email, only to be copied on the back-and-forth that follows while hoping neither party feels their inbox was disrupted without permission.

The problem is consent and coordination happening manually when both could be handled by a structured tool. IntroJoy is that tool. We built it as a web app where the connector drafts the introduction once, both parties receive an opt-in confirmation email, and the connection is made only when both agree. 10,000 users joined in the first six months. Active users expanded their professional networks by 20%.

IntroJoy professional introduction web app with double opt-in email flow

before & after

What changed

Before
  • Making a warm introduction required multiple back-and-forth emails to confirm consent from both parties before the actual introduction could be sent
  • Connectors tracked the status of each introduction manually, following up, resending, and chasing replies across an unstructured email thread
  • There was no guarantee both parties had agreed to the connection before contact details were shared, leading to introductions that landed without consent
  • The quality of the introduction email varied with how much time the connector had; no template or preview existed to standardize the format
  • Once the introduction was made, the connector had no visibility into whether the connection progressed or went unanswered
After
  • The connector drafts the introduction once; both parties receive a confirmation email and accept or decline independently, with no further coordination required from the connector
  • Introduction status (pending, one accepted, connected, declined, or expired) is visible from the dashboard without the connector tracking anything manually
  • Consent is confirmed before any contact details are shared; neither party receives the other's information until both have accepted
  • Customizable email templates allow connectors to maintain a consistent, personal tone without rewriting from scratch for every introduction
  • Connected introductions and their status are logged in the platform so connectors can see the outcome of every introduction they have made

What we had to solve

  • 01

    Building a double opt-in flow that felt like a warm introduction, not a compliance form

    The entire value of a warm introduction is that it carries the connector's credibility and feels personal. An automated flow that reads like a system email undermines that credibility immediately. The design challenge was making the confirmation email feel like it came from a person (using the connector's own name, their drafted introduction text, and the context they provided) while the underlying workflow was fully automated. Getting that balance right between automation and apparent personalization was the UX and copywriting challenge at the core of the product.

  • 02

    Managing the state machine for introductions reliably across multiple email clients

    An introduction can be in a dozen states: draft, sent to party A, party A accepted, sent to party B, both accepted, declined by either party, expired after no response, re-sent after reminder. Each state transition was triggered by email confirmation links that needed to work across Gmail, Outlook, and other clients without link-click tracking failures. Building a state machine that handled retries, reminder scheduling, expiry logic, and edge cases (one party accepts before the other has opened the email, a confirmation link clicked twice) was the backend engineering challenge.

outcomes

What we achieved

12 weeks
from concept to live product
Previously

Professional introductions required multiple coordination emails from the connector before the actual introduction could be sent. The overhead scaled with the number of introductions being managed simultaneously.

10,000
users in the first 6 months
Previously

There was no purpose-built tool for warm professional introductions. Connectors used plain email, which had no consent tracking, no status visibility, and no consistent format.

4.2/5
rating on Product Hunt
Previously

Without a structured flow, introductions that were sent before both parties confirmed consent often landed as unwanted intrusions, damaging the connector's credibility.

What clients say

Most clients stay.
Some say so on camera.

Three-year average engagement. Founders and operators describing the work in their own words. No marketing varnish.

D
David
Product Manager, IntroJoy

Working with this team was a pleasure. They translated our vision for IntroJoy into a customer-first web application. Their proactive and fresh approach delivered a platform that quickly captured the attention of thousands.

Your team spends hours coordinating warm introductions that a structured tool could handle in minutes?

the build

What we built

IntroJoy is built around a single discipline: the connector's effort ends when they hit send. Everything that follows (confirmation, connection, tracking) is handled by the platform.

01

Neither party gets connected without explicitly saying yes

Each party receives an independent opt-in email carrying the connector's introduction text. Neither party sees the other's contact details until both have accepted. Declining or not responding within the expiry window closes the introduction without either party being connected without consent. The confirmation links work across Gmail, Outlook, and other clients without requiring recipients to create an account.

Double opt-in email confirmation flow for professional introductions
02

Connector's work ends at submission: the platform handles everything after

Connectors enter the two parties' details, draft the introduction text, and submit. The platform handles everything from that point: sending confirmation emails to each party, monitoring responses, triggering the mutual introduction when both accept, and sending reminders if a party has not responded after a set period. The connector's involvement ends at submission.

One-step introduction initiation in IntroJoy web app
03

Tone stays personal, structure stays consistent every time

Connectors work from pre-built templates that carry their name, the introduction context, and the call to action. Templates are editable before sending so the tone stays personal, but the structure is consistent. The preview view shows exactly what each party will receive before the introduction is sent.

Customizable email templates for professional introductions
04

Connectors see every outcome without following up manually

Every introduction is visible from the dashboard with its current state: pending acceptance from party A or B, both accepted, declined, or expired. Connectors see the outcome of every introduction they have made without manually following up or tracking anything in a spreadsheet. Completed introductions include the timestamp each party accepted.

Introduction status tracking dashboard in IntroJoy

Engagement

How we worked together

  1. 01Weeks 1–2

    Discovery and scoping

    We map the problem before writing code. Two weeks of technical audit, stakeholder interviews, and prototype — so both teams align on scope and risk before sprint one.

  2. 02Ongoing

    Two-week Agile sprints

    Each sprint ends with working software, not a status update. You review a real build, request changes, and approve before we move forward. No surprises at handover.

  3. 03Ongoing

    Daily async updates

    Slack for daily progress, Asana for task visibility, weekly video calls for decisions. You have full visibility without needing to attend every meeting.

  4. 04Final

    Handover and warranty

    Full code handover with deployment runbooks and documentation. Thirty-day warranty period for production issues at no extra cost.

Common questions about IntroJoy

When a connector submits an introduction, both parties receive a separate email carrying the connector's introduction text. Each email contains a clear Accept or Decline link. Party A's response does not depend on party B's: each accepts or declines independently. Only when both parties have clicked Accept does the mutual introduction email go out, sharing contact details with each person. If either party declines or does not respond within the expiry window, the introduction closes without either party being connected without consent. Neither party needs to create an IntroJoy account to confirm.

IntroJoy sends all emails from the platform's own mail infrastructure using the connector's name and customized introduction text. The recipients experience the email in their native inbox (Gmail, Outlook, or any other client) without any plugin or extension required. The platform was originally explored as a Chrome extension but was built as a web app to ensure the full experience worked without browser-specific dependencies and was accessible on any device.

The platform sends automatic reminders to the non-responding party at configurable intervals. If the reminder window expires without a response, the introduction closes and the accepting party is notified that the introduction did not complete. The connector sees the status update in their dashboard. They can choose to re-initiate the introduction at any point, or the accepting party can contact the connector directly if they want to proceed another way. No contact details are shared until both parties have accepted.

Templates are managed by each connector within their IntroJoy account. The structure (connector name, introduction body, the two parties' names, and the opt-in call to action) is fixed, but the body text and framing are fully editable before each introduction is sent. For organizations rolling out IntroJoy across a team, shared template libraries allow a consistent introduction style to be maintained across multiple connectors without each person writing from scratch.

We built IntroJoy (double opt-in email flow, introduction state machine, connector dashboard with real-time status, customizable email templates, reminder scheduling, and expiry logic) in 12 weeks. The product launched in that first version and reached 10,000 users in six months, which validated the scope decision to ship core functionality first rather than building every possible feature before launch. A platform that also handles two-sided matching, CRM integration, or team-level analytics would take longer. Contact us to scope based on your platform's requirements.

Next step

Recognise this problem in your business?

Tell us what's broken. We'll diagnose it and show you where the leverage is before you commit to anything.

  • Scope and cost agreed before work starts. No surprises. No obligation.
  • Working prototype within 3 weeks of kickoff.
  • Pay by milestone. You see progress before each invoice.
  • 60-day post-launch warranty. Bug fixes, UI tweaks, and deployment support. No retainer.
  • All conversations are NDA-protected.