Skip to content
Back to projects

Desktop Todo List App Project

An Electron todo app with task list, normal task modal, timed task modal, image task modal, and desktop packaging scripts.

Project image carousel

Desktop Todo List App

Image 1 of 2

Project Concept

An Electron desktop task manager — three task types: ordinary text tasks, scheduled tasks with notifications, and image-attached tasks. No accounts or backend — all data is fully local via JsStore.

What the Interface Shows

The native desktop app window displayed through a browser (noVNC), with the text and scheduled task panels, and the image-task section.

My Role and Decisions

The core challenge here was fundamentally different from any other project — this app isn’t a website at all, so it can’t be captured with a regular browser. Before committing to any implementation, I first ran an actual feasibility test: could a real Electron app stay interactive inside a Docker container and be exposed through a browser? I verified this concretely (opening a child window with the mouse, creating a task with the keyboard) before deciding to proceed. The decision was to use a heavier toolchain (Xvfb for a virtual display, x11vnc, websockify, noVNC) rather than a lighter alternative — and I explicitly documented this as a larger image size in exchange for genuine interactive preview capability. When I found a restart bug (the container refused to start again after being stopped and started), I traced it to stale lock files left over from the first run, and fixed it by defensively removing them on every startup — not just relying on a clean shutdown.

Technical Aspects

Electron with context-isolated IPC and explicitly allowlisted channels between the main and renderer processes, JsStore (IndexedDB) for fully local storage, and a noVNC bridge for browser-based preview — task data stays inside the disposable container and never travels to any external service.

Project Value in the Portfolio

This project demonstrates solving an unconventional preview problem (a desktop app in a browser) through actual feasibility proof before committing, and root-causing a restart bug instead of patching around it.

View more projects
View more services