Daybookdemo

At a glance

    To-do

    Needs your attention

    Spotlight

    Dated

    Overdue, for reference

    LinkedIn messages ready to send yourself. Tap Copy, open the profile, check the thread is empty, send, then mark it sent.

    On hold (no role matched)

    Your tutoring leads, grouped by where they stand. Tap a status to move a lead. Bark unlocks cost credits, so nothing is unlocked for you.

    Try it: in the real app, Gemini emails new leads and they land here within minutes, tagged "just in".
    Add a lead

    Notes are saved on this phone. Claude, Gemini and Boardy can't open this page, so tap Email to send a note to your inbox (where they read it), or Copy and paste it into a chat.

    Notes for Claude

    Notes for Gemini

    Notes for Boardy

    Today's updates

    Settings

    Email address (this phone only)

    About Daybook

    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 vaultJob tracker, outreach drafts and diaries (Markdown, Obsidian)
    a scheduled Claude task reads it
    Email BriefEmails me the morning brief and writes today's numbers as JSON
    every 30 min, 8:00 to 14:30
    refresh-daybook.mjsRebuilds jobs, messages and Today; filters and sorts; checks what changed
    POST /api/data
    Daybook APINetlify Functions + Blobs. No redeploy needed for new data
    loaded when the app opens
    This appToday, Jobs, Messages, Tutoring, Updates

    All day: taps and live updates

    Tap Applied, Skip, Sent or DoneSaved on the phone, then sent to /api/state (newest write wins)
    next refresh
    Daybook-Ticks.md in the vaultTomorrow's brief treats my taps as my word and drops finished items
    meanwhile
    Gemini finds a tutoring leadEmails a JSON block with subject "Daybook lead"
    Apps Script checks Gmail every 5 min
    /api/leadsShows in Tutoring as "just in"
    and
    TickTickTo-dos sync both ways through OAuth: add here, tick here, done there

    Tour the tabs

    Today

    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 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

    LinkedIn messages drafted for me. I copy, send them myself, and mark them sent. Nothing is ever sent automatically.

    Tutoring

    Leads for my tutoring side business, moved between New, Contacted, Students and Closed, with notes. Try "Simulate a Gemini lead email" there.

    Updates

    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 JSNetlify FunctionsNetlify BlobsNode.js scriptsWindows Task SchedulerTickTick Open API (OAuth)Google Apps ScriptScriptable (iOS)Claude scheduled tasksGeminiPWA / 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.