SaaS onboarding emails
A Next.js app that queues a welcome email at sign-up and a follow-up three days later with runAt.
- Jobs
- Delayed jobs
- Emails
Examples
9 example apps built with Halyard, from a single delayed email to idempotent billing. Each one runs locally with a test key in under five minutes.
9 examples
A Next.js app that queues a welcome email at sign-up and a follow-up three days later with runAt.
Direct-to-storage uploads, a media queue with sharp workers and a live progress bar.
One order.paid event delivered to receipts, inventory and a webhook, each with its own retries.
A schedule at 02:00 Europe/Berlin that writes a CSV, uploads it and emails a signed link.
Monthly renewals in Django with idempotency keys, upserts and payment calls keyed on job.id.
A Rails app that moved six crontab lines to paused Halyard schedules and switched them over one by one.
Receive Halyard webhooks, verify Halyard-Signature and forward events to an internal queue.
Keep a partner's 100 requests per minute limit with a queue rate limit and batched jobs.
Long-running transcription jobs with checkpoints, timeouts and a dead-letter review page.
Starter templates
create-halyard-app scaffolds an app, a worker process and an .env.example. Pick the template that matches your stack.
npx create-halyard-app@latest --template nextjs--template nextjsApp Router, route handlers, worker in the same repo--template expressMinimal API plus a separate worker process--template fastapiAsync endpoints and a Halyard worker with uvicorn--template djangoManagement command worker and admin integration--template gonet/http server and a worker binary--template railsActive Job adapter backed by Halyard$ npx create-halyard-app@latest --template nextjs✔ Project name … order-desk✔ Copied template nextjs (App Router, worker, .env.example)✔ Installed dependencies with npm Next steps: cd order-desk cp .env.example .env.local # add your hy_test_ key npm run dev # app on :3000, worker in the same terminalEvery template ships with the same three jobs (a delayed email, a scheduled cleanup and an event handler), so you can see each pattern working before you change anything.