98 Tasks

For a bit of fun I made a Windows 98 themed task tracker using Vue and 98.css.

You can try it out here.

Source code on GitHub

Screenshot of 98 Tasks showing a task window, the task table, and a new task being created

The most fun thing about this project was building a basic window system. It went through a couple iterations while I found out what worked and what didn’t. The current implementation I think makes decent use of Vue components and makes adding new window types a breeze. It could still be simplified a bit, but I’ll leave that for if I ever decide to try porting the project to Typescript. I don’t have any real experience with Typescript but it seems pretty popular so I think I owe it to myself to at least try it. Porting a simple existing project like this seems like a decent way to get exposed to it.

I thought the window system wouldn’t be too bad to implement but it ended up taking more time than any other single component. On the other hand, there were features like task saving that I planned to take a while but in reality they ended up taking about ten minutes.

Speaking of the window system, after actually using this for a little bit I unironically think tracking your tasks in separate movable windows is pretty killer. It gives you a lot of organizational freedom and is able to show a lot of information about different tasks at once. And I just thought it would be a fun gimmick when I started coding it.

I’ve got a good amount of experience with Vue 2, but this was my first time using Vue 3. There are some pretty big differences that took some relearning but all the core principles are the same. I like it. It feels simple and light as far as Javascript frameworks go. I was able to get a lot done without importing extra packages too.

One last thing I want to add is that 98.css is really fun to use, as a developer and as a user. It’s got no practical reason to exist, yet here it is, and I love that because people need to remember it’s ok to have fun working on computers.

— JP

Comment via Fediverse