A tilted iPhone running TUGAS — a week view, Monday to Friday — with red USB-C cables draped around it on a dark background.

I couldn’t find a task app
simple enough. So I built one.

tugas

The why

My task system was a paper diary.

It worked, except for the two things paper can’t do.

A weekly paper diary open to a week, Monday to Sunday, filled in by hand — the task system that came before the app.

Monday to Sunday, the same format every year. It worked, except for the two things paper can’t do: reset a recurring chore by itself, and remind me. I’m only human — I forget.

So for weeks I trawled the App Store for something simple. Everything wanted something from me first — a sign-up, a subscription, a paywall in front of the basics — and every screen was doing too much. And there’s one more reason that matters: I’m dyslexic, and a crowded task list reads like noise. Seeing only today is calm. I wanted my diary, digitised — no logins, one week at a time. It didn’t exist, so I built it.

The what

TUGAS is a deliberately tiny task app.

One scrolling week, one accent colour, no accounts. What makes it mine isn’t the feature list — every design decision traces back to something I believe. This is the app’s DNA.

The parts that make up the TUGAS app laid out side by side: day cards, category chips, repeat toggles, reminder rows and a date picker.
The pieces of TUGAS: cards, chips, toggles — one accent colour, nothing extra.

Nine beliefs, each with the design decision it produced.

Overwhelm comes from seeing the whole mountain
Slice the load into daily, sectioned pieces
I plan my life one week at a time (the diary)
Week view, Monday to Sunday; this week only
Paper can’t reset recurring tasks
The recurrence engine — the core of the app
Paper doesn’t speak to me
On my phone, with reminders, always in my pocket
Show me only what’s mine right now
Opens on today; everything else a scroll away
Adding a task shouldn’t be another chore
A ghost “Add a task…” row — instant capture, no friction
My dyslexic brain needs less noise
One accent colour, big day headers, one task = one line
Chores aren’t deep — don’t make them deep
No accounts, no projects, no prep; set and forget
I don’t want stress to take away something I enjoy
Quiet UI; no streaks, no guilt, no gamified pressure

The how

Everything ran the same loop.

Honestly? Never as one clean pass — the loop ran dozens of times, in small pieces. Six beats, each with a receipt and something you can take with you.

01 · Brief

The questions found what the bullets hid.

TUGAS started as three bullet points: add a task, give it a category, make it repeat. Instead of building that, we interrogated it — one question at a time. What happens to an unfinished task at midnight? What does “every 2 days” mean when you tick it late? The three bullets were hiding at least six decisions I hadn’t made yet.

3 bullets in → 6+ hidden decisions found before anything was built

Borrow this

Interrogate your brief one question at a time — before anything gets built.

Handwritten origin notes for TUGAS — the first scoping of the app on grid paper.
Brief: three bullet points became a real spec, one question at a time.

02 · Design

The AI shows options. I keep the pen.

Nothing went straight to real code. I asked for quick throwaway versions first — cheap to make, cheap to bin. When the task-row swipe looked rough on my actual phone, I had the AI mock up six different fixes to compare… then drew my own seventh. That’s the one that shipped.

Borrow this

Make the AI show you options. Keep the pen for the call that matters.

Rows of app icon sketches explored before the final TUGAS icon.
Design: rounds of options explored cheaply — the final call stayed mine.

03 · Build

Small pieces, each proven before the next.

The app grew in small, reviewed steps — never one big leap. The trickiest part, the rules for what happens to a repeating task at midnight, was written and tested before a single screen existed. Today 52 automated checks re-prove those rules every time anything changes. On the busiest day, five improved versions of the app shipped between morning and night.

52 automated checks · five builds shipped in one day

Borrow this

Build in small batches, and prove each one works before starting the next.

A terminal running the TUGAS test suite: a column of green ticks, each naming a rule it proves — onceOccursOnlyOnStartDay, everyNTickingNeverReanchors, countPerWeekHidesAfterTargetHit — ending with “Test run with 52 tests in 0 suites passed”.
Build: small batches, always verified — 52 checks, five builds in a day.

04 · Verify

No green test, no upload.

Build 7 shipped with two buttons that looked perfect and did nothing — every check had passed except the one that mattered: actually tapping them. That failure became a rule. Now a simulated finger taps through the real app — swipes, edits, deletes — before any build is allowed out the door.

The rule itself: no green test, no upload

Borrow this

When something slips through, don’t just fix it — turn it into a rule.

The TUGAS task list in the simulator during a UI test. Two tasks named “UITest BCC7D0” and “UITest 14CA05” — created by the test itself — sit among the app’s demo tasks. The bottom one has been swiped open by the test, revealing the black Edit and red Delete buttons it is about to tap.
Verify: a shipped failure, turned into a permanent gate.

05 · Ship

Shipping is a skill you practise.

The first release took a whole evening of certificates and ceremony. By the ninth, releasing was routine. Nine real versions went to my iPhone through TestFlight — Apple’s channel for pre-release apps — in six days, each one a little better than the last.

Build timeline: 1.0 (1) → 1.0 (9), six days

Borrow this

Ship early and often — the ceremony shrinks every time you do it.

The TestFlight build list in App Store Connect: ten builds, 1.0 (1) to 1.0 (10), every one marked Complete. Dated 5 to 13 July 2026 — 1.0 (1) to 1.0 (9) span six days, and five of them shipped on 10 July alone.
Ship: nine real releases in six days — routine, not ceremony.

06 · Document

Write the loop down — it compounds.

Every session starts where the last one ended, because everything is written down: decisions, feedback, what worked. My feedback measurably improved on the record. Round 1’s “the calendar is incorrect” wasted a whole round — the fix matched the words, not what I meant. By round 3 I was sending annotated screenshots of current vs desired, and fixes landed in one shot. The playbook now has a rule at the top: show the destination, not just the problem.

Borrow this

Pair every problem with its destination — “this is wrong” plus “here’s what right looks like.”

A hand-drawn Excalidraw sketch used to give the AI visual feedback.
Document: a real feedback sketch — the destination drawn, not just the problem circled.

The Outcome

TUGAS shipped (on TestFlight)

It runs my week — used daily by the person it was built for. But the app is only half the outcome. The other half is what this practice did to the practice itself. In March I ran my first AI-built project,A Designer’s AI Field Notes. TUGAS, four months later, is the test of what stuck.

SkillMarch · first projectJuly · TUGAS
StartingNo plan, a barely-formed promptA validated spec and a step-by-step build plan before any code
Giving contextLight briefs, content scattered elsewhereA living spec, a project log, a written brief for every round of work
AskingA prompt, barely formedSelf-contained briefs — each fix scoped with its cause and how to check it
Giving feedbackDiscovered the hard way that feedback is a skillSketches, reference images, real-phone screenshots of current vs desired — one-shot fixes
DesigningRebuilt my design file properly only after a messy first goDesign-system-first from day one; binned a weak attempt cheaply
UX judgementContent-driven, layout-ledOpinionated defaults, minimalism with reasons, empty-state thinking
Directing the codeCould read it well enough to follow alongDirected the architecture; caught fixes that solved the wrong problem
VerifyingMostly by eyeA screenshot for every fix, 52 automated checks, always run the real thing
RigourFirst real app, learning the toolsThe tricky logic written as tested rules before any screens existed
Working with AINamed the roles: lead, ask, override, step awayInternalised — approach agreed first, clear go-aheads, judgement calls kept
Shipping & backing upGitHub from day oneShipped much further — a real iPhone, TestFlight — but backed up later. Still working on that one.
Twelve TUGAS home-screen widgets in every size, light and dark: “All done for today”, a “3 left” progress card, “Nothing scheduled today”, and task lists showing Wash hair, Reply to Mak, Water plants.

And this is the part that compounds.

One more thing. Not long before TUGAS, Satya Nadellawrote that the real opportunity in AI isn’t picking the best model — it’s “building a learning loop on top of models where human capital and token capital compound.” In plain words: your judgement, plus a way of working with AI that gets better every round. That’s what this page is. TUGAS is just the app it produced.

Before you go

Download it. Test it.

Complete it with Tugas.

The TUGAS app open on an iPhone, showing the week from Monday to Friday: a task to tap complete, one struck through, one row revealing swipe-to-edit and delete pills, and an ‘Add a task’ row.The TUGAS app open on an iPhone in dark mode, showing the week from Monday to Friday: a task to tap complete, one struck through, one row revealing swipe-to-edit and delete pills, and an ‘Add a task’ row.
The TUGAS app icon: the wordmark ‘tugas’ with a strike through it.The TUGAS app icon: the wordmark ‘tugas’ with a strike through it.
  1. Step 1

    Install TestFlight (free, from Apple):https://apps.apple.com/app/testflight/id899247664

  2. Step 2

    Tap my link 👉https://testflight.apple.com/join/Bd2TqpvH

  3. Step 3

    Hit Install on TUGAS → open it and add a few tasks