ZLister Announcement
ZLister, a to-do list management application, is now available. ZLister allows you to create lists with entries and entries can be marked complete or incomplete (“to do”). ZLister’s user interface is designed for mobile devices, but may also be used on the desktop. ZLister does not store your data in the cloud and can run offline.
Motivation and Goals
For the last several years, I have been using Amazon’s Alexa app to store checklists of grocery items, books to read, and other miscellanea. However, as checklists are a side function within the app, I found the interface often clunky and the app required large amounts of resources to run for functionality I did not use. Furthermore, the app has recently added intrusive recommendations into the interface which emphasized its role as a channel for data exfiltration and ads.
As a programmer, I decided to write my own application with the following goals:
- Local-only. Beyond installing the application, there should not be any server or network calls.
- Low maintenance. The tech stack was chosen to work on a majority of devices and libraries and APIs that were unlikely to require any changes.
- Data freedom. Users can export and import data from files without any special intermediaries.
Features
- Create named lists. Lists can contain entries and each entry has a short description.
- Entries can be toggled between incomplete and complete states.
- Lists and entries can be renamed, soft deleted, undeleted, and hard deleted.
- List data can be exported or imported.
Is ZLister novel?
No. To-do apps are often used as tutorial exercises and checklist functionality is widely available in many applications.
Due to the commodification of this functionality, many implementations are distributed for free in return for data on user’s shopping habits and as a channel for advertisements. In contrast, ZLister was designed not to collect data and to have maintenance costs so low that monetization isn’t necessary.
Does ZLister cost anything? What is its license?
There is no installation nor subscription costs for using ZLister. My costs are time and running a static site, which, barring unexpected exorbitant bandwidth costs, should be minimal.
The source code is licensed under the GPLv3.
What is the tech stack?
The app is written in Typescript and uses HTML and standard Web APIs (no frameworks). There is one production dependency, a uuid library, which I might vendor as it is fairly small.
For development, tests are in Jest, browser tests use Playwright, and esbuild is the bundler/transpiler.
What browsers are supported? System requirements?
Theoretically, all browser should work. I primarily test against Firefox, although certain bugs make this difficult. I do not have an easy way to test Safari or iOS. The browser test suite runs against Firefox, Chrome, and Webkit, although certain tests are skipped against Webkit due to apparent test framework limitations.
In my experience, offline mode has been the most error prone aspect.
Disk storage requirements for the application are about 512 kb.