diff --git a/api/src/mail/templates/inactive-new-user-day-10.hbs b/api/src/mail/templates/inactive-new-user-day-10.hbs new file mode 100644 index 0000000..0e7c307 --- /dev/null +++ b/api/src/mail/templates/inactive-new-user-day-10.hbs @@ -0,0 +1,147 @@ + + + + + How to Get the Most from textbee.dev + + + +
+
+ +
+ +
+

Hello {{name}},

+ +

We noticed you haven't started using textbee.dev yet. We'd love to + help you get started!

+ +

Many of our users find these specific use cases particularly + valuable:

+ +
+
+

Example: Order Notification System

+
+
+

Let's say you run an e-commerce site and want to send order + updates via SMS:

+ +
+ // Send notification when order status changes
+ const response = await + axios.post('https://api.textbee.dev/api/v1/gateway/{DEVICE_ID}/send-sms', + {
+   recipients: ['+1234567890'],
+   message: 'Your order #12345 has been shipped! Track at + example.com/track/12345'
+ }); +
+ +

This simple integration can significantly improve customer + satisfaction!

+
+
+ +
+
+

Example: Two-Factor Authentication

+
+
+

Enhance your application security with SMS verification codes:

+ +
+ // Generate a random 6-digit code
+ const verificationCode = Math.floor(100000 + Math.random() * + 900000);

+ // Send it via SMS
+ await + axios.post('https://api.textbee.dev/api/v1/gateway/{DEVICE_ID}/send-sms', + {
+   recipients: ['+1234567890'],
+   message: `Your verification code is: + ${verificationCode}`
+ }); +
+
+
+ +

+ + Explore more use cases → + +

+ +
+

Have questions?

+

Feel free to reply to this email, I'll be happy to help you get + started.

+
+ +

If you prefer to explore on your own, here's how to get started:

+ +
    +
  1. Download our Android app + from + dl.textbee.dev
  2. +
  3. Log in to your dashboard + at + textbee.dev/dashboard + and generate a QR code
  4. +
  5. Scan the QR code + with the app to connect your device
  6. +
+ +

+ + View our Quick Start Guide → + +

+ +
+ Access Your + Dashboard +
+ +

If you have any questions or need help with setup, please don't + hesitate to reach out. We're here to ensure you get the most out of + textbee.dev.

+ +

Best regards,
The textbee.dev Team

+ + +
+ + +
+ + \ No newline at end of file diff --git a/api/src/mail/templates/inactive-new-user-day-3.hbs b/api/src/mail/templates/inactive-new-user-day-3.hbs deleted file mode 100644 index 08c1b05..0000000 --- a/api/src/mail/templates/inactive-new-user-day-3.hbs +++ /dev/null @@ -1,85 +0,0 @@ - - - - - Get Started with textbee.dev - - - -
-
-
- -
-

Hello {{name}},

- -

We noticed it's been 3 days since you signed up for textbee.dev, but - you haven't registered any devices yet.

- -

We'd love to help you get the most out of our platform! With - textbee.dev, you can:

- - -

Getting started is quick and easy:

- -
-
- 1 - Install the textbee.dev android app on your device -
-
- 2 - Grant the necessary permissions -
-
- 3 - Login to your - dashboard - and generate a QR code -
-
- 4 - Scan the QR code with the app to register your device -
-
- 5 - Start sending and receiving SMS! -
-
- -
- Register Your Device - Now -
- -

Is there anything we can help you with? If you're experiencing any - issues or have questions, our support team is ready to assist at - support@textbee.dev.

- -

Best regards,
The textbee.dev Team

-
- - -
- - \ No newline at end of file diff --git a/api/src/mail/templates/inactive-new-user.hbs b/api/src/mail/templates/inactive-new-user.hbs index 83d6e7b..0a99fab 100644 --- a/api/src/mail/templates/inactive-new-user.hbs +++ b/api/src/mail/templates/inactive-new-user.hbs @@ -2,81 +2,166 @@ - Get Started with textbee.dev + Getting Started with textbee.dev
+

Hello {{name}},

-

Thank you for signing up for textbee.dev! We noticed you haven't - registered any devices yet.

+

Thank you for creating your textbee.dev account! We're excited to have you with us.

-

With textbee.dev, you can:

- - -

To get started, you'll need to register your first device:

- -
-
- 1 - Install the textbee.dev android app on your device -
-
- 2 - Grant the necessary permissions +
+

What can you do with textbee.dev?

+

Our users are leveraging textbee.dev to:

+ +
+
1
+ Send notifications and alerts - Keep customers informed about orders, appointments, and more
-
- 3 - Login to your dashboard and generate a QR code + +
+
2
+ Implement 2FA with SMS verification - Add an extra layer of security to your applications
-
- 4 - Scan the QR code with the app to register your device -
-
- 5 - Start sending and receiving SMS! + +
+
3
+ Build interactive SMS workflows - Create engaging experiences for your users
+

Getting started with textbee.dev is straightforward:

+ +
    +
  1. Install the Android app - Our app connects securely to your phone's SMS capabilities
  2. +
  3. Register your device - A simple process using a QR code from your dashboard
  4. +
  5. Start sending and receiving messages - Through our intuitive dashboard or API
  6. +
+ -

If you have any questions or need assistance, please don't hesitate - to contact our support team at - support@textbee.dev.

+
+

Need help getting started?

+

We've prepared resources to make your setup experience smooth:

+ +
+ +

If you have questions or run into any issues, I'm here to help. Just reply to this email or contact our support team at support@textbee.dev.

+ +

Looking forward to seeing what you'll build with textbee.dev!

Best regards,
The textbee.dev Team

+ +
diff --git a/api/src/mail/templates/upgrade-to-pro.hbs b/api/src/mail/templates/upgrade-to-pro.hbs index 89c229e..49e87e7 100644 --- a/api/src/mail/templates/upgrade-to-pro.hbs +++ b/api/src/mail/templates/upgrade-to-pro.hbs @@ -2,128 +2,218 @@ - Upgrade to Pro - textbee.dev + Unlock More Capabilities with textbee.dev Pro
+

Hello {{name}},

-

Thank you for using textbee.dev! We hope you're enjoying our service - so far.

+

Thank you for using textbee.dev! We're excited to see that you've been using our platform with {{deviceCount}} connected device{{#if deviceCount > 1}}s{{/if}}.

-

We wanted to let you know that you're currently on our - Free Plan, which provides basic functionality. To - unlock the full potential of textbee.dev, consider upgrading to our - Pro Plan.

+

Many of our users have found that upgrading to Pro helps them scale their SMS capabilities more effectively as they grow. Here's what you can unlock:

-

Special Offer Just For You: - We're extending a - 30% discount - on all Pro plans exclusively for our most active users like you! This - offer is only available for a limited time.

- -

Plan Comparison:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
+
+
+

Unlimited Daily Messages

+

Remove the 50-message daily limit and scale your SMS communications as needed

+
+
+ +
+
+
+

Connect Multiple Devices

+

+ Connect multiple devices to your account to increase your SMS sending capacity. +

+
+
+ +
+
+
+

Priority Support

+

Get faster responses and dedicated assistance for your integration questions

+
+
+ +
+ "textbee.dev Pro has been game-changing for our delivery notifications. We've seen a 28% increase in customer satisfaction since implementing automated SMS updates." +
- Sarah K., E-commerce Business Owner
+
-
FeatureFree PlanPro Plan
Daily Message Limit50Unlimited
Monthly Recipient Limit5005,000
Device Limit1Unlimited
Bulk SMS Recipients50Unlimited
SupportBasicPriority
+

As a valued user, we're offering you a special 30% discount if you upgrade in the next 7 days:

-
-

Pro - Plan Pricing

-
-
-

Monthly

-

$9.99 - $6.99

-

30% off - - limited time

-
-
-

Annual

-

$99.99 - $69.99

-

30% off - - limited time

-
+
+
+

Monthly

+

$9.99/mo

+

$6.99/mo

+

30% savings

+
+ +
+

Annual

+

$99.99/yr

+

$69.99/yr

+

Save 42% vs monthly

- Upgrade to Pro Now -

Hurry! This 30% discount offer is only available for a - limited time.

+ Upgrade to Pro + Learn More
-

If you have any questions about our plans or need assistance, please - feel free to contact us at - support@textbee.dev.

+

Not ready to upgrade? That's completely fine! Your free plan will continue to work as usual. If you have any questions about the Pro features or need help with your current setup, I'm happy to assist.

Best regards,
The textbee.dev Team

+ +
diff --git a/api/src/mail/templates/welcome-1.hbs b/api/src/mail/templates/welcome-1.hbs index ba53ae3..3655abd 100644 --- a/api/src/mail/templates/welcome-1.hbs +++ b/api/src/mail/templates/welcome-1.hbs @@ -1,126 +1,207 @@ + + + Welcome to textbee.dev
-

Welcome to TextBee!

+
-

Hi {{name}},

- -

It's Vernu here, creator of textbee.dev. I built this platform to help you - with all your messaging needs - whether it's sending OTPs, - notifications, or creating automated messaging workflows for your - business.

- -
-

Here are a few tips to get you started:

-
    -
  1. Explore our - Documentation - - Learn how to integrate TextBee with your existing systems
  2. -
  3. Download the Mobile App
  4. -
  5. Access your Dashboard
  6. -
  7. Join our Discord Community
  8. -
  9. Support Our Work
  10. -
  11. Star our GitHub - Repository
  12. -
-
+
+
+

Welcome to textbee.dev!

+

Your gateway to powerful SMS integration

+
+ +

Hi {{name}},

+ +

Welcome to textbee.dev! This platform is designed to provide simple + yet powerful SMS integration for developers and businesses of all + sizes.

+ +
+

Thank you for choosing textbee.dev. We're excited to support your + projects, whether you're building authentication systems for your + customers, notifications, or interactive workflows!

+
+ +

What You Can Build with textbee.dev

+ +
+

User Authentication

+

Implement secure two-factor authentication with SMS verification + codes to protect user accounts and sensitive data.

+
+ +
+

Customer Notifications

+

Send automated order updates, appointment reminders, delivery + status changes, and other important alerts directly to your + customers' phones.

+
+ +
+

Interactive Workflows

+

Create conversational experiences where users can reply to messages + to complete tasks, answer surveys, or trigger automated responses.

+
-
- -

- P.S. - I'd love to hear from you! Why did you choose TextBee? Do you have any - feedback or questions?
- Feel free to reach out to our support team at - contact@textbee.dev.
- We read and respond to all emails as quickly as possible. -

- -
-

- Cheers,
- Vernu
- Creator, textbee.dev +

+ Explore more use cases →

-
-
+

Get Started in Minutes

-
-

Join our community!

- - Discord - Join Discord - - - GitHub - Star on GitHub - - +
+

Quick Setup Guide

+ +
+ +
+
2
+
+

Connect Your Device

+

Visit your dashboard, generate a QR code, and scan it with the + app

+
+
+ +
+
3
+
+

Start Sending

+

Send SMS messages via our dashboard or integrate with our API

+
+
+
+ + + +
+ +

Helpful Resources

+ + + +
+ +

Have questions or feedback? I'd love to hear from you! Feel free to + reply to this email or contact our support team at + support@textbee.dev.

+ +
Patreon - Support on Patreon - +
+

Vernu

+

Founder, textbee.dev

+
+
+
+ +
diff --git a/api/src/users/users.service.ts b/api/src/users/users.service.ts index 3c5077a..12a3d37 100644 --- a/api/src/users/users.service.ts +++ b/api/src/users/users.service.ts @@ -75,43 +75,42 @@ export class UsersService { @Cron('0 12 * * *') // Every day at 12 PM async sendEmailToInactiveNewUsers() { try { - // Get users who signed up between 24-48 hours ago (1-2 days ago) - const twoDaysAgo = new Date(Date.now() - 48 * 60 * 60 * 1000) - const oneDayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000) + // Get users who signed up between 3-4 days ago (not 1-2 days) + const fourDaysAgo = new Date(Date.now() - 4 * 24 * 60 * 60 * 1000) + const threeDaysAgo = new Date(Date.now() - 3 * 24 * 60 * 60 * 1000) const newUsers = await this.userModel.find({ createdAt: { - $gte: twoDaysAgo, - $lt: oneDayAgo, + $gte: fourDaysAgo, + $lt: threeDaysAgo, }, }) - const emailPromises = newUsers.map(async (user) => { + for (const user of newUsers) { try { - // Check if user has any devices registered + // Check if user has any devices registered or has sent/received any SMS const devices = await this.deviceModel.find({ user: user._id }) - if (devices.length === 0) { + if (devices.length === 0 || devices.map(device=>device.sentSMSCount + device.receivedSMSCount).reduce((a,b)=>a+b,0) == 0) { // User hasn't registered any device, send email await this.mailService.sendEmailFromTemplate({ to: user.email, subject: - 'Get Started with textbee.dev - Register Your First Device', + 'Getting Started with textbee.dev - How Can We Help?', template: 'inactive-new-user', context: { name: user.name, registerDeviceUrl: `${process.env.FRONTEND_URL}/dashboard`, }, }) - console.log(`Sent inactive new user email to ${user.email}`) } + // Wait 200ms before processing the next user + await new Promise((resolve) => setTimeout(resolve, 200)) } catch (error) { console.error(`Error processing email for user ${user.email}:`, error) } - }) - - await Promise.allSettled(emailPromises) + } } catch (error) { console.error('Error sending emails to inactive new users:', error) } @@ -120,18 +119,18 @@ export class UsersService { @Cron('0 13 * * *') // Every day at 1 PM async sendEmailToFreeUsers() { try { - // Get users who signed up between 3-4 days ago - const threeDaysAgo = new Date(Date.now() - 3 * 24 * 60 * 60 * 1000) - const fourDaysAgo = new Date(Date.now() - 4 * 24 * 60 * 60 * 1000) + // Get users who signed up between 13-14 days ago + const fourteenDaysAgo = new Date(Date.now() - 14 * 24 * 60 * 60 * 1000) + const thirteenDaysAgo = new Date(Date.now() - 13 * 24 * 60 * 60 * 1000) const usersToEmail = await this.userModel.find({ createdAt: { - $gte: fourDaysAgo, - $lt: threeDaysAgo, + $gte: fourteenDaysAgo, + $lt: thirteenDaysAgo, }, }) - const emailPromises = usersToEmail.map(async (user) => { + for (const user of usersToEmail) { try { const subscription = await this.billingService.getActiveSubscription( user._id.toString(), @@ -140,11 +139,12 @@ export class UsersService { if (subscription?.plan?.name === 'free') { const devices = await this.deviceModel.find({ user: user._id }) - if (devices.length === 0) { + if (devices.length === 0 || devices.map(device=>device.sentSMSCount + device.receivedSMSCount).reduce((a,b)=>a+b,0) == 0) { + // Only send this if they haven't set up any devices after 10-14 days await this.mailService.sendEmailFromTemplate({ to: user.email, - subject: `${user.name?.split(' ')[0]}, Your textbee.dev account is waiting for you!`, - template: 'inactive-new-user-day-3', + subject: `${user.name?.split(' ')[0]}, we'd love to help you get started with textbee.dev`, + template: 'inactive-new-user-day-10', context: { name: user.name, registerDeviceUrl: `${process.env.FRONTEND_URL}/dashboard`, @@ -153,24 +153,27 @@ export class UsersService { console.log(`Sent inactive new user email to ${user.email}`) } else { + // Only send upgrade email to active users who have at least one device await this.mailService.sendEmailFromTemplate({ to: user.email, - subject: `${user.name?.split(' ')[0]}, Upgrade to Pro with a 30% Discount - textbee.dev`, + subject: `${user.name?.split(' ')[0]}, unlock more capabilities with textbee.dev Pro`, template: 'upgrade-to-pro', context: { name: user.name, upgradeUrl: `${process.env.FRONTEND_URL}/checkout/pro`, + deviceCount: devices.length, }, }) console.log(`Sent upgrade to pro email to ${user.email}`) } } + + // Wait 200ms before processing the next user + await new Promise((resolve) => setTimeout(resolve, 200)) } catch (error) { console.error(`Error processing email for user ${user.email}:`, error) } - }) - - await Promise.allSettled(emailPromises) + } } catch (error) { console.error('Error sending emails to free plan users:', error) } diff --git a/web/app/(app)/(auth)/(components)/login-form.tsx b/web/app/(app)/(auth)/(components)/login-form.tsx index 42197bb..3bbd8b2 100644 --- a/web/app/(app)/(auth)/(components)/login-form.tsx +++ b/web/app/(app)/(auth)/(components)/login-form.tsx @@ -74,7 +74,7 @@ export default function LoginForm() { @@ -88,7 +88,11 @@ export default function LoginForm() { Password - + diff --git a/web/app/(app)/(auth)/(components)/register-form.tsx b/web/app/(app)/(auth)/(components)/register-form.tsx index 4c6e1e5..f7cd888 100644 --- a/web/app/(app)/(auth)/(components)/register-form.tsx +++ b/web/app/(app)/(auth)/(components)/register-form.tsx @@ -88,7 +88,7 @@ export default function RegisterForm() { Full Name - + @@ -101,7 +101,7 @@ export default function RegisterForm() { Email - + @@ -114,7 +114,7 @@ export default function RegisterForm() { Password - + @@ -127,7 +127,7 @@ export default function RegisterForm() { Phone (optional) - + diff --git a/web/app/(landing-page)/quickstart/page.tsx b/web/app/(landing-page)/quickstart/page.tsx new file mode 100644 index 0000000..31c26b7 --- /dev/null +++ b/web/app/(landing-page)/quickstart/page.tsx @@ -0,0 +1,581 @@ +import { Metadata } from 'next' +import Link from 'next/link' +import { + CheckCircle2, + Smartphone, + MessageSquare, + Settings, + ArrowRightCircle, + Zap, + ExternalLink, + BookOpen, + Star, + SparkleIcon, +} from 'lucide-react' + +export const metadata: Metadata = { + title: 'TextBee Quickstart - Send SMS from Your Android Phone | SMS Gateway', + description: + 'Get started with TextBee SMS Gateway in minutes. Learn how to send and receive SMS messages using your Android phone as an SMS gateway for your applications.', + keywords: + 'SMS gateway, Android SMS, API SMS, TextBee quickstart, SMS integration, two-way SMS', +} + +export default function QuickstartPage() { + return ( +
+
+
+ + 5-minute setup +
+ +

+ TextBee SMS Gateway Quickstart +

+ +

+ Transform your Android phone into a powerful SMS gateway in just 5 + minutes. Send and receive text messages programmatically through your + applications with TextBee. +

+ +

+ Our platform enables businesses and developers to implement SMS + functionality without expensive telecom infrastructure. Perfect for + notifications, authentication, alerts, and customer engagement. +

+ + +
+ +
+
+ +
+ {[1, 2, 3, 4, 5].map((step) => ( +
+ + {step} + + + Step {step} + +
+ ))} +
+
+ +
+

+ The Simplest Way to Add SMS to Your Applications +

+

+ TextBee turns any Android phone into a reliable SMS gateway, allowing + you to send and receive text messages programmatically. Whether you're + building a notification system, implementing two-factor + authentication, or creating marketing campaigns, TextBee provides a + cost-effective solution without the need for complex telecom + integrations. +

+

+ Follow this step-by-step guide to set up TextBee and start sending + your first SMS messages in minutes. Our straightforward process + requires minimal technical knowledge and works with any application or + service that can make HTTP requests. +

+
+ +
+
+
+
+ 1 +
+

Account Setup

+
+ +
+

+ Begin by creating your TextBee account and installing the Android + app. This setup process takes less than 2 minutes and only + requires basic permissions to send and receive SMS messages. +

+ +
+
+
+ 1 + +
+

Create account

+

+ Register at{' '} + + textbee.dev + {' '} + with your email and password +

+
+ +
+
+ 2 + +
+

Install app

+

+ Download from{' '} + + dl.textbee.dev + {' '} + or Google Play Store +

+
+ +
+
+ 3 + +
+

Grant permissions

+

+ Allow SMS access in the app to enable message sending and + receiving +

+
+
+
+
+ +
+
+
+ 2 +
+

Connect Your Device

+
+ +
+

+ Link your Android phone to your TextBee account to establish the + SMS gateway connection. This secure connection allows your + applications to send messages through your phone. +

+ +
+
+
+

QR Code Method

+ + Recommended + +
+
    +
  1. Go to TextBee Dashboard
  2. +
  3. Click "Register Device"
  4. +
  5. Scan QR with app
  6. +
+
+ +
+

Manual Method

+
    +
  1. Generate API key from dashboard
  2. +
  3. Open TextBee app
  4. +
  5. Enter the API key
  6. +
+
+
+
+
+ +
+
+
+ 3 +
+

Send Your First SMS

+
+ +
+

+ Start sending SMS messages through TextBee using either our + intuitive dashboard or direct API integration. Both methods + provide reliable message delivery with delivery status tracking. +

+ +
+
+

+ Dashboard Method +

+
+
    +
  1. Go to "Send SMS" section
  2. +
  3. Enter recipient(s)
  4. +
  5. Type your message
  6. +
  7. Click "Send"
  8. +
+
+
+ +
+

+ API Method +

+
+                  
+                    {`fetch("https://api.textbee.dev/api/v1/gateway/devices/{ID}/send-sms", {
+  method: 'POST',
+  headers: {
+    'Content-Type': 'application/json',
+    'x-api-key': API_KEY,
+  },
+  body: JSON.stringify({
+    recipients: ['+1234567890'],
+    message: 'Hello!'
+  })
+})`}
+                  
+                
+
+
+ +

+ With TextBee, your messages are sent directly through your Android + device, using your existing mobile plan. This keeps costs low + while maintaining high deliverability rates across all carriers. +

+
+
+ +
+
+
+ 4 +
+

Receive SMS Messages

+
+ +
+

+ Enable two-way communication by configuring TextBee to forward + incoming SMS messages to your application. This is essential for + interactive workflows, verification codes, and customer + engagement. +

+ +
+
+

Enable in App

+
+
    +
  1. Open the TextBee App
  2. +
  3. Go to Settings
  4. +
  5. Toggle "Receive SMS" on
  6. +
+
+
+ +
+

+ Retrieve via API +

+
+                  
+                    {`fetch("https://api.textbee.dev/api/v1/gateway/devices/{ID}/get-received-sms", {
+  headers: { 'x-api-key': API_KEY }
+})`}
+                  
+                
+
+
+ +

+ Received messages are securely forwarded to TextBee's servers and + can be accessed via the dashboard, API, or automatically sent to + your webhook endpoints for real-time processing. +

+
+
+ +
+
+
+ 5 +
+

Advanced Features

+
+ +
+

+ Once you've mastered the basics, explore TextBee's advanced + capabilities to enhance your SMS integration. These features help + scale your messaging operations and automate complex workflows. +

+ +
+
+
+ • +
+
+

Bulk SMS

+

+ Send to multiple recipients with a single API call for + efficient message broadcasting +

+
+
+
+
+ • +
+
+

Webhooks

+

+ Configure event-driven notifications for real-time updates + on message status +

+
+
+
+
+ • +
+
+

Multiple Devices

+

+ Connect several phones to increase throughput and add + redundancy +

+
+
+
+
+ • +
+
+

Self-hosting

+

+ Deploy TextBee on your own infrastructure for complete + control +

+
+
+
+ +
+
+
+ + Ready to explore more? +
+ + Use Cases + + +
+
+
+
+
+ +
+
+
+
+ +

TextBee Pro

+
+ +

+ Upgrade to TextBee Pro for enhanced features and priority support. +

+ +
+
+
+ + Unlimited devices and higher sending limits +
+
+ + Advanced analytics and delivery reporting +
+
+ + Message scheduling and template management +
+
+ +
+
+ + Priority support with faster response times +
+
+ + Custom webhooks for advanced integrations +
+
+ + White-labeled SMS for business applications +
+
+
+ +
+
+
+ $29 + /month +
+

+ Cancel anytime. No long-term contracts. +

+
+ + Upgrade to Pro + +
+
+
+ +
+

+ Why Choose TextBee SMS Gateway? +

+
+
+

+ Cost-Effective SMS Solution +

+

+ TextBee eliminates the need for expensive SMS API services or + telecom contracts. By using your existing phone and mobile plan, + you can send SMS messages at standard rates without additional + per-message fees from third-party providers. +

+ +

+ Easy Integration +

+

+ Our RESTful API makes integration simple for developers using any + programming language. TextBee works seamlessly with web + applications, mobile apps, and backend services through standard + HTTP requests. +

+
+ +
+

+ Perfect For +

+
    +
  • + + + + Two-factor authentication (2FA) + {' '} + - Secure user accounts with SMS verification codes + +
  • +
  • + + + Appointment reminders - + Reduce no-shows with automated SMS notifications + +
  • +
  • + + + Order updates - Keep + customers informed about their purchases + +
  • +
  • + + + Marketing campaigns - + Engage customers with promotional messages + +
  • +
  • + + + Alerts and notifications{' '} + - Send time-sensitive information instantly + +
  • +
+
+
+
+ +
+
+
+

Need help?

+

+ Our support team is ready to assist you +

+
+ +
+
+
+ ) +} diff --git a/web/app/(landing-page)/use-cases/page.tsx b/web/app/(landing-page)/use-cases/page.tsx new file mode 100644 index 0000000..f3a7350 --- /dev/null +++ b/web/app/(landing-page)/use-cases/page.tsx @@ -0,0 +1,630 @@ +import { Metadata } from 'next' +import { Card, CardContent } from '@/components/ui/card' +import Link from 'next/link' +import { + ShieldCheck, + ShoppingBag, + Calendar, + AlertTriangle, + Megaphone, + HeadsetIcon, + ExternalLink, + ArrowRight, +} from 'lucide-react' + +export const metadata: Metadata = { + title: 'Use Cases | TextBee', + description: + 'Explore various use cases and applications for TextBee SMS Gateway Platform', +} + +export default function UseCasesPage() { + return ( + <> +
+
+

+ TextBee Use Cases +

+

+ Discover how businesses and developers leverage TextBee SMS Gateway + for a wide variety of applications. Get inspired by these common use + cases and implementations. +

+
+ + + +
+
+
+ +
+
+ +
+

+ Two-factor Authentication (2FA) +

+
+ +

+ Enhance your application's security by implementing SMS-based + two-factor authentication. Add an extra layer of verification + to protect user accounts. +

+ +
+

+ Implementation Steps: +

+
    +
  1. Generate a random verification code for the user
  2. +
  3. Send the code via SMS using TextBee API
  4. +
  5. Verify the code entered by the user
  6. +
+
+ +
+
+ + JavaScript + + Example: +
+
+                    
+                      {`// Send 2FA code
+const verificationCode = generateRandomCode();
+await axios.post(\`https://api.textbee.dev/api/v1/gateway/devices/\${DEVICE_ID}/send-sms\`, {
+  recipients: [ user.phoneNumber ],
+  message: \`Your verification code is: \${verificationCode}\`
+}, {
+  headers: { 'x-api-key': API_KEY }
+});`}
+                    
+                  
+ +
+
+
+
+ +
+
+ +
+

+ Order Notifications +

+
+ +

+ Keep customers informed about their orders with real-time SMS + updates. Improve customer experience with timely notifications + throughout the order lifecycle. +

+ +
+
+

+ Order Confirmation +

+

+ Send details after purchase +

+
+
+

+ Shipping Updates +

+

+ Notify when order ships +

+
+
+

+ Delivery Status +

+

+ Alert when delivered +

+
+
+

Order Changes

+

+ Inform of modifications +

+
+
+ +
+
+ + JavaScript + + Example: +
+
+                    
+                      {`// Send order confirmation
+await axios.post(\`https://api.textbee.dev/api/v1/gateway/devices/\${DEVICE_ID}/send-sms\`, {
+  recipients: [ customer.phoneNumber ],
+  message: \`Order #\${orderNumber} confirmed! Expected delivery: \${deliveryDate}. Track at: \${trackingUrl}\`
+}, {
+  headers: { 'x-api-key': API_KEY }
+});`}
+                    
+                  
+ +
+
+ +
+
+ +
+
+ +
+

+ Appointment Reminders +

+
+ +

+ Reduce no-shows by sending automated appointment reminders to + clients. Perfect for medical practices, salons, consultants, + and service businesses. +

+ +
+

Key Features:

+
    +
  • Scheduled reminders (24h, 1h before appointments)
  • +
  • Interactive responses (reply to reschedule/cancel)
  • +
  • Calendar integration
  • +
+
+ +
+
+ + JavaScript + + Example: +
+
+                    
+                      {`// Schedule reminder job
+scheduler.scheduleJob(reminderTime, async () => {
+  await axios.post(\`https://api.textbee.dev/api/v1/gateway/devices/\${DEVICE_ID}/send-sms\`, {
+    recipients: [ appointment.phoneNumber ],
+    message: \`Reminder: Your appointment is tomorrow at \${appointment.time}. Reply CONFIRM to confirm or RESCHEDULE to change.\`
+  }, {
+    headers: { 'x-api-key': API_KEY }
+  });
+});`}
+                    
+                  
+ +
+
+ +
+
+ +
+
+ +
+

+ Emergency Alerts +

+
+ +

+ Send critical notifications and emergency alerts to large + groups of people quickly. Perfect for natural disasters, + emergencies, and critical business communications. +

+ +
+

Applications:

+
    +
  • Weather emergencies
  • +
  • Campus/school alerts
  • +
  • IT system outages
  • +
  • Critical business communications
  • +
+
+ +
+
+ + JavaScript + + Example: +
+
+                    
+                      {`// Send bulk emergency alert
+const recipients = await getUserPhoneNumbers(affectedRegion);
+await axios.post(\`https://api.textbee.dev/api/v1/gateway/devices/\${DEVICE_ID}/send-bulk-sms\`, {
+  messageTemplate: \`ALERT: \${emergencyMessage}. Stay safe.\`,
+  messages: [{
+    recipients: recipients,
+  }]
+}, {
+  headers: { 'x-api-key': API_KEY }
+});`}
+                    
+                  
+ +
+
+ +
+
+ +
+
+ +
+

+ Marketing Campaigns +

+
+ +

+ Run targeted SMS marketing campaigns to engage customers and + drive sales. Perfect for promotions, event announcements, and + customer surveys. +

+ +
+

+ Campaign Types: +

+
    +
  • Promotional offers and discounts
  • +
  • New product announcements
  • +
  • Event invitations
  • +
  • Customer surveys
  • +
+
+ +
+

+ Note: Always ensure you have proper consent + and comply with SMS marketing regulations in your region. +

+
+
+ +
+
+ +
+
+ +
+

+ Customer Support +

+
+ +

+ Provide customer support through two-way SMS communication. + Perfect for handling customer inquiries and feedback. +

+ +
+

+ Implementation Steps: +

+
    +
  1. Configure webhook for incoming SMS
  2. +
  3. Process and route messages to support agents
  4. +
  5. Send automated responses for common queries
  6. +
  7. Track conversation history
  8. +
+
+ +
+
+ + JavaScript + + Example: +
+
+                    
+                      {`// Check for new messages
+const messages = await axios.get(
+  \`https://api.textbee.dev/api/v1/gateway/devices/\${DEVICE_ID}/get-received-sms\`,
+  { headers: { 'x-api-key': API_KEY } }
+);
+
+// Process and respond to messages
+for (const msg of messages.data) {
+  const response = await generateSupportResponse(msg.message);
+  await sendReply(msg.sender, response);
+}`}
+                    
+                  
+ +
+
+
+ +
+
+
+ +
+

+ Custom Integrations +

+
+ +

+ TextBee can be integrated with various platforms and services. + Our REST API allows you to create custom integrations for almost + any application, automating SMS sending and receiving based on + triggers in your existing systems. +

+ +
+
+
+ + + + + + +
+

CRM Systems

+

+ Connect SMS messaging with customer records +

+
+ +
+
+ + + + + + + + + + + + +
+

Booking Software

+

+ Automate appointment confirmations +

+
+ +
+
+ + + + + +
+

E-commerce

+

+ Send order & shipping updates +

+
+ +
+
+ + + + + + +
+

Automation Tools

+

+ Integrate with Zapier, IFTTT, etc. +

+
+
+ +
+
+

Webhooks Support

+

+ Configure webhooks to receive notifications when SMS events + occur. Perfect for event-driven architectures and real-time + applications. +

+
+ POST + https://your-server.com/webhook?event=sms_received&sender=+1234567890 +
+
+ +
+

+ API Documentation +

+

+ Our comprehensive API documentation provides all the details + you need to integrate TextBee with your applications and + services. +

+ + View API Documentation + + +
+
+
+ +
+
+
+

+ Ready to implement these use cases? +

+

+ Follow our step-by-step quickstart guide to set up TextBee + and start sending SMS messages in minutes. Whether you're + implementing 2FA, appointment reminders, or complex + integrations, we've got you covered. +

+
+
+ + Quickstart Guide + + + + Contact Support + +
+
+
+
+
+
+ + ) +} diff --git a/web/app/layout.tsx b/web/app/layout.tsx index 70cf3d1..70b2423 100644 --- a/web/app/layout.tsx +++ b/web/app/layout.tsx @@ -13,7 +13,7 @@ import prismaClient from '@/lib/prismaClient' import { userAgent } from 'next/server' export const metadata: Metadata = { - title: 'textbee.dev - Free and Open-Source SMS Gateway', + title: 'textbee.dev - sms gateway', description: 'TextBee is an open-source solution that turns your Android device into a powerful SMS gateway. Send SMS effortlessly through your applications.', authors: [ @@ -51,7 +51,7 @@ export const metadata: Metadata = { canonical: 'https://textbee.dev', }, openGraph: { - title: 'textbee.dev - Free and Open-Source SMS Gateway', + title: 'textbee.dev - sms gateway', description: 'TextBee is an open-source solution that turns your Android device into a powerful SMS gateway. Send SMS effortlessly through your applications.', }, diff --git a/web/app/sitemap.ts b/web/app/sitemap.ts index df3e305..387bb5c 100644 --- a/web/app/sitemap.ts +++ b/web/app/sitemap.ts @@ -28,6 +28,19 @@ export default function sitemap(): MetadataRoute.Sitemap { changeFrequency: 'monthly' as const, priority: 0.8, }, + { + url: `${baseUrl}${Routes.useCases}`, + lastModified: new Date(), + changeFrequency: 'monthly' as const, + priority: 0.8, + }, + { + url: `${baseUrl}${Routes.quickstart}`, + lastModified: new Date(), + changeFrequency: 'monthly' as const, + priority: 0.8, + }, + { url: `${baseUrl}${Routes.login}`, lastModified: new Date(), @@ -70,7 +83,7 @@ export default function sitemap(): MetadataRoute.Sitemap { changeFrequency: 'yearly' as const, priority: 0.5, }, - + // { // url: `${baseUrl}/docs`, // lastModified: new Date(), diff --git a/web/config/routes.ts b/web/config/routes.ts index bb78e8f..fe186bf 100644 --- a/web/config/routes.ts +++ b/web/config/routes.ts @@ -1,6 +1,8 @@ export const Routes = { landingPage: '/', contribute: '/contribute', + useCases: '/use-cases', + quickstart: '/quickstart', login: '/login', register: '/register', logout: '/logout',