Wanbird IT

mado

A task board for organizing your day: every task on one board, what is due today, what comes next, and cards you drag across to done. Started in 2023, rebuilt in 2026, and now also an iPhone app.

Years
2023, rebuilt in 2026
Kind
Task board: website and iPhone app
Built in
Next.js 16, React 19, SwiftUI
Data
MongoDB, Better Auth
Home page, 2023 Home page, 2026

Drag the stroke to compare. Home and Board are from December 2023, Sign up from October 2023.

2023: two starts

mado began in October 2023 as a React app with its own Express server and a MongoDB database. In about a month it got a home page, sign-up and sign-in forms that opened over that page, and Google sign-in. It was black on white with one red. It had no tasks yet.

In December it was started again on Next.js, with a new blue look. This version had the board: three columns, and cards that could be dragged between them. But it had no accounts and saved nothing, and its three cards were written into the code. Work stopped on 10 December 2023.

The home page in October 2023: the mado wordmark, a long headline, a second line reading Simplify Your Day, Achieve Your Goals, and a red Start Organizing button
October 2023. The second line, “Simplify Your Day, Achieve Your Goals”, is the one that lasted.

2026: the first look, finished

The 2026 rebuild went back to October's look and gave it what was missing: accounts, tasks that are saved, and pages for today and for what comes next. October's second line became the headline, the “Start organizing” button stayed, and sign-up still opens over the home page.

Mado is Japanese for window. The home page now shows the board inside a thin black frame, and it is the working board, not a picture of it.

Three habits keep the design plain.

One red.

For the name, the main button, high priority and what is overdue.

Priority is a small square.

Red for high, black for medium, an outline for low.

Labels sit on the edge.

The label rests inside the box and moves onto its border when you type. Try it.

Drag a card

The board below works like the one in mado. A task moves the moment you let go of it, and the new order is saved in the background. Only the columns the move touched are sent.

If saving fails, the task goes back to where it was and the board says so. Tick “Make the next save fail” to see that happen.

mado lays the board out differently on a phone. Both layouts are here, on the same five tasks.

To move a task, press space to pick it up, use the arrow keys to move it, then press space to drop it or escape to cancel.

To do 2

  • Draft the Q4 budget
    In 2 daysWorkHigh
  • Book a dentist appointment
    TomorrowHealthMedium

In progress 2

  • Renew passport
    TodayPersonalHigh
  • Redesign portfolio site
    Side projectDesignLow

Completed 1

  • Pay the electricity bill
    YesterdayHomeMedium

    What was saved

    Nothing yet. Move a task.

    With a mouse, drag. On a touch screen, press and hold a card, then drag, so that a swipe still scrolls the page. On a keyboard, Space picks a card up, the arrow keys move it, Space drops it and Escape puts it back. A screen reader announces each step. mado's own board works the same three ways.

    A day with mado

    Seven screens, from the first visit to next week. Each picture is the real page, with sample tasks.

    1. Try it first

      The board on the home page is the real one, running on five sample tasks. Visitors can drag cards before they have an account.

      The home page: a headline, a red Start organizing button and a working board in a black frame
    2. Sign up over the page

      Sign-up and sign-in open over the home page, as they did in 2023. An account needs a name, an email and a password. Google sign-in can be switched on.

      The sign-up form, open over the home page
    3. A board that explains itself

      A new account starts with four tasks that teach the board: drag this card, open a card to edit it, plan one thing for tomorrow.

      The board of a new account, with four starter tasks
    4. The board

      To do, In progress and Completed. Each card shows its tags, its due date and its priority. The line under the title counts what is open, due today and overdue.

      The board with ten tasks in three columns
    5. A task

      A title, notes, a due date, up to six tags, a priority and a status. Opening a card lets you change or delete it.

      The Edit task dialog, open over the board
    6. Today

      What is due today, with anything overdue above it. Ticking the box completes the task.

      The Today page: one overdue task, then three due today
    7. Upcoming

      Everything dated after today, grouped by day.

      The Upcoming page: tasks grouped under Tomorrow and the days after

    Today means your today

    A due date in mado is a calendar day, not a moment. The browser tells the server which time zone it is in, so “Today”, “Tomorrow” and “Overdue” are worked out for the date where you are, not the date where the server is.

    For most of the day, Honolulu and Auckland are on different dates. The same task reads differently in each.

    On a phone

    The first phone layout kept the three columns and let them swipe sideways, so only one fitted on the screen at a time, and the pages were behind a menu button.

    Now the columns are three sections, one under the other. A heading folds its section. Completed starts folded, so finished work does not push open tasks down the screen, and mado remembers which sections you folded. Dashboard, Today and Upcoming are tabs under the header, always in view.

    Each task is a row with a tick box and a ⋮ button. The button opens a sheet from the bottom of the screen with “Move to” and “Edit task”, which is quicker than dragging with a finger. Dragging still works: press and hold. The board above has this layout to try.

    The same change fixed three things on iPhones: date fields that stuck out of the form, icons squeezed small in tight rows, and dates and emails that iOS turned into links.

    The first phone layout: one column of cards, with the next column cut off at the edge of the screen
    Before: columns that swipe sideways.
    The phone layout now: tabs under the header, a To do section of five rows, each with a tick box and a ⋮ button
    Now: sections that fold.
    Home page on a phone, with the live board shown as sections Sign-up form on a phone The board on a phone: a task just ticked, struck through before it moves to Completed The sheet for one task: Move to In progress, Move to Completed, Edit task and Cancel A task being dragged on a phone, held just above the folded Completed heading New task dialog on a phone Today page on a phone Upcoming page on a phone

    The iPhone app

    mado also has an iPhone app, written in SwiftUI. It looks like the website on a phone on purpose: the same wordmark, the same sections that fold, the same tick boxes and ⋮ sheet, and the website's own icons. Dashboard, Today and Upcoming move to the bottom of the screen, where thumbs reach.

    The app has no server of its own. It signs in with the same account as the website and reads and changes tasks through the website. Every change, from either one, goes through the same code on the server, so the two always follow the same rules.

    A change shows at once and is saved in the background. If the server refuses it, the app puts things back, as the board on the website does. The sign-in token is kept in the iPhone's Keychain. “Today” follows the phone's own date: it is worked out again at midnight and whenever the app comes back to the front.

    The board on the website, on a phone: tabs for Dashboard, Today and Upcoming under the header
    The website, on a phone.
    The board in the iPhone app: the same sections and rows, with Dashboard, Today and Upcoming as a tab row at the bottom
    The iPhone app.
    The app's sign-in screen The board in the app: a task just ticked, struck through before it moves to Completed The sheet for one task in the app: Move to In progress, Move to Completed, Edit task and Cancel New task in the app Editing a task in the app Today in the app: one overdue task, then three due today Upcoming in the app: tasks grouped by day The account menu in the app, with the name, the email and Sign out

    Built with

    Website
    Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4
    iPhone app
    SwiftUI, for iOS 27. It uses the website's task API
    Board
    dnd-kit, for dragging by mouse, touch and keyboard
    Data
    MongoDB. Zod checks everything the server accepts
    Accounts
    Better Auth: email and password, with optional Google sign-in
    Runs on
    Docker Compose starts the local database with one command

    43 commits. In black, the 24 of the first version, in October and November 2023. In outline, the 5 of the December 2023 restart on Next.js. In red, the 14 of 2026: the rebuild, which replaced all of the earlier code, and the iPhone app.

    Have something like this to build?

    Send a few lines about what you need. A rough description is enough to start.

    Email contact@wanbird.ma See all work