Hotlist

Manage your daily todos straight from your Mac menu bar

Try it out in the live demo above!

Download now!

It's simple, and just works! Wilbert Liu I'm hooked Jaap Stronks I love it! Been using it all day. Josee

Features

Support

How do I install Hotlist?

  1. First we download the app package.
  2. Open the package and drag the Hotlist icon to the Applications folder.
  3. Open your Applications folder and double click the Hotlist app.
  4. Hotlist should now show in your MacOS menu bar.

Known issues

Hotlist is built with Tauri, there's still some bugs that need fixing in Tauri before they can be fixed in Hotlist:

How can I change settings?

Right click on the Hotlist app icon and click Settings. Unfortunately "Control + Left" click currently doesn't work, I'm working on a fix for that.

How do I automatically start Hotlist?

Go to MacOS system settings and search for "Login items", add Hotlist to the list of items you want to open at login.

Hotlist isn't working?

Hotlist doesn't show a splash screen, it just shows as an icon in the MacOS menu bar. On a MacBook please make sure it's not hidden below the middle camera bar.

Any other questions, feel free to contact support.

Can I get a refund?

If you decided to pay for Hotlist and regret doing so I'm happy to refund your purchase, please contact support

Other questions

If you have any questions, feel free to contact support

Plugins

Push Hotlist todo items to third-party todo apps using sync plugins.

Connect a plugin in the settings/sync tab.

Hotlist runs automated checks to ensure the plugin functions corretly.

Available plugins

Write your own plugin

A Hotlist plugin is a JavaScript file exporting a predefined set of functions.

See code interface below and inspect the WIP.co plugin code to see how it works.

/**
* getId
* @returns { string } Between 3 and 8 lowercase characters
*/
const getId = () => 'myapp';

/**
* getName
* @returns { string } Between 3 and 32 characters
*/
const getName = () => 'My app';

/**
* getProps
* @returns { { [key:string]: { label:string, value:string, type: 'text' | 'password' } } }
*/
const getProps = () => ({
    apiKey: {
        label: 'API Key',
        type: 'password',
        value: '',
    },
});

/**
* Insert todo
* @param { { [prop:string]: { label: string, value: string } } } props
* @param { text: string, completed?: boolean } data
* @returns { Promise<{ id:string, url?: string } | boolean> }
*/
const insertTodo = async (props, data) => {
    
};

/**
* Update existing todo
* @param { { [prop:string]: { label: string, value: string } } } props
* @param { string } id
* @param { text: string, completed?: boolean } data
* @returns { Promise<boolean> }
*/
const updateTodo = async (props, id, data) => {
    
};

/**
* Update existing todo
* @param { { [prop:string]: { label: string, value: string } } } props
* @param { string } id
* @returns { Promise<boolean> }
*/
const deleteTodo = async (props, id) => {
    
};