<?xml version="1.0"?><feed xmlns="http://www.w3.org/2005/Atom"><title>Infrai Developer Guides</title><id>https://docs.infrai.cc/en/guides/</id><link href="https://docs.infrai.cc/en/guides/"/><updated>2026-07-26T00:00:00Z</updated><entry><title>Reranking 50 search candidates: request, response and mapping back</title><id>https://docs.infrai.cc/en/guides/ai/answers/after-search-returns-50-candidate-docs-i-want-to-reorde/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/after-search-returns-50-candidate-docs-i-want-to-reorde/"/><updated>2026-07-26T00:00:00Z</updated><summary>The exact rerank payload Infrai accepts, the ranked array it returns, and how index-based results join back to your documents — with the ten-result ceiling we hit.</summary></entry><entry><title>Batch product-image generation in Node: bulk prompts, pooled image calls</title><id>https://docs.infrai.cc/en/guides/ai/answers/batch-generate-images-from-product-titles-and-descripti/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/batch-generate-images-from-product-titles-and-descripti/"/><updated>2026-07-26T00:00:00Z</updated><summary>Turning a catalogue of titles and descriptions into generated images is a two-stage job. Here's the working split, the async batch call, and the part that can't go in a batch.</summary></entry><entry><title>Backfilling moderation over posts you already have: a Node bulk job</title><id>https://docs.infrai.cc/en/guides/ai/answers/batch-moderate-existing-posts-comments-nodejs-bulk-job/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/batch-moderate-existing-posts-comments-nodejs-bulk-job/"/><updated>2026-07-26T00:00:00Z</updated><summary>Classifying an existing table of posts and comments is a data-migration problem wearing an AI hat. Keyset cursors, idempotent writeback, and an auditable export.</summary></entry><entry><title>Forecast a feature's monthly LLM bill before you ship it</title><id>https://docs.infrai.cc/en/guides/ai/answers/before-we-ship-a-new-feature-i-want-to-know-roughly-wh/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/before-we-ship-a-new-feature-i-want-to-know-roughly-wh/"/><updated>2026-07-26T00:00:00Z</updated><summary>Monthly spend is one token measurement times a volume assumption. Both are free to obtain from Infrai, and the arithmetic beats any calculator page.</summary></entry><entry><title>Tagging support tickets without fine-tuning: zero-shot, rerank or embeddings</title><id>https://docs.infrai.cc/en/guides/ai/answers/best-alternative-to-fine-tuning-for-support-ticket-tagg/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/best-alternative-to-fine-tuning-for-support-ticket-tagg/"/><updated>2026-07-26T00:00:00Z</updated><summary>Three cheaper architectures than a fine-tuned classifier for ticket tagging, priced against Infrai's live model catalogue, with runnable calls for each.</summary></entry><entry><title>Evaluating a cheap LLM API gateway: catalogue, telemetry, cache, routing</title><id>https://docs.infrai.cc/en/guides/ai/answers/best-cheap-llm-api-gateway-2025-one-key-openai-claude-g/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/best-cheap-llm-api-gateway-2025-one-key-openai-claude-g/"/><updated>2026-07-26T00:00:00Z</updated><summary>Six things to check before you route your traffic through an LLM gateway, each with the call that answers it — and an honest look at which vendors Infrai serves today.</summary></entry><entry><title>Posters and social ads from an image API: resolution, style control, upscale</title><id>https://docs.infrai.cc/en/guides/ai/answers/best-text-to-image-api-for-marketing-app-high-quality-p/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/best-text-to-image-api-for-marketing-app-high-quality-p/"/><updated>2026-07-26T00:00:00Z</updated><summary>What high quality means for marketing creative, which parts of it an API can actually give you, and a render-then-upscale pipeline with the dimensions we measured.</summary></entry><entry><title>Cheaper than GPT-4 for summarise, classify and extract: five levers</title><id>https://docs.infrai.cc/en/guides/ai/answers/best-way-reduce-llm-cost-summarize-classify-extract-jso/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/best-way-reduce-llm-cost-summarize-classify-extract-jso/"/><updated>2026-07-26T00:00:00Z</updated><summary>Which cost levers actually move the bill on high-volume text work, measured on one 500k-document workload — model tier, output caps, batching, prompt size and cache.</summary></entry><entry><title>Cheap semantic search over your docs: embeddings and rerank, priced properly</title><id>https://docs.infrai.cc/en/guides/ai/answers/cheap-embeddings-rerank-semantic-search-alternative-com/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/cheap-embeddings-rerank-semantic-search-alternative-com/"/><updated>2026-07-26T00:00:00Z</updated><summary>Indexing is a one-off in cents; queries are the recurring bill. Measured per-million-token and per-request rates, the catalogue gotcha, and where the region caveat bites.</summary></entry><entry><title>Cheap RAG in Node: cost the chunks, the index and the answer separately</title><id>https://docs.infrai.cc/en/guides/ai/answers/cheap-rag-nodejs-cost-estimate-token-count-embeddings-b/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/cheap-rag-nodejs-cost-estimate-token-count-embeddings-b/"/><updated>2026-07-26T00:00:00Z</updated><summary>A RAG budget has three independent line items and only one of them is embeddings. How to measure each with Infrai's free token and cost endpoints before writing the pipeline.</summary></entry><entry><title>Cheap text summarization: per-1K-token rates versus cost per document</title><id>https://docs.infrai.cc/en/guides/ai/answers/cheap-text-summarization-api-for-startup-cost-per-1k-to/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/cheap-text-summarization-api-for-startup-cost-per-1k-to/"/><updated>2026-07-26T00:00:00Z</updated><summary>Rate cards quote tokens; your budget is in documents. How to convert one into the other with a measurement, and when batching summaries actually pays off.</summary></entry><entry><title>Cheapest text-to-image API for an MVP: sticker price vs what you get billed</title><id>https://docs.infrai.cc/en/guides/ai/answers/cheapest-image-generation-api-for-startup-mvp-2025-comp/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/cheapest-image-generation-api-for-startup-mvp-2025-comp/"/><updated>2026-07-26T00:00:00Z</updated><summary>Published per-image rates and real invoices disagree. How to measure your own cost per render in Node, which billing shapes exist, and when a specialist is genuinely cheaper.</summary></entry><entry><title>OpenAI-compatible gateway: what a baseURL swap buys you, and what it can't</title><id>https://docs.infrai.cc/en/guides/ai/answers/cheapest-openai-claude-gemini-compatible-api-gateway-20/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/cheapest-openai-claude-gemini-compatible-api-gateway-20/"/><updated>2026-07-26T00:00:00Z</updated><summary>Compatibility is a request shape, not a model list. Coverage, cache behaviour, batch pass-through and per-token cost telemetry, each with the call that proves it.</summary></entry><entry><title>Cheap, reliable LLM JSON extraction: count tokens before you pick a model</title><id>https://docs.infrai.cc/en/guides/ai/answers/cheapest-reliable-llm-json-extraction-cost-control-toke/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/cheapest-reliable-llm-json-extraction-cost-control-toke/"/><updated>2026-07-26T00:00:00Z</updated><summary>Token counting, a free cross-model cost compare call, and the batch-or-realtime decision for structured extraction in Node — including where JSON mode still lets you down.</summary></entry><entry><title>Moderating a million comments a month: cheap first pass, human second</title><id>https://docs.infrai.cc/en/guides/ai/answers/cheapest-way-to-moderate-large-volume-user-content-batc/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/cheapest-way-to-moderate-large-volume-user-content-batc/"/><updated>2026-07-26T00:00:00Z</updated><summary>A tiered moderation pipeline costed end to end — batch classification, confidence-band escalation and a review queue, with the calls and the monthly arithmetic.</summary></entry><entry><title>tiktoken or a token-count endpoint? Three numbers for one prompt</title><id>https://docs.infrai.cc/en/guides/ai/answers/counting-prompt-tokens-local-tiktoken-or-a-server-side/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/counting-prompt-tokens-local-tiktoken-or-a-server-side/"/><updated>2026-07-26T00:00:00Z</updated><summary>We counted the same two messages three ways and got 26, 33 and 24. Which number to trust, when to call Infrai's counter, and the silent zero that catches people.</summary></entry><entry><title>Receipts and invoices through a vision LLM: dependable enough, and which model</title><id>https://docs.infrai.cc/en/guides/ai/answers/finance-wants-to-auto-extract-structured-data-from-phot/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/finance-wants-to-auto-extract-structured-data-from-phot/"/><updated>2026-07-26T00:00:00Z</updated><summary>Vision models read photographed receipts well enough to assist an approver, not to post to the ledger unattended. How to choose one and gate the output.</summary></entry><entry><title>Listing TTS voices and getting an MP3 back, and why voice ids don't travel</title><id>https://docs.infrai.cc/en/guides/ai/answers/for-tts-how-do-i-list-the-available-voices-and-generat/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/for-tts-how-do-i-list-the-available-voices-and-generat/"/><updated>2026-07-26T00:00:00Z</updated><summary>One GET lists every servable voice, one POST returns audio bytes — but a voice id is pinned to one model, and the container you ask for isn't always what arrives.</summary></entry><entry><title>Do you need ElevenLabs, or is bundled TTS good enough for voiceover?</title><id>https://docs.infrai.cc/en/guides/ai/answers/for-voiceover-needs-should-i-pay-for-a-specialist-tts/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/for-voiceover-needs-should-i-pay-for-a-specialist-tts/"/><updated>2026-07-26T00:00:00Z</updated><summary>A decision rule for buying speech: what a bundled TTS catalogue really contains, the cost of a finished minute of audio, and the four cases where a specialist still wins.</summary></entry><entry><title>Show 'this call will cost about $X' before sending — and be right</title><id>https://docs.infrai.cc/en/guides/ai/answers/i-want-to-show-internal-users-this-call-will-cost-abou/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/i-want-to-show-internal-users-this-call-will-cost-abou/"/><updated>2026-07-26T00:00:00Z</updated><summary>The estimate endpoint answers in milliseconds but has two failure modes that return a confident wrong number. How to build a price preview you can defend.</summary></entry><entry><title>Stopping a retried agent from submitting the same batch job twice</title><id>https://docs.infrai.cc/en/guides/ai/answers/my-agent-auto-retries-api-calls-on-flaky-networks-how/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/my-agent-auto-retries-api-calls-on-flaky-networks-how/"/><updated>2026-07-26T00:00:00Z</updated><summary>What Idempotency-Key does and doesn't do on Infrai's batch route right now, and the client-side ledger that actually keeps a flaky-network retry from double-charging.</summary></entry><entry><title>Summarising a folder of documents from Node: batch submit, poll, export</title><id>https://docs.infrai.cc/en/guides/ai/answers/nodejs-batch-summarization-multiple-documents-api-examp/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/nodejs-batch-summarization-multiple-documents-api-examp/"/><updated>2026-07-26T00:00:00Z</updated><summary>A working Node 22 example for bulk document summarisation on Infrai: the blocking submit call, the states a batch can settle in, and how the JSONL export comes back.</summary></entry><entry><title>Upscale returns base64: how to get a CDN URL instead of a blob</title><id>https://docs.infrai.cc/en/guides/ai/answers/on-the-image-upscale-api-can-the-platform-store-the-up/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/on-the-image-upscale-api-can-the-platform-store-the-up/"/><updated>2026-07-26T00:00:00Z</updated><summary>Infrai's image upscale route always answers with base64 and a null url. Here is the two-call pattern that turns that blob into a signed, CDN-frontable link.</summary></entry><entry><title>OpenAI's Batch API vs a gateway's batch queue: the discount and the ceremony</title><id>https://docs.infrai.cc/en/guides/ai/answers/openai-s-official-batch-api-versus-a-third-party-platfo/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/openai-s-official-batch-api-versus-a-third-party-platfo/"/><updated>2026-07-26T00:00:00Z</updated><summary>The 50% batch discount is real and vendor-specific. The developer-experience gap is bigger, and it's mostly about file handling. A measured comparison.</summary></entry><entry><title>A few thousand LLM requests as one job: submit, watch, retry, ship the file</title><id>https://docs.infrai.cc/en/guides/ai/answers/walk-me-through-a-complete-batch-llm-job-submitting-a/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/walk-me-through-a-complete-batch-llm-job-submitting-a/"/><updated>2026-07-26T00:00:00Z</updated><summary>The full operational path for a batch inference run on Infrai — chunk sizing, the state that will hang your poll loop, per-row retries and a JSONL export.</summary></entry><entry><title>One key for GPT plus cheaper vendors: the gateway pattern, tested</title><id>https://docs.infrai.cc/en/guides/ai/answers/we-want-to-hit-gpt-plus-a-couple-of-cheaper-models-from/</id><link href="https://docs.infrai.cc/en/guides/ai/answers/we-want-to-hit-gpt-plus-a-couple-of-cheaper-models-from/"/><updated>2026-07-26T00:00:00Z</updated><summary>An OpenAI-compatible gateway collapses three keys, three SDKs and three invoices into one call site. Here is what that looks like live, leaks included.</summary></entry><entry><title>Admin analytics for a Node SaaS: metrics counter, log search, or an event query?</title><id>https://docs.infrai.cc/en/guides/analytics/answers/metrics-dashboard-vs-logs-search-for-admin-analytics-no/</id><link href="https://docs.infrai.cc/en/guides/analytics/answers/metrics-dashboard-vs-logs-search-for-admin-analytics-no/"/><updated>2026-07-26T00:00:00Z</updated><summary>Verified on the live API: log search ignores your time window and a metrics query returns one point. Here's which Infrai read route an admin page should call.</summary></entry><entry><title>A Mixpanel alternative for business metrics: events vs a custom metrics API</title><id>https://docs.infrai.cc/en/guides/analytics/answers/simple-business-metrics-dashboard-alternative-to-mixpan/</id><link href="https://docs.infrai.cc/en/guides/analytics/answers/simple-business-metrics-dashboard-alternative-to-mixpan/"/><updated>2026-07-26T00:00:00Z</updated><summary>Event store, counter API, or SQL over your own database? What Infrai's /v1/analytics routes answer, what they refuse to, and when PostHog is the better call.</summary></entry><entry><title>Cheapest cron for nightly data cleanup: Actions, Workers or EventBridge?</title><id>https://docs.infrai.cc/en/guides/cron/answers/best-cheapest-cron-scheduler-for-scheduled-data-cleanup/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/best-cheapest-cron-scheduler-for-scheduled-data-cleanup/"/><updated>2026-07-26T00:00:00Z</updated><summary>GitHub Actions cron, Cloudflare Workers Cron Triggers, EventBridge Scheduler and Infrai compared on a nightly cleanup job — and what each one really bills you for.</summary></entry><entry><title>A nightly cleanup job for an Express app: which scheduler, which cron expression</title><id>https://docs.infrai.cc/en/guides/cron/answers/daily-cleanup-job-delete-old-uploads-logs-records-cron/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/daily-cleanup-job-delete-old-uploads-logs-records-cron/"/><updated>2026-07-26T00:00:00Z</updated><summary>Old uploads, old logs and old rows need three different answers. What we'd run on Infrai for each, the cron expression, and the run history that tells you it worked.</summary></entry><entry><title>One POST for a daily 8am Eastern webhook: the parameters that matter</title><id>https://docs.infrai.cc/en/guides/cron/answers/how-do-i-create-a-scheduled-job-with-a-single-http-requ/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/how-do-i-create-a-scheduled-job-with-a-single-http-requ/"/><updated>2026-07-26T00:00:00Z</updated><summary>A single request to Infrai's cron API schedules an HTTPS callback at 08:00 America/New_York. Which fields are load-bearing, which are quietly ignored, and how to prove it fired.</summary></entry><entry><title>Give each transcode to exactly one homelab box, and reclaim it if that box dies</title><id>https://docs.infrai.cc/en/guides/cron/answers/i-m-farming-video-transcode-jobs-out-to-a-few-homelab-m/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/i-m-farming-video-transcode-jobs-out-to-a-few-homelab-m/"/><updated>2026-07-26T00:00:00Z</updated><summary>Lease-based queue delivery is how you spread ffmpeg work across machines safely. What Infrai's visibility timeout, delivery count and dead-letter queue do in practice.</summary></entry><entry><title>A morning webhook for your backup job, without a VPS to patch</title><id>https://docs.infrai.cc/en/guides/cron/answers/i-want-my-server-to-get-a-webhook-every-morning-to-kick/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/i-want-my-server-to-get-a-webhook-every-morning-to-kick/"/><updated>2026-07-26T00:00:00Z</updated><summary>Comparing the maintenance load of crontab on a box, GitHub Actions, EventBridge and a hosted HTTP scheduler for one daily callback — and what Infrai leaves you owning.</summary></entry><entry><title>Fire a cron job on demand to test the webhook chain before 3am</title><id>https://docs.infrai.cc/en/guides/cron/answers/my-new-cron-job-won-t-fire-until-3am-tomorrow-but-i-wa/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/my-new-cron-job-won-t-fire-until-3am-tomorrow-but-i-wa/"/><updated>2026-07-26T00:00:00Z</updated><summary>Infrai's trigger route runs a scheduled job now and returns the full execution record — status code, duration, your endpoint's response — without touching the schedule.</summary></entry><entry><title>Reminder cron fired at the wrong hour: timezone, missed runs, no backfill</title><id>https://docs.infrai.cc/en/guides/cron/answers/user-reminders-cron-expression-wrong-timezone-missed-ru/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/user-reminders-cron-expression-wrong-timezone-missed-ru/"/><updated>2026-07-26T00:00:00Z</updated><summary>Diagnosing a reminder schedule that runs at the wrong time or not at all — silent UTC fallback, DST, day-of-week OR day-of-month, and why a skipped minute never returns.</summary></entry><entry><title>Daily reminder fan-out: cron plans, the queue paces, the sender batches</title><id>https://docs.infrai.cc/en/guides/cron/answers/user-reminders-high-volume-daily-send-best-pattern-cron/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/user-reminders-high-volume-daily-send-best-pattern-cron/"/><updated>2026-07-26T00:00:00Z</updated><summary>Why one daily send job breaks at volume, and the three-stage shape that replaces it — with Infrai's measured delay ceiling, batch limits and the email-versus-SMS cost ratio.</summary></entry><entry><title>Overlapping cron runs: what skip, allow and queue actually do</title><id>https://docs.infrai.cc/en/guides/cron/answers/we-have-a-sync-job-on-a-5-minute-schedule-that-occasion/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/we-have-a-sync-job-on-a-5-minute-schedule-that-occasion/"/><updated>2026-07-26T00:00:00Z</updated><summary>A 5-minute sync that sometimes takes six will double-run unless something stops it. Measured behaviour of Infrai's three overlap policies, plus the handler guard.</summary></entry><entry><title>Why your daily email cron should enqueue jobs, not send them inline</title><id>https://docs.infrai.cc/en/guides/cron/answers/why-daily-scheduled-email-should-enqueue-jobs-instead-o/</id><link href="https://docs.infrai.cc/en/guides/cron/answers/why-daily-scheduled-email-should-enqueue-jobs-instead-o/"/><updated>2026-07-26T00:00:00Z</updated><summary>A cron handler that sends every email itself has one failure unit and no idempotency. Publish one message per recipient with a deterministic key instead.</summary></entry><entry><title>Campaign-lite onboarding: reusable templates plus a batch send</title><id>https://docs.infrai.cc/en/guides/email/answers/best-api-for-transactional-welcome-email-with-reusable/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-api-for-transactional-welcome-email-with-reusable/"/><updated>2026-07-26T00:00:00Z</updated><summary>Run a small onboarding sequence on a transactional email API — stored templates, 100-message batches, suppression preflight — and know where it stops.</summary></entry><entry><title>The best template approach for password-reset email in Node 22</title><id>https://docs.infrai.cc/en/guides/email/answers/best-email-template-approach-for-password-reset-transac/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-email-template-approach-for-password-reset-transac/"/><updated>2026-07-26T00:00:00Z</updated><summary>Compile reset-email HTML in your repo, store one template per locale on Infrai, and treat preview as a test — with the renderer's real limits shown.</summary></entry><entry><title>Choosing a transactional email API: an eight-check acceptance test</title><id>https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-deliverability-setup-s/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-deliverability-setup-s/"/><updated>2026-07-26T00:00:00Z</updated><summary>Eight free API calls that tell you whether a transactional email candidate can really do domain auth, suppression and delivery history for a US/EU SaaS.</summary></entry><entry><title>Picking a password-reset email API: retries, DKIM, US and EU</title><id>https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-password-reset-flow-no/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-password-reset-flow-no/"/><updated>2026-07-26T00:00:00Z</updated><summary>Four properties decide a reset-mail provider for a Node SaaS: sending before DNS, the domain-verify gate, retry duplication, and delivery evidence.</summary></entry><entry><title>Transactional email over HTTPS, not an SMTP relay, for a Node SaaS</title><id>https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-saas-email-deliverabil/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-saas-email-deliverabil/"/><updated>2026-07-26T00:00:00Z</updated><summary>The accept-then-report contract an HTTP email API gives you, why edge runtimes rule out SMTP, and the domain-auth, suppression and event-polling calls that follow.</summary></entry><entry><title>A SaaS welcome-email integration: four decisions, with defaults</title><id>https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-saas-welcome-emails-no/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-transactional-email-api-for-saas-welcome-emails-no/"/><updated>2026-07-26T00:00:00Z</updated><summary>Reference pattern for welcome mail on Node 22: retry-safe sends via an idempotency header, shared vs custom sender, stored copy, and the record you keep yourself.</summary></entry><entry><title>Rotating DKIM keys from Node 22: one API call, one DNS cutover</title><id>https://docs.infrai.cc/en/guides/email/answers/best-way-rotate-dkim-nodejs-email-domain-authentication/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-way-rotate-dkim-nodejs-email-domain-authentication/"/><updated>2026-07-26T00:00:00Z</updated><summary>A practical DKIM rotation runbook: mint the new key with one free call, publish the TXT record, poll until the check flips, and know where the overlap window isn't.</summary></entry><entry><title>SaaS alert emails: give them their own sending subdomain</title><id>https://docs.infrai.cc/en/guides/email/answers/best-way-to-build-saas-event-alert-emails-nodejs-custom/</id><link href="https://docs.infrai.cc/en/guides/email/answers/best-way-to-build-saas-event-alert-emails-nodejs-custom/"/><updated>2026-07-26T00:00:00Z</updated><summary>Build event-alert email for a Node SaaS: a dedicated alerts subdomain with DKIM, one stored template, and flood control that runs before the send.</summary></entry><entry><title>Bulk welcome mail after a user import: chunking, pacing and retries</title><id>https://docs.infrai.cc/en/guides/email/answers/bulk-welcome-email-after-user-import-nodejs-batch-send/</id><link href="https://docs.infrai.cc/en/guides/email/answers/bulk-welcome-email-after-user-import-nodejs-batch-send/"/><updated>2026-07-26T00:00:00Z</updated><summary>A Node 22 pattern for emailing thousands of imported users once and only once: a send ledger, a suppression pass, chunked batch requests and backoff on 429.</summary></entry><entry><title>Cheap deliverability for a startup: pick the sending subdomain first</title><id>https://docs.infrai.cc/en/guides/email/answers/cheap-simple-email-deliverability-api-for-startup-custo/</id><link href="https://docs.infrai.cc/en/guides/email/answers/cheap-simple-email-deliverability-api-for-startup-custo/"/><updated>2026-07-26T00:00:00Z</updated><summary>Verify a subdomain rather than your apex, keep transactional and marketing reputations apart, and run DKIM and suppression upkeep with free API calls.</summary></entry><entry><title>Cheapest password-reset email provider: you're buying a floor, not a rate</title><id>https://docs.infrai.cc/en/guides/email/answers/cheapest-easiest-password-reset-email-provider-alternat/</id><link href="https://docs.infrai.cc/en/guides/email/answers/cheapest-easiest-password-reset-email-provider-alternat/"/><updated>2026-07-26T00:00:00Z</updated><summary>Resend, Postmark, SendGrid and SES weighed for a low-volume reset mailbox in Node 22: monthly floors, approval gates, and the first send with no DNS at all.</summary></entry><entry><title>Cheapest welcome-email provider for an EU startup, per delivered message</title><id>https://docs.infrai.cc/en/guides/email/answers/cheapest-transactional-email-provider-2025-eu-startup-w/</id><link href="https://docs.infrai.cc/en/guides/email/answers/cheapest-transactional-email-provider-2025-eu-startup-w/"/><updated>2026-07-26T00:00:00Z</updated><summary>Postmark, Resend, Brevo and Mailgun weighed on billing shape and EU processing, plus a Python script that computes your true cost per delivered welcome email.</summary></entry><entry><title>Reset email deliverability is a per-user question, not a percentage</title><id>https://docs.infrai.cc/en/guides/email/answers/email-deliverability-for-password-reset-emails-best-pro/</id><link href="https://docs.infrai.cc/en/guides/email/answers/email-deliverability-for-password-reset-emails-best-pro/"/><updated>2026-07-26T00:00:00Z</updated><summary>Why password-reset mail goes missing: account-scoped suppression, accepted vs delivered, and dead addresses. A Python triage script over the Infrai email routes.</summary></entry><entry><title>Forgot-password backend in Node and Postgres that doesn't leak accounts</title><id>https://docs.infrai.cc/en/guides/email/answers/forgot-password-backend-nodejs-postgres-email-send-exam/</id><link href="https://docs.infrai.cc/en/guides/email/answers/forgot-password-backend-nodejs-postgres-email-send-exam/"/><updated>2026-07-26T00:00:00Z</updated><summary>Hashed single-use reset tokens in Postgres, an identical response for unknown addresses, a database-backed cooldown, an audit row per attempt, and the send call.</summary></entry><entry><title>Picking an email API for welcome mail: a five-question security review</title><id>https://docs.infrai.cc/en/guides/email/answers/how-to-choose-email-api-for-welcome-email-flow-custom-d/</id><link href="https://docs.infrai.cc/en/guides/email/answers/how-to-choose-email-api-for-welcome-email-flow-custom-d/"/><updated>2026-07-26T00:00:00Z</updated><summary>Evaluate a transactional email API without a webhook receiver: sender authority, DKIM records, suppression data, per-message region evidence, credential blast radius.</summary></entry><entry><title>One stored template per email: create, preview, patch, send in Node 22</title><id>https://docs.infrai.cc/en/guides/email/answers/how-to-create-transactional-email-templates-nodejs-prev/</id><link href="https://docs.infrai.cc/en/guides/email/answers/how-to-create-transactional-email-templates-nodejs-prev/"/><updated>2026-07-26T00:00:00Z</updated><summary>Store subject, HTML and a text part together so every transactional send renders alike: a Node 22 template registry, previews asserted in CI, copy fixes with no deploy.</summary></entry><entry><title>Polling transactional email delivery status from Node 22, with no webhooks</title><id>https://docs.infrai.cc/en/guides/email/answers/how-to-poll-transactional-email-delivery-status-nodejs/</id><link href="https://docs.infrai.cc/en/guides/email/answers/how-to-poll-transactional-email-delivery-status-nodejs/"/><updated>2026-07-26T00:00:00Z</updated><summary>Infrai has no push webhooks for email yet, so you poll. A cron worker, a sane backoff schedule, and the difference between the state read and the event timeline.</summary></entry><entry><title>Send an onboarding email 24 hours after signup, no scheduler of your own</title><id>https://docs.infrai.cc/en/guides/email/answers/i-want-to-send-an-onboarding-email-exactly-24-hours-aft/</id><link href="https://docs.infrai.cc/en/guides/email/answers/i-want-to-send-an-onboarding-email-exactly-24-hours-aft/"/><updated>2026-07-26T00:00:00Z</updated><summary>Yes, the email service can hold the message: scheduled_at on the send, a 24-hour queue delay, or a one-shot cron. What each costs you in precision and cancellability.</summary></entry><entry><title>MailerSend vs Amazon SES vs an aggregated API: a beginner's first send</title><id>https://docs.infrai.cc/en/guides/email/answers/mailersend-vs-amazon-ses-vs-simple-transactional-email/</id><link href="https://docs.infrai.cc/en/guides/email/answers/mailersend-vs-amazon-ses-vs-simple-transactional-email/"/><updated>2026-07-26T00:00:00Z</updated><summary>Counted by steps to the first welcome email from your own domain: a drag-and-drop ESP, raw AWS plumbing, or one key that also covers storage, cron and errors.</summary></entry><entry><title>Can a freshly deployed app send email with no domain and no DNS?</title><id>https://docs.infrai.cc/en/guides/email/answers/my-ai-generated-app-should-be-able-to-send-email-the-mo/</id><link href="https://docs.infrai.cc/en/guides/email/answers/my-ai-generated-app-should-be-able-to-send-email-the-mo/"/><updated>2026-07-26T00:00:00Z</updated><summary>Yes — one API key, one POST, and the platform stamps a sender for you. What the shared address gets you, and the exact point where you outgrow it.</summary></entry><entry><title>Welcome emails in Next.js: route handler, template, delivery poll</title><id>https://docs.infrai.cc/en/guides/email/answers/nextjs-nodejs-welcome-email-transactional-delivery-poll/</id><link href="https://docs.infrai.cc/en/guides/email/answers/nextjs-nodejs-welcome-email-transactional-delivery-poll/"/><updated>2026-07-26T00:00:00Z</updated><summary>Where the send belongs in an App Router codebase, how to keep it off the signup response path, and how to confirm delivery afterwards without a webhook.</summary></entry><entry><title>Bounces and complaints: mapping suppression reasons to a user row</title><id>https://docs.infrai.cc/en/guides/email/answers/nodejs-email-bounce-complaint-suppression-list-polling/</id><link href="https://docs.infrai.cc/en/guides/email/answers/nodejs-email-bounce-complaint-suppression-list-polling/"/><updated>2026-07-26T00:00:00Z</updated><summary>Seven suppression reasons, what each one should do to your users table, and a Node 22 reconciliation job that keeps both sides of the truth in sync.</summary></entry><entry><title>A delivery dashboard from polled events: sent, delivered, bounced</title><id>https://docs.infrai.cc/en/guides/email/answers/nodejs-transactional-email-deliverability-dashboard-pol/</id><link href="https://docs.infrai.cc/en/guides/email/answers/nodejs-transactional-email-deliverability-dashboard-pol/"/><updated>2026-07-26T00:00:00Z</updated><summary>Collect per-message email events into your own store with Node 22, then compute delivery rate, bounce rate and time-to-delivered for a small SaaS dashboard.</summary></entry><entry><title>A Node welcome-email module: stored template plus a DKIM preflight</title><id>https://docs.infrai.cc/en/guides/email/answers/nodejs-transactional-welcome-email-api-custom-domain-dk/</id><link href="https://docs.infrai.cc/en/guides/email/answers/nodejs-transactional-welcome-email-api-custom-domain-dk/"/><updated>2026-07-26T00:00:00Z</updated><summary>Keep the copy in the API, render it before a user sees it, and refuse to send when the sender domain's DKIM check isn't green. Runnable Node 22, with the honest paywall.</summary></entry><entry><title>Launch day on a brand-new sending domain: read the cap, don't blast</title><id>https://docs.infrai.cc/en/guides/email/answers/our-brand-new-domain-needs-to-send-tens-of-thousands-of/</id><link href="https://docs.infrai.cc/en/guides/email/answers/our-brand-new-domain-needs-to-send-tens-of-thousands-of/"/><updated>2026-07-26T00:00:00Z</updated><summary>A fresh domain has no reputation and a throttled daily cap. What a 40,000-message blast really does, and a ramp planner that reads the live numbers first.</summary></entry><entry><title>Notification emails in English, Spanish and German without template chaos</title><id>https://docs.infrai.cc/en/guides/email/answers/our-product-sends-notification-emails-in-english-spani/</id><link href="https://docs.infrai.cc/en/guides/email/answers/our-product-sends-notification-emails-in-english-spani/"/><updated>2026-07-26T00:00:00Z</updated><summary>One stored template per locale, a naming scheme your code can compute, and a preview pass that fails CI when a translation drops a variable.</summary></entry><entry><title>Password reset email rejected: invalid from domain and unverified DKIM</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-400-bad-request-invalid-from-domai/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-400-bad-request-invalid-from-domai/"/><updated>2026-07-26T00:00:00Z</updated><summary>A reset send refused for its sender address is a DNS problem, not a code problem. How to read the error, check SPF/DKIM/DMARC, and preflight in Node 22.</summary></entry><entry><title>429 on password-reset sends: backoff, idempotency and the cap you can read</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-api-429-rate-limit-retry-backoff-i/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-api-429-rate-limit-retry-backoff-i/"/><updated>2026-07-26T00:00:00Z</updated><summary>Two different problems wear the same 429 costume. How to retry a reset email safely in Node 22, deduplicate sends, and read the daily cap before you hit it.</summary></entry><entry><title>Reset email never arrived? Check the suppression list before anything else</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-bounced-suppressed-recipient-not-r/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-bounced-suppressed-recipient-not-r/"/><updated>2026-07-26T00:00:00Z</updated><summary>A send can succeed and deliver nothing. How to read suppressed_recipients, diagnose why an address was blocked, and decide whether removing it is safe.</summary></entry><entry><title>Password reset email: arriving in 60 seconds, and not burning the token</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-deliverability-setup-custom-domain/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-deliverability-setup-custom-domain/"/><updated>2026-07-26T00:00:00Z</updated><summary>Reset mail is the message with a deadline. Sender setup, why scanners consume single-use links, warm-up caps during a forced reset, and a Node 22 handler.</summary></entry><entry><title>Two reset emails from one click: retry-safe sends after a timeout</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-duplicate-sends-retry-after-timeou/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-duplicate-sends-retry-after-timeou/"/><updated>2026-07-26T00:00:00Z</updated><summary>A timeout on a password-reset send doesn't mean the mail never left. The token-as-ledger pattern, the reconciliation read, and what idempotency_key actually does today.</summary></entry><entry><title>Missing template variables in a reset email: what preview can't catch</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-malformed-template-variables-missi/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-malformed-template-variables-missi/"/><updated>2026-07-26T00:00:00Z</updated><summary>missing_vars comes from the stored copy, not your declared variables — so a deleted sentence previews clean and mails a reset with no link. The two-way test that catches it.</summary></entry><entry><title>A password reset email in Node 22: token handling, DKIM, templates</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-nodejs-example-transactional-email/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-nodejs-example-transactional-email/"/><updated>2026-07-26T00:00:00Z</updated><summary>Where a reset token is allowed to exist, why the response must not reveal whether an account exists, and the exact Infrai calls that send and confirm the mail.</summary></entry><entry><title>Password reset template: dark mode, plain text and an a11y checklist</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-template-html-text-accessibility-d/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-template-html-text-accessibility-d/"/><updated>2026-07-26T00:00:00Z</updated><summary>Markup that survives real mail clients, a plain-text part that isn't generated for you, and a preview call you can assert on in CI instead of eyeballing screenshots.</summary></entry><entry><title>Reset email request hangs in Node: timeout budgets and diagnosis</title><id>https://docs.infrai.cc/en/guides/email/answers/password-reset-email-timeout-api-request-hanging-nodejs/</id><link href="https://docs.infrai.cc/en/guides/email/answers/password-reset-email-timeout-api-request-hanging-nodejs/"/><updated>2026-07-26T00:00:00Z</updated><summary>Node's fetch waits minutes before giving up. Set a deadline with AbortSignal, split the timeout budget across layers, and tell a slow API apart from a slow mailbox.</summary></entry><entry><title>Passwordless signup: one magic-link email that also does the welcome</title><id>https://docs.infrai.cc/en/guides/email/answers/passwordless-welcome-plus-verify-email-link-transaction/</id><link href="https://docs.infrai.cc/en/guides/email/answers/passwordless-welcome-plus-verify-email-link-transaction/"/><updated>2026-07-26T00:00:00Z</updated><summary>Fold address verification and the welcome into a single message: stored template variables, a 15-minute single-use token in Node 22, and delivery you can audit.</summary></entry><entry><title>Postmark, Resend or Mailgun for an EU SaaS: residency, price shape, one key</title><id>https://docs.infrai.cc/en/guides/email/answers/postmark-vs-resend-vs-mailgun-vs-simple-email-api-cheap/</id><link href="https://docs.infrai.cc/en/guides/email/answers/postmark-vs-resend-vs-mailgun-vs-simple-email-api-cheap/"/><updated>2026-07-26T00:00:00Z</updated><summary>How the three compare on processing region, sub-processors and billing shape for a small EU SaaS, plus a Python send-and-record loop on Infrai's email API.</summary></entry><entry><title>SendGrid alternatives for developers: what the switch changes in code</title><id>https://docs.infrai.cc/en/guides/email/answers/sendgrid-alternatives-cheapest-transactional-email-api/</id><link href="https://docs.infrai.cc/en/guides/email/answers/sendgrid-alternatives-cheapest-transactional-email-api/"/><updated>2026-07-26T00:00:00Z</updated><summary>Leaving SendGrid is a billing decision and a payload swap, not a rewrite. The migration diff, an API-first sender in Node 22, and how to compare meters against plans.</summary></entry><entry><title>SendGrid vs Resend vs Postmark, and the aggregator option</title><id>https://docs.infrai.cc/en/guides/email/answers/sendgrid-vs-resend-vs-postmark-alternative-transactiona/</id><link href="https://docs.infrai.cc/en/guides/email/answers/sendgrid-vs-resend-vs-postmark-alternative-transactiona/"/><updated>2026-07-26T00:00:00Z</updated><summary>A Node-first comparison of three transactional email APIs on template storage, domain verification and delivery evidence, plus where an aggregator fits.</summary></entry><entry><title>Simplest transactional email for an EU/US startup: count the moving parts</title><id>https://docs.infrai.cc/en/guides/email/answers/simplest-email-deliverability-service-choice-startup-eu/</id><link href="https://docs.infrai.cc/en/guides/email/answers/simplest-email-deliverability-service-choice-startup-eu/"/><updated>2026-07-26T00:00:00Z</updated><summary>Judge providers by how much machinery you end up running: a moving-parts scorecard, what each bounce type should do to a user row, and a one-file polling layer.</summary></entry><entry><title>SPF, DKIM and DMARC for a Node transactional sender</title><id>https://docs.infrai.cc/en/guides/email/answers/transactional-email-deliverability-setup-nodejs-domain/</id><link href="https://docs.infrai.cc/en/guides/email/answers/transactional-email-deliverability-setup-nodejs-domain/"/><updated>2026-07-26T00:00:00Z</updated><summary>What each of the four DNS records does, what breaks when it's missing, and a Node 22 script that reconciles published DNS against what the sending API expects.</summary></entry><entry><title>Welcome-email deliverability without SMTP: verify, then read the ramp</title><id>https://docs.infrai.cc/en/guides/email/answers/transactional-email-service-for-welcome-emails-delivera/</id><link href="https://docs.infrai.cc/en/guides/email/answers/transactional-email-service-for-welcome-emails-delivera/"/><updated>2026-07-26T00:00:00Z</updated><summary>An API-first setup for welcome mail: the three sender states, the DNS checks map, and the warm-up cap you can query instead of guessing at.</summary></entry><entry><title>Welcome email setup in Node: shared sender first, custom domain second</title><id>https://docs.infrai.cc/en/guides/email/answers/transactional-welcome-email-setup-nodejs-api-custom-dom/</id><link href="https://docs.infrai.cc/en/guides/email/answers/transactional-welcome-email-setup-nodejs-api-custom-dom/"/><updated>2026-07-26T00:00:00Z</updated><summary>The order of operations for transactional welcome mail — send on day one, read the SPF and DKIM records the API returns, and know what a custom sender domain costs.</summary></entry><entry><title>Syncing delivered and opened status into Salesforce: a capability checklist</title><id>https://docs.infrai.cc/en/guides/email/answers/we-need-delivered-opened-status-for-every-email-synced/</id><link href="https://docs.infrai.cc/en/guides/email/answers/we-need-delivered-opened-status-for-every-email-synced/"/><updated>2026-07-26T00:00:00Z</updated><summary>Five things an email API has to expose before CRM sync is buildable: a durable id, a typed event feed, an idempotency key, enumeration, and open tracking.</summary></entry><entry><title>Self-serve sender domains for multi-tenant SaaS: the state machine and the gaps</title><id>https://docs.infrai.cc/en/guides/email/answers/we-re-a-multi-tenant-saas-and-customers-want-their-noti/</id><link href="https://docs.infrai.cc/en/guides/email/answers/we-re-a-multi-tenant-saas-and-customers-want-their-noti/"/><updated>2026-07-26T00:00:00Z</updated><summary>Let customers send notifications from their own domain: the register-poll-verify loop, per-record DNS checks in your UI, and the two gaps you have to close yourself.</summary></entry><entry><title>Designing a signup verification email pipeline people don't complain about</title><id>https://docs.infrai.cc/en/guides/email/answers/we-re-launching-a-saas-that-sends-signup-verification-e/</id><link href="https://docs.infrai.cc/en/guides/email/answers/we-re-launching-a-saas-that-sends-signup-verification-e/"/><updated>2026-07-26T00:00:00Z</updated><summary>Most missing-code tickets are decided before the send call runs. Address capture, honest UI copy, a resend cooldown, and a 503 that is really a 400.</summary></entry><entry><title>Choosing an email service for resets and welcomes: six API tests</title><id>https://docs.infrai.cc/en/guides/email/answers/which-email-service-is-best-for-password-reset-and-welc/</id><link href="https://docs.infrai.cc/en/guides/email/answers/which-email-service-is-best-for-password-reset-and-welc/"/><updated>2026-07-26T00:00:00Z</updated><summary>Reset mail and welcome mail want different things from a provider. Six checks you can run against any API-first vendor in an afternoon, with the Infrai calls that answer them.</summary></entry><entry><title>Why OTP email belongs on an HTTPS API rather than an SMTP relay</title><id>https://docs.infrai.cc/en/guides/email/answers/why-not-use-smtp-relay-for-otp-email-or-mixed-provider/</id><link href="https://docs.infrai.cc/en/guides/email/answers/why-not-use-smtp-relay-for-otp-email-or-mixed-provider/"/><updated>2026-07-26T00:00:00Z</updated><summary>A relay accepts your one-time code and tells you almost nothing. What an API returns instead, and what a second provider for auth mail really costs you.</summary></entry><entry><title>Cron jobs, workers and the failures that never throw an exception</title><id>https://docs.infrai.cc/en/guides/errors/answers/best-backend-error-tracking-for-cron-jobs-workers-and-w/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/best-backend-error-tracking-for-cron-jobs-workers-and-w/"/><updated>2026-07-26T00:00:00Z</updated><summary>Background work fails three ways: it throws, it finishes wrong, or it never runs. How to record each with Infrai's errors API, plus a watchdog for the runs that never happened.</summary></entry><entry><title>Poll-based error alerting for Node: cron, Slack and a watermark</title><id>https://docs.infrai.cc/en/guides/errors/answers/best-simple-error-alerting-api-for-nodejs-saas-2025-pol/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/best-simple-error-alerting-api-for-nodejs-saas-2025-pol/"/><updated>2026-07-26T00:00:00Z</updated><summary>A five-minute cron that queries Infrai's error groups, keeps a watermark so it won't repeat itself, and posts to a Slack webhook — with the filter quirks we measured.</summary></entry><entry><title>Error tracking for a small Node SaaS: capture exceptions without an SDK</title><id>https://docs.infrai.cc/en/guides/errors/answers/best-simple-error-tracking-api-for-small-saas-nodejs-20/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/best-simple-error-tracking-api-for-small-saas-nodejs-20/"/><updated>2026-07-26T00:00:00Z</updated><summary>A one-file Express integration on Node 22 — process handlers, fingerprints that survive restarts, sampling, and honest cost math against Sentry and Rollbar.</summary></entry><entry><title>A simple SaaS reliability dashboard in Node, built from the errors API</title><id>https://docs.infrai.cc/en/guides/errors/answers/best-simple-metrics-dashboard-api-for-saas-app-nodejs-2/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/best-simple-metrics-dashboard-api-for-saas-app-nodejs-2/"/><updated>2026-07-26T00:00:00Z</updated><summary>The failure feed of a small dashboard, straight from Infrai's error groups in Node 22 — plus where product events, retention and latency belong, and when Grafana Cloud wins.</summary></entry><entry><title>Errors, logs and metrics: the minimum failure-alert stack that works</title><id>https://docs.infrai.cc/en/guides/errors/answers/best-simplest-failure-alert-stack-small-saas-2025-error/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/best-simplest-failure-alert-stack-small-saas-2025-error/"/><updated>2026-07-26T00:00:00Z</updated><summary>A two-person SaaS doesn't need three observability signals. Which failures belong in an error store, which need real logs, and a cron that mails you the daily digest.</summary></entry><entry><title>API-only error monitoring: no session replay, no tracing, no agent</title><id>https://docs.infrai.cc/en/guides/errors/answers/cheap-error-monitoring-for-us-eu-startup-api-only-no-se/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/cheap-error-monitoring-for-us-eu-startup-api-only-no-se/"/><updated>2026-07-26T00:00:00Z</updated><summary>What a small US or EU team gives up by dropping replay and tracing, what a metered exception store costs instead, and a Python 3 integration you can finish today.</summary></entry><entry><title>Tracking failed health checks in Node: timeouts, ECONNREFUSED and DNS</title><id>https://docs.infrai.cc/en/guides/errors/answers/error-tracking-for-failed-health-endpoint-checks-nodejs/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/error-tracking-for-failed-health-endpoint-checks-nodejs/"/><updated>2026-07-26T00:00:00Z</updated><summary>Classify fetch failures from a Node 22 health prober into stable fingerprints, ship them to Infrai's capture route, then search and close the groups.</summary></entry><entry><title>Grouping, fingerprints, releases: error tracking terms explained</title><id>https://docs.infrai.cc/en/guides/errors/answers/error-tracking-for-saas-app-what-is-error-grouping-fing/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/error-tracking-for-saas-app-what-is-error-grouping-fing/"/><updated>2026-07-26T00:00:00Z</updated><summary>What an event, a fingerprint, a group, an environment and a release actually are for a SaaS backend — shown against real responses from Infrai's error API.</summary></entry><entry><title>Slack now, email at 08:00: routing alerts from one error poller</title><id>https://docs.infrai.cc/en/guides/errors/answers/error-tracking-slack-email-alerts-polling-api-example-r/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/error-tracking-slack-email-alerts-polling-api-example-r/"/><updated>2026-07-26T00:00:00Z</updated><summary>Two channels answer two different questions. A Node poller that pings Slack for newly opened error groups and mails a morning digest of everything still unresolved.</summary></entry><entry><title>Alerting on repeats in Express: count deltas and resolve as your ack</title><id>https://docs.infrai.cc/en/guides/errors/answers/express-nodejs-capture-server-exceptions-then-alert-on/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/express-nodejs-capture-server-exceptions-then-alert-on/"/><updated>2026-07-26T00:00:00Z</updated><summary>Capture server exceptions from one Express handler, then poll for the two kinds of repetition that matter — a group still climbing, and a resolved group that came back.</summary></entry><entry><title>Feature flag toggles, retries and duplicate writes: making rollouts idempotent</title><id>https://docs.infrai.cc/en/guides/errors/answers/feature-flag-retries-duplicate-writes-idempotency-toggl/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/feature-flag-retries-duplicate-writes-idempotency-toggl/"/><updated>2026-07-26T00:00:00Z</updated><summary>Why absolute-state toggle and rollout calls survive retries, which failures are worth retrying, and how to record duplicate-write incidents on Infrai's errors API.</summary></entry><entry><title>Choosing an error tracker for an Express API in Europe: seven questions</title><id>https://docs.infrai.cc/en/guides/errors/answers/how-to-choose-error-tracking-service-for-express-api-si/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/how-to-choose-error-tracking-service-for-express-api-si/"/><updated>2026-07-26T00:00:00Z</updated><summary>A vendor-neutral checklist for Express teams — grouping control, search, stack-trace fidelity, GDPR duties — plus a 15-minute harness that scores any candidate.</summary></entry><entry><title>NestJS error tracking: the filter only covers a third of your app</title><id>https://docs.infrai.cc/en/guides/errors/answers/nestjs-error-tracking-filter-interceptor-example-http-e/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/nestjs-error-tracking-filter-interceptor-example-http-e/"/><updated>2026-07-26T00:00:00Z</updated><summary>A global exception filter never sees @Cron jobs or BullMQ processors. An injectable reporter, one filter, and explicit capture in the contexts Nest leaves uncovered.</summary></entry><entry><title>Capturing Next.js route handler and Server Action errors by digest</title><id>https://docs.infrai.cc/en/guides/errors/answers/nextjs-api-routes-server-actions-error-tracking-integra/</id><link href="https://docs.infrai.cc/en/guides/errors/answers/nextjs-api-routes-server-actions-error-tracking-integra/"/><updated>2026-07-26T00:00:00Z</updated><summary>One instrumentation hook covers route handlers, Server Actions and RSC renders. Wire it to a capture API, keep the digest, and know what Edge and source maps cost you.</summary></entry></feed>