Dawnline
Your inbox, triaged to zero each morning. Sign in to see what matters.
Enter the 8-digit code we emailed you
Private to your account. Email data is protected by row-level security and never shown to anyone else.
Your inbox, triaged to zero each morning. Sign in to see what matters.
Enter the 8-digit code we emailed you
Private to your account. Email data is protected by row-level security and never shown to anyone else.
Loading...
Nightfall is the original dark theme, tuned for reading a briefing first thing in the morning without a screen full of white.
Daybreak is the light theme, built to the same contrast floor rather than as an afterthought. Every colour in it is checked against WCAG AA by a script, not by eye.
Match system follows your phone or laptop, including its automatic day/night schedule.
Critical stays in your Gmail inbox. Money, deadlines, anything with a consequence for ignoring it.
Must read is labelled and archived out of the inbox. Worth your attention today, but nothing breaks if it waits.
Read later is labelled and archived too. It stays visible here for 30 days, then drops out of view. Nothing is deleted, it stays filed in Gmail.
Once a day a scheduled job reads the last 90 days of inbox mail, categorises only what it has not seen before, files it in Gmail, and updates this briefing. Junk goes to Trash, which is reversible.
The first categorisation of a thread is final. A later run can never overwrite it with something blander, which is why an item keeps its amount and deadline once it has one.
Ticking an item Done here tells the next run to archive it out of the inbox, which is how the inbox gets back to zero. The mail stays in Gmail under its label.
Delete is the other choice on the same card, and it is the one for mail you are finished with that should not stay filed. It tells the next run to move that thread to Gmail Trash instead of archiving it. Trash is reversible: Gmail keeps it for 30 days, and nothing in this app is able to permanently delete anything. Until the run happens you can undo it here.
The app caches its own shell so it opens instantly and still shows something useful with no signal. Your mail is never cached. It is fetched live each time and lives only on the server, so an offline open shows the app and an honest "cannot reach your briefing" rather than stale email.
The only things stored on this device are your sign-in session, your theme choice, and which sections you keep open on the All tab.
Resets the appearance setting to match your system. This deliberately leaves your sign-in alone, so it will not log you out.
This is a private app with exactly one user. Your briefing is protected by row-level security on the database: every row is bound to your email address, and a request signed as anyone else returns nothing.
The app can only ever read your items. It cannot create, edit or delete them. Ticking something Done goes through a single narrow function that is allowed to change one field and nothing else.
The key embedded in this page is a public one by design. On its own it grants no access to anything, because the row-level rules are what actually decide what you can see.
Your mail is never written to this device's storage, and never leaves the pipeline between Gmail, the scheduled job and your briefing.
Why did the briefing arrive mid-day?
The job runs on a desktop schedule and only fires while that machine is awake, so it catches up later if the machine was asleep at the scheduled time.
What is the difference between Done and Delete?
Done archives the thread out of your inbox and leaves it filed in Gmail. Delete moves it to Gmail Trash, where Gmail keeps it for 30 days. Both take effect on the next daily run, and a Delete can be undone here until that run carries it out.
Something disappeared from Read later.
Read later only shows the last 30 days. Older items are still filed in Gmail under their label, they are just kept out of view so they cannot bury what actually needs you.
Install it on your phone.
Open the app in your browser and choose Add to Home Screen. It then opens full screen with no browser chrome.
The installed app asked me to sign in again.
An installed app keeps its own separate storage from the browser. Sign in from inside the installed app using the emailed code. A sign-in link opens the browser instead, which is a different jar and will not carry over.
Open in Gmail did nothing useful.
It searches Gmail for that exact thread rather than deep-linking, which is the only approach that works reliably across phone and desktop.
Dawnline clears your inbox to zero every morning and shows you what is left that actually matters, sorted by whether it needs you now, today, or eventually.
It is two halves that do not depend on each other: a scheduled job that reads and files your mail, and this app, which only ever displays the result. If the app broke tomorrow your inbox would still be triaged.
Built for Bassem. Not a product, not for sale, no accounts but yours.