Jongi-nyang

A to-do app for macOS · Windows

Today's to-dos,
on one sheet of paper.

A note for writing down to-dos and ticking them off. Above the list you see what's on now and how long is left; at the bottom of the screen, a paper cat brings your reminders. No account: everything is saved in files on your computer.

Free · macOS 14+ (Apple Silicon) · Windows 10/11 · Korean · English · Dutch. 종이냥 (jongi-nyang) means “paper cat”.

The Jongi-nyang note on a Mac: the day strip shows ‘Team meeting’ now with 30 minutes left, then what's next and today's list
The same note in the Windows app

Anything, on one line

Type into the input line at the bottom and it works out whether you meant a to-do, an event or a timer, and shows its reading as a chip. If it's wrong, press Tab. After adding, “Switch” in the toast changes it to the other kind.

  • meeting tomorrow 3pmEvent · tomorrow 3:00 PM
  • report by FridayTo-do · due Friday
  • timer 4040-minute timer
  • alarm 7am weekdaysAlarm · weekdays 7:00 AM
The input line reading a typed event, with an ‘Event’ chip above it

What's in the note

The day strip, a focus card, alarms, the Ahead tab, an evening tidy-up, and the cat.

A day strip that puts now first

What's on now is in large handwriting, with the time left in a ring. Click it to unfold the day as a timetable, where you can drag to-dos in 15-minute steps.

The unfolded day timetable: events as color blocks and to-dos outlined in green

Focus on one thing

Type “report 25 min focus” and the note turns into a single card with Done, 5 more min and Not now. Pomodoro rounds work too.

The focus card: a ring of time left around one to-do

Alarms on a paper slip

Set days, sound and snooze. When it rings, a slip appears with the cat shaking a bell. It ignores keys for 1.5 seconds, so typing in another app can't dismiss it.

The ringing alarm slip: 7:00 AM, a Stop button and snooze for 5, 10 or 15 minutes

Ahead: drag to reschedule

Each day of this week and next with its events and due to-dos. Drag a to-do onto another day and its due date follows.

Dragging a to-do to another day in the Ahead tab (Korean interface)

Evening tidy-up

At 8 pm it asks: “3 left today. Move them to tomorrow?” If you miss it, it asks the next morning. Search covers today, Ahead, memos, history and events, and understands Korean initial consonants.

The evening tidy-up slip: the to-dos left today, with To tomorrow, To Someday and Leave as is

A cat for company

It breathes and wanders above the Dock, walks in with your reminders and celebrates finished to-dos. Sometimes it asks a question with answer buttons, like “A 5-minute break?”, which starts a 5-minute timer.

The cat asking a question in a speech bubble with answer buttons (Korean interface)

Mac and Windows, one list

Pick an iCloud Drive, OneDrive or Dropbox folder as the storage location and both computers share one list. Edits made at nearly the same time both survive, and a memo edited on two devices is merged line by line and character by character. There is no account and no server.

Calendar, history, settings and help are in one Desk window. When the system is in dark mode, every window switches to night paper, the color of paper in a room with the lights off.

The Desk window's calendar: a month view with the selected day's events on the right

The day strip, drawn three times

I spent more time on how to show today above the list than on anything else. Rounds 1 and 2 showed the whole day. Using it, I found that what I needed was what's on now and how long is left.

Round 1

The day as one bar; now and next as one sentence.

Day strip, round 1: a bar inside a card and a now-and-next sentence (Korean interface)

Round 2

Six-hour ticks; timed to-dos below the bar.

Day strip, round 2: six-hour ticks (Korean interface)

Round 3

No card; what's on now, large. Click to see the whole day.

Day strip, round 3: a thin bar, a 30-minutes-left ring, the current event in large handwriting and the next two rows (Korean interface)

Read the design process (Korean)

Built twice, kept identical

Swift (SwiftUI + AppKit) on the Mac, Electron + TypeScript on Windows, built separately. They share no code. Both have to pass the same tables of test cases, which keeps their behavior the same.

136 rowsof input-line cases both apps pass character for character
464 + 300Windows tests; Mac test scripts with ~300 checks
61% → 0.7%Mac idle CPU with the note open
WCAG AAevery text pair, day and night, or the check fails
  • Case tables come firstHow “meeting tomorrow 3pm” is read, down to the words on the chip, is one row. The Swift and TypeScript tests must both produce that exact string.
  • Screens are checked by rendering themAbout 1,500 real Mac screens in 3 languages, day and night. Every Windows window is resized and redrawn at different scale factors and fonts to catch clipped text.
  • Where the 61% CPU came fromA blinking “now” line was redrawing the whole note every frame. The same release cut input latency from 0.46 s to 0.01 s and launch from 2.7 s to 1.0 s on the Mac; on Windows, memory after 10 minutes went from 692 MB to 457 MB.
  • Not done yetThe Windows version has only run in Electron on macOS, never on a real Windows PC. Neither app is code-signed.

Download

Free. The builds aren't code-signed, so allow them once on first launch.

Mac

1.40.1 · macOS 14 or later · Apple Silicon · DMG

  1. Open the DMG and drag Jongi-nyang into Applications.
  2. In Applications, right-click → Open. If it's blocked: System Settings → Privacy & Security → Open Anyway.
Download for Mac

Windows

1.25.1 · Windows 10/11 x64 · installer or portable zip

  1. Run JongiNyang-1.25.1-x64.exe.
  2. If SmartScreen appears: More info → Run anyway.
Download for Windows