Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/fmoraga01/SpinAI/llms.txt

Use this file to discover all available pages before exploring further.

SpinAI uses Nodemailer with Gmail SMTP to deliver meeting reminders. Every notification — whether triggered manually from the home screen or automatically each Monday by GitHub Actions — is sent through the Gmail account you configure in your environment variables.

Why a Gmail App Password?

Google does not allow regular account passwords to authenticate SMTP connections when the account has two-factor authentication (2FA) enabled. Instead, Google requires you to generate a dedicated App Password: a 16-character credential that grants SMTP access to a single app without exposing your main account password or bypassing 2FA.
1

Enable 2-Step Verification

Go to your Google AccountSecurity2-Step Verification. If it is not already enabled, turn it on and complete the setup. App Passwords are only available on accounts with 2FA active.
2

Generate an App Password

On the same Security page, scroll to the App passwords section and click it. Choose a name for the app — for example, SpinAI — and click Generate. Google will display a 16-character password.
3

Copy the 16-character password

Copy the generated password immediately — Google will not show it again. Store it somewhere safe until you complete the next step.
4

Add credentials to .env.local

Open (or create) .env.local at the root of your project and add the following two variables:
.env.local
GMAIL_USER=your@gmail.com
GMAIL_PASS=xxxx xxxx xxxx xxxx
Replace your@gmail.com with the Gmail address you generated the App Password for, and replace the value of GMAIL_PASS with the 16-character password you copied.

Email format

Every notification email is sent with the following addressing and subject line:
FieldValue
FromSpinAI <GMAIL_USER>
ToThe assigned team member’s email address
CCAll other active members who have an email address set
Subject⏰ Reunión del viernes — {member_name} presenta
The body of the email contains the assigned member’s name, the meeting date formatted in Spanish locale (es-CL, e.g. viernes, 18 de julio de 2025), and a reminder to prepare the presentation slide in advance.
Active members who do not have an email address stored in the database will not receive a CC’d copy of the notification. Make sure all team members have their email field filled in to ensure nobody is left out.
When a notification is triggered in test mode (testMode: true via POST /api/notify), the email is sent exclusively to GMAIL_USER — no CC recipients are included, and the subject line is prefixed with [PRUEBA] (e.g. [PRUEBA] ⏰ Reunión del viernes — Ana presenta). Use this to verify your SMTP credentials without sending live emails to the whole team.

Next steps

Once your Gmail credentials are in place, you are ready to send notifications:

Build docs developers (and LLMs) love