DEV Community

Cover image for Trello was too slow, so I built an instant-loading Kanban board from scratch
Tomas Woksepp
Tomas Woksepp

Posted on

Trello was too slow, so I built an instant-loading Kanban board from scratch

Hey everyone, I'm new here 👋 Long story short, I made an app called KanbanTab in 2020. I finished a huge update that I'm proud of, and I want to show it off. It's a browser extension & mobile app.

Background

I had the idea to make Chrome's new tab load up Trello so I don't have to go to their website every time, so I installed a Chrome Extension to open my Trello board. It worked but I was a little bit frustrated at the loading times... Especially due to my internet at the time because I was stuck on a mountain in Malaysia due to Covid (long story).

That's when the idea was born to make a web extension that can load my tasks instantly (locally) instead of having to wait for Trello or other apps to load. I created KanbanTab and I used it myself for a bit, but later decided to release it to everyone which I released a few months later in 2020.

Last year I decided it was time to upgrade it because I wanted it to work on my phone as well, and that's where I am right now. I added live sync between devices, and also End-to-End Encryption to keep the users data truly private. (The database data is always encrypted, but the client-side encrypted data is inaccessible even to me as the developer)

Main view of KanbanTab

What makes KanbanTab different?

🔵 Instant loading: it's local-first, using web workers and other techniques to make the data load instantly, while also relying on WebSockets to keep data synced between devices in real-time.
🔵 Simplicity: KanbanTab is not a project management tool, it's a personal productivity tool that aims to be simple to use, without unnecessary features that just bloats the UI.
🔵 Privacy: Privacy is important, and I don't want to worry about data breaches if they do happen (knock on wood). The End-to-End Encryption makes it so the data in the servers' database is completely unusable unless you have the keys that are only accessible on the client.

Stack

I code from scratch because I like lightweight applications, which is especially important for an app like KanbanTab since loading time is a huge factor for me, and my users. Here's what I use:
🔵 Vanilla JavaScript / CSS: No React or Tailwind, just clean JS.
🔵 IndexedDB/LocalStorage: For the local-first instant-loading.
🔵 Python: Running the backend with Flask for the API and WebSockets.
🔵 MySQL: For the main database.
🔵 CryptoJS: To handle the client-side AES-256 End-to-End Encryption.
🔵 Capacitor: To wrap the web app into a native Android application.

Feel free to check it out - you can try it without signing up here, or check out the website that I finished today:
https://kanbantab.com

No ads, no signup required, no huge paywall. Just a good ol' organically coded app 🤠 I currently have around 70 daily active users, but I'd really love to get some fresh eyes on it from other developers to help me take it to the next level.

Top comments (0)