Daybook is the phone app I built to run my day. Each morning an AI-written brief turns my notes into a short list I can tick off with a thumb: jobs to apply to, LinkedIn messages to send, tutoring leads and to-dos.
This is a working copy of the real app with made-up sample data . Every company, person and lead is fictional. Your taps are saved in this browser only.
What happens each day
Morning: data in
Notes vault Job tracker, outreach drafts and diaries (Markdown, Obsidian)
a scheduled Claude task reads it
Email Brief Emails me the morning brief and writes today's numbers as JSON
every 30 min, 8:00 to 14:30
refresh-daybook.mjs Rebuilds jobs, messages and Today; filters and sorts; checks what changed
POST /api/data
Daybook API Netlify Functions + Blobs. No redeploy needed for new data
loaded when the app opens
This app Today, Jobs, Messages, Tutoring, Updates
All day: taps and live updates
Tap Applied, Skip, Sent or Done Saved on the phone, then sent to /api/state (newest write wins)
next refresh
Daybook-Ticks.md in the vault Tomorrow's brief treats my taps as my word and drops finished items
meanwhile
Gemini finds a tutoring lead Emails a JSON block with subject "Daybook lead"
Apps Script checks Gmail every 5 min
/api/leads Shows in Tutoring as "just in"
and
TickTick To-dos sync both ways through OAuth: add here, tick here, done there
Tour the tabs
Today Open
Key numbers (tap one to jump to its tab), an "At a glance" summary, to-dos synced with TickTick, items that need attention with Done ticks, top roles, dates and overdue items.
Jobs Open
Open roles, grouped: almost done or closing soon, new in the last two days, then the rest by match score. Search, filter, and mark Applied or Skip.
Messages Open
LinkedIn messages drafted for me. I copy, send them myself, and mark them sent. Nothing is ever sent automatically.
Tutoring Open
Leads for my tutoring side business, moved between New, Contacted, Students and Closed, with notes. Try "Simulate a Gemini lead email" there.
Updates Open
Notes I leave for my AI helpers (sent by email or share sheet), and the day's reports from each automation.
Home-screen widget
A Scriptable widget on the iPhone home screen reads /api/widget: today's key numbers, TickTick tasks due or overdue, and the next dates. The sample script is in widget/ in the repo.
In this demo
Real: the page itself. It is the production code, a single HTML file with no framework and no build step.
Simulated: TickTick (a pretend account in memory), tap sync (stays in this browser), live leads (the button in Tutoring) and the widget (preview above).
Left out: my notes, contacts, leads and keys. The backend code in the repo reads every secret from environment variables.
Built with
HTML, CSS, vanilla JS Netlify Functions Netlify Blobs Node.js scripts Windows Task Scheduler TickTick Open API (OAuth) Google Apps Script Scriptable (iOS) Claude scheduled tasks Gemini PWA / Add to Home Screen
Design choices: works one-handed (44px+ tap targets, bottom tabs), light and dark mode, loads instantly from the copy built into the page and then swaps in fresher data, and falls back to a list on the phone when the API can't be reached. The real site sits behind a login; the API checks a key on every request and an OAuth state value on the TickTick callback.
Explore the demo