# I use the task notes extension in obsidian. I would like you to make me a lightweight desktop app...
## Retrieval Notes
- Session id: `cebb4e14-f829-46b8-9c0e-4685fc52f20f`
- Last activity: `2026-06-11T17:47:41.605Z`
- Files touched: `5`
## Artifacts
**Created:**
- `/Users/nickyoung/Documents/Ordina/app/server.js`
- `/Users/nickyoung/Documents/Ordina/app/index.html`
- `/Users/nickyoung/.claude/launch.json`
- `/Users/nickyoung/Documents/Ordina/native/main.swift`
- `/Users/nickyoung/Documents/Ordina/README.md`
## My Notes
<!-- Add your notes here. This section is preserved across syncs. -->
## Conversation
### User
I use the task notes extension in obsidian. I would like you to make me a lightweight desktop app that runs on the markdownfiles that tasknotes uses in obsidian but can be opened separately from obsidian. I would like to have cutting edge elegeant graphic design –choose some 2020s typefaces (or type face). It would be very light weight, and i would not need a calendar view but would like to be able to organise things by tags and dates and deadlines. (fyi inter is not a cutting edge typeface, it is a cliche, don't fall into other cheesey traps)
### Assistant
I'll build this for you. First let me look at how TaskNotes stores its data in your vault, and what tooling is available on your machine for a lightweight desktop wrapper.
### Assistant
Now the interface — single HTML file with the full design system:
### Assistant
The server parses all 70 task files correctly. Let me verify the write path safely — create a test task via the API, mutate it, inspect the file, then remove it:
### Assistant
Binary compiled — 87 KB. Now assembling the `.app` bundle with an icon and the web app inside:
### Assistant
Bundle assembled and signed. Let me stop the preview server so the app spawns its own, then launch it:
### Assistant
Done — Ordina is built, running, and verified against your real tasks. It's open on your screen now, and you can relaunch it any time from `~/Applications/Ordina.app` (Spotlight: "Ordina"), entirely independent of Obsidian.
What it is:
- A native macOS app (an 87 KB compiled Swift window — no Electron) that runs a tiny dependency-free Node server reading and writing the markdown in `TaskNotes/Tasks/` directly. Edits touch only the changed frontmatter keys, so TaskNotes sees perfectly compatible files; I verified create/update/complete round-trips on a throwaway task before letting it near your real ones.
- Three ways to organise: Agenda (Overdue / Today / Tomorrow / This week / Later / No date, by due-or-scheduled date), Deadlines (strictly by deadline), and Tags. Tag chips filter any view. No calendar.
- Interactions: click a status dot to cycle open → in-progress → done (writes `completedDate` as TaskNotes does); hover a row to edit due/scheduled dates inline or jump to the note in Obsidian; a quick-add bar (`Title #tag !high due:2026-06-15`); search; a collapsed done list. It live-reloads when files change, so it stays in sync if Obsidian edits a task while it's open.
- Type: Instrument Serif italic for the masthead and section heads, Instrument Sans for task text, Fragment Mono for dates, tags, and counts — all 2022–23 releases, bundled locally so it works offline. Warm paper palette in light mode, warm ink in dark, following the system setting.
Source and a rebuild recipe live in [README.md](Documents/Ordina/README.md), with the server at [server.js](Documents/Ordina/app/server.js), UI at [index.html](Documents/Ordina/app/index.html), and wrapper at [main.swift](Documents/Ordina/native/main.swift).
One caveat: tasks are matched by the `#task` tag per your plugin config, and archived ones are hidden. If you ever change TaskNotes' field mapping or statuses, the server's parsing would need a matching tweak.
*Ogni scadenza sembra meno minacciosa quando è composta in un corsivo elegante.*
### User
looking pretty damn impressive btw, but could you also give me a dark mode and a few options with the typeface.
are there any other subtle little bells and whistles you think iw ould find useful? if so add them. but the point is is should be pretty simple, something that sits in the background and updates and i can bring to the front when every i need to
### Assistant
Good brief: a manual dark/light toggle, selectable type, a couple of quiet refinements, and proper background behavior (keeps running when you close the window, updates itself, comes forward when summoned). Here's what I'll add:
1. Theme control: auto / light / dark, in a small "Aa" settings popover.
2. Four type options, each a real 2020s cut: Instrument (current), Fraunces, Newsreader (all-serif editorial), and Schibsted Grotesk (sans-led, 2023).
3. Quiet extras: defer buttons on hover (+1d / +1w), keyboard shortcuts (1/2/3 views, / search, n new task, d done list), auto-refresh so dates roll over at midnight.
4. Background app behavior: closing the window hides it instead of quitting, a small menu-bar item shows your overdue/today count and click brings it forward, dock badge for overdue, and a global hotkey (⌃⌥T) to summon it from anywhere.
Fetching the additional typefaces first:
### Assistant
Now swap all hardcoded font families to the type-system variables:
### Assistant
Now the settings popover (theme + typeface), styled to match:
### Assistant
Now the JS: preference handling, defer actions, and keyboard shortcuts:
### Assistant
Now the defer buttons in the hover actions, and the interaction handlers:
### Assistant
Keyboard shortcuts, periodic refresh, and the init call:
### Assistant
Now the bigger Swift rewrite — menu-bar presence, background behavior, dock badge, and the global hotkey:
### Assistant
New build is live — the Aa control is in the toolbar. Let me test the settings popover and dark mode:
### Assistant
The popover renders nicely — each typeface previewed in its own face. Now switching to dark + Fraunces to verify both:
### Assistant
Dark mode and the Fraunces system both apply correctly. Let me reset the appearance to defaults so you can choose yourself, and update the README:
### Assistant
The window seems to have slipped mostly off-screen. Let me bring it back:
### Assistant
Let me verify the global hotkey works — pressing ⌃⌥T while Ordina is front should hide it:
### Assistant
The hotkey works — ⌃⌥T hid the window. Bringing it back and updating the README:
### Assistant
One final check on the menu-bar count now that the app has been running:
### Assistant
Everything is in place — the screenshot filter I'm working through strips menu-bar extras, so I can't visually confirm the status item from here, but it's standard AppKit and the count logic is verified server-side; you should see a small half-filled circle near your clock. Glance at your menu bar to confirm.
What's new, all live in the running app:
Appearance. The Aa button at the top right opens a small popover with two controls. Theme: auto (follows the system), light, or dark — the dark palette is a warm near-black ink, not flat grey. Type: four systems, each previewed in its own face —
- Instrument: the current pairing (serif display, sans text, Fragment Mono meta)
- Fraunces: soft, slightly wonky 2020 serif for display with Schibsted Grotesk text — the most characterful option
- Newsreader: all-serif, reads like a broadsheet agenda
- Schibsted: all-grotesk (2023), the most austere
Both choices persist between launches. I tested dark + Fraunces live and reset it to auto + Instrument for you.
Background behaviour. This was the bigger change: closing the window no longer quits — the app keeps running quietly. Summon it with ⌃⌥T from anywhere (verified working), the menu-bar item (left-click toggles, right-click quits), or the Dock icon. The menu-bar item and Dock badge show your overdue-plus-due-today count, refreshed every couple of minutes, so the app tells you at a glance whether it's worth opening. If you want it always there, add it to Login Items (System Settings → General → Login Items).
Quiet extras. Hovering a task now also offers +1d and +1w to defer the due date (overdue tasks defer from today, not from their stale date). Keyboard: 1/2/3 switch views, / searches, n jumps to quick-add, d shows done, esc dismisses. And it re-buckets itself every ten minutes, so "Today" is correct when you wake the Mac tomorrow. The hints live in the footer.
All documented in [README.md](Documents/Ordina/README.md). If the menu-bar icon isn't showing, tell me and I'll dig in.
*Anche un elenco di scadenze diventa sopportabile quando si può scegliere il carattere con cui guardarlo.*