shadcn.io is not affiliated with official shadcn/ui
Email Queue Todo List Block for Solid
A campaign queue in Draft, Scheduled and Sent tabs with counts, a popover of fixed send slots, a confirmed Send now with Undo, and a facts panel worked out from the rows.
Installation
Overview
Plan which emails go out and when, with this campaign queue block for Solid with Ark UI. Tabs switch between Draft, Scheduled and Sent, each with its count. Every row shows the subject, how many people it goes to, a label Badge and either "No opens yet" or a typed open rate. "Schedule" (or "Reschedule") opens a Popover of four fixed send slots and moves the campaign to Scheduled; "Send now" asks in an Alert Dialog first ("Marks it sent here; nothing is emailed.") and moves it to Sent. A one-line Undo in the foot puts the last move back. The campaign facts at the end of the frame (what is waiting, the next send, how many went out, the average open rate) are worked out from the rows. The list keeps its height, with an Empty state for a tab with nothing in it. Guides rule the bands. For newsletters, lifecycle email and any queue of things to send.
FAQ
Where do the send slots come from?
They are four typed entries in SLOTS, each with an ISO time and a label. Picking one moves the campaign to Scheduled with that slot, and the next-send fact is the earliest booked slot. Replace the list with your sending windows.
What does Send now do?
It opens an alert dialog with focus on "Keep it queued". Confirming moves the email to Sent here and says nothing was emailed; no message leaves the page.
Are the campaign facts typed?
No, they are derived: the counts and recipients come from the rows in each tab, the next send is the earliest booked slot, and the average open rate is the mean of the sent emails' typed rates. Only the rates themselves are sample figures.
What stays local, and how do I wire it for real?
Everything lives in the page and resets on reload. Call your mail service from schedule and confirm, and read open rates from its reports instead of the typed opens field.