# The moment a new user signs up.

> Get a push when a new user signs up. Add one line to your signup flow from any backend or no-code tool and watch your user count climb in real time.

<!-- source: https://pocketalert.app/use-cases/signup-alerts -->

Call Pocket Alert from your signup handler, right after the user record is created. Each registration reaches your phone with its email and plan, and the same line handles upgrades and milestones.

## Three steps to signup alerts

1. **Get your API key** — Create an API key in your account, and store it as an env var on your backend.
2. **Hook your signup** — POST to https://api.pocketalert.app/v1/messages from your signup handler with the new user's email or plan.
3. **Feel the growth** — Register a test user. Your phone buzzes as they join.

## Watch your product grow, live

Every new signup lands on your phone as it happens, and you feel the product growing.

- **One line to add** — One call in your signup handler turns each new user into a push. No analytics pipeline required.
- **Who just joined** — Email, source, and plan ride along in the message, so the alert names the person who joined.
- **Milestones too** — Point the same call at upgrades, first projects, and invites to follow activation, not just signups.
- **Any stack** — Wire it from your backend, a database trigger, or a no-code tool watching your auth provider.
- **Real-time growth** — Seeing the user count tick up keeps a founder going.
- **Scales with you** — As volume grows, trade per-signup pings for milestones or a digest and the channel stays useful.

## Ping yourself on every signup

### Node — after user.create

```
await fetch('https://api.pocketalert.app/v1/messages', {
  method: 'POST',
  headers: { Token: process.env.POCKETALERT_API_KEY, 'Content-Type': 'application/json' },
  body: JSON.stringify({
    title: 'New signup 🎉',
    message: `${newUser.email} joined on the ${newUser.plan} plan`,
    level: 'high',
    application_id: 'qm47b9pzxzxg',
  }),
});
```

### Python — after User.objects.create

```
import requests

requests.post(
    'https://api.pocketalert.app/v1/messages',
    headers={'Token': os.environ['POCKETALERT_API_KEY']},
    json={
        'title': 'New signup 🎉',
        'message': f'{new_user.email} joined on the {new_user.plan} plan',
        'application_id': 'qm47b9pzxzxg',
    },
)
```

### Ruby — after User.create

```
require 'net/http'
require 'json'

uri = URI('https://api.pocketalert.app/v1/messages')
Net::HTTP.post(
  uri,
  { title: 'New signup 🎉', message: "#{new_user.email} joined", application_id: 'qm47b9pzxzxg' }.to_json,
  'Token' => ENV['POCKETALERT_API_KEY'], 'Content-Type' => 'application/json'
)
```

The same call handles upgrades and key milestones — fire it after the relevant event. The [docs](https://info.pocketalert.app/getting-started.html) go deeper.

## FAQ

### How do I get signup notifications?

POST to the Pocket Alert messages API from your signup handler, right after you create the user record. Send a title and message, and the alert lands on your phone carrying their email or plan.

### Can I include the user details?

Yes. Put the email, source, or plan in the message and each alert reads "New Pro signup · alex@acme.com" with whatever detail you choose.

### Can I track milestones beyond signup?

Point the same one-line call at any milestone: a first project, an upgrade, a first invite. Each fires its own push, so activation shows up next to registration.

### Does it work with my stack?

It runs from any stack. Call it from your backend, from a database trigger via webhook, or from a no-code tool like Zapier watching your auth provider.

### Will this get noisy at scale?

Early on, every signup deserves a ping. Once volume climbs, switch to milestones or a daily digest and the channel keeps its signal.

### Can a big signup ring louder than the rest?

Yes. Every message takes a level, from silent (-2) to critical (2). Send level high when an enterprise plan signs up and it arrives as a time-sensitive push that breaks through iPhone Focus modes. Once you move to a daily digest, send it at silent — no sound or vibration, and it still shows in your history.
