Alerts

Refresh prices in the background and get notified on this device (web clip) and in Telegram when a holding moves beyond your threshold — or get one scheduled message with your whole portfolio change in money and percent. Last price update: never.

Browser push · web clip

Works in desktop browsers and in an installed Home Screen app on iOS 16.4+ and Android.

Not subscribed on this browser

Telegram bot

Messages are sent through the Telegram Bot API using a bot you own. Connect it right here — no server restart needed. Nothing else is shared.

Connectedadded in the app
Bot
@hfsjdfhbot
Chat id
7593153426
Token
8848069606:••••SiJs

Alert rules

Holding thresholds apply to stocks and crypto, measured over the window you choose; cash is never alerted. The portfolio update covers the whole total and runs at the time you pick — its threshold is optional.

Holding alerts

The move must reach this size within the window to alert.

Month rules catch slower swings; day rules catch single-session moves. New holdings without history compare with the previous refresh.

A server-side schedule keeps prices fresh when nobody has the app open — see below.

Portfolio update

The first refresh after this time sends it — never earlier. A later run the same day still delivers it; if nothing runs that day, that day is skipped.

Uses your device zone by default.

Optional — leave blank to get it every day.

How often

Each recap compares with its own horizon and sends once per period, so ticking one never repeats another.

compared with yesterday's total
compared with 7 days ago
compared with ~30 days ago (1–28, so every month has it)

Only changes the preview below; each ticked recap sends its own message. Deposits and withdrawals count as part of the change.

The optional threshold applies to every recap.

Custom Telegram message

Telegram only — browser push keeps the standard text

Leave blank for the standard message. Type your own text and drop in placeholders — click one to insert it.

Added as the last line, after the message above. An auto note, if it is on, follows it.

Preview · what Telegram receives

gggfc$1,008.00

vgvgvg]

Your real totals. Telegram gets this text, updated as you type.

Next scheduled send: Fri, Oct 23, 12:00 PM UTC

Last portfolio update sent: never

Sends a preview of today's message through the channels below right now. It ignores the optional threshold and does not wait for the schedule, so it works before this is turned on.

Delivery channels

Both the holding alerts and the portfolio update use these channels.

Holding alerts are deduplicated: at most one per asset, window, direction and day. The portfolio update sends at most once per day.

Refresh in the background

The app refreshes prices while a tab is open. To refresh on a schedule with nobody watching, call the cron endpoint from your server or scheduler.

1 · Set a secret (recommended)

Add CRON_SECRET to the server environment and restart. Without it the endpoint is open and throttled to one run per minute.

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

2 · Call the endpoint every 15 minutes

curl -fsS -H "Authorization: Bearer $CRON_SECRET"   https://your-ledgerly.example.com/api/cron/refresh-prices

Host cron: */15 * * * * /usr/local/bin/ledgerly-refresh. systemd timer and GitHub Actions examples are in the README. On Vercel, schedule /api/cron/refresh-prices in vercel.json (minute-level crons need a Pro plan; the bundled daily cron also sends alerts).

3 · Verify

A healthy response looks like { "ok": true, "refreshedCrypto": 3, "alertsSent": 1 }. Alerts are deduplicated, so frequent runs do not repeat the same message.

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 3:08 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 3:04 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 3:00 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 3:00 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 2:42 AM

    telegram

  • Ledgerly test alert

    If you can read this, alerts are working. You will get a message when a holding moves beyond your threshold.

    Oct 23, 2:09 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 2:08 AM

    telegram

  • Ledgerly test alert

    If you can read this, alerts are working. You will get a message when a holding moves beyond your threshold.

    Oct 23, 2:01 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 1:29 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 1:28 AM

    telegram

  • Portfolio ▬ 0.00% ($0.00)

    Your portfolio is worth $1,008.00, unchanged since yesterday's close.

    Oct 23, 1:07 AM

    telegram

  • Ledgerly test alert

    If you can read this, alerts are working. You will get a message when a holding moves beyond your threshold.

    Oct 23, 1:06 AM

    telegram