Session 10: Internal auth refactor, prefetch cascade keys, Sentry, welcome email (1286 tests)
This commit is contained in:
@@ -75,24 +75,43 @@ const TEMPLATE_HTML_WRAP = (body: string) => `
|
||||
</body></html>`;
|
||||
|
||||
export async function sendWelcomeEmail(email: string): Promise<SendResult> {
|
||||
const subject = "You're in. Let's grade some props.";
|
||||
// Session 10 — copy updated to reflect the per-day quota (3 free
|
||||
// reads/day), Stripe founder pricing, and the live soccer engine.
|
||||
const site = process.env.NEXT_PUBLIC_SITE_URL || 'https://vyndr.app';
|
||||
const subject = 'Welcome to VYNDR — your reads are ready';
|
||||
const body = `
|
||||
<p style="font-size:16px">Welcome to VYNDR.</p>
|
||||
<p>You have <strong>5 free reads every month</strong>. Pick a game, read a prop, and see what the model thinks.</p>
|
||||
<p>The books have every advantage. Now you have one too.</p>
|
||||
<p style="margin-top:24px"><a href="${process.env.NEXT_PUBLIC_SITE_URL || 'https://vyndr.app'}/dashboard"
|
||||
style="display:inline-block;padding:12px 24px;background:#1A4A3A;color:#F0F0F5;text-decoration:none;border-radius:12px;font-weight:600">
|
||||
Open the slate →
|
||||
<p>You have <strong>3 free reads per day</strong>. Every read runs your prop through our intelligence engine — the same signals the books use to set lines.</p>
|
||||
<p><strong>Quick start:</strong></p>
|
||||
<ol style="padding-left:20px;line-height:1.7">
|
||||
<li>Go to <a href="${site}/scan" style="color:#00D4A0">vyndr.app/scan</a></li>
|
||||
<li>Pick a player, stat, and line</li>
|
||||
<li>Hit “Read It” — your grade appears in seconds</li>
|
||||
</ol>
|
||||
<p>When you’re ready for unlimited reads and full reasoning breakdowns, founder pricing starts at <strong>$14.99/mo (locked for life)</strong>: <a href="${site}/pricing" style="color:#00D4A0">vyndr.app/pricing</a></p>
|
||||
<p>The <strong>World Cup 2026 intelligence engine is live</strong> — soccer props are graded with xG regression, altitude impact, referee card rates, and penalty taker signals that nobody else has.</p>
|
||||
<p style="margin-top:24px"><a href="${site}/scan"
|
||||
style="display:inline-block;padding:12px 24px;background:#00D4A0;color:#0A0A0F;text-decoration:none;border-radius:8px;font-weight:700">
|
||||
Read your first prop →
|
||||
</a></p>
|
||||
<p style="margin-top:24px;color:#8A8A9A">See what the market doesn’t.<br>— VYNDR</p>
|
||||
`;
|
||||
const text =
|
||||
`Welcome to VYNDR.
|
||||
|
||||
You have 5 free reads every month. Pick a game, read a prop, and see what the model thinks.
|
||||
You have 3 free reads per day. Every read runs your prop through our intelligence engine — the same signals the books use to set lines.
|
||||
|
||||
The books have every advantage. Now you have one too.
|
||||
Quick start:
|
||||
1. Go to ${site}/scan
|
||||
2. Pick a player, stat, and line
|
||||
3. Hit "Read It" — your grade appears in seconds
|
||||
|
||||
Open the slate: ${process.env.NEXT_PUBLIC_SITE_URL || 'https://vyndr.app'}/dashboard
|
||||
When you're ready for unlimited reads and full reasoning breakdowns, founder pricing starts at $14.99/mo (locked for life): ${site}/pricing
|
||||
|
||||
The World Cup 2026 intelligence engine is live — soccer props are graded with xG regression, altitude impact, referee card rates, and penalty taker signals that nobody else has.
|
||||
|
||||
See what the market doesn't.
|
||||
— VYNDR
|
||||
${TEMPLATE_FOOTER}`;
|
||||
return send({ to: email, subject, html: TEMPLATE_HTML_WRAP(body), text });
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user