Activity

Luke Collingridge

Shipped this project!

Hours: 38.53
Cookies: 🍪 795
Multiplier: 20.62 cookies/hr

I built a webOS, bananaOS, that runs completely in the browser (vanilla JS) and is designed to be used just like a regular operating system (think Windows). Making the OS feel smooth and intuitive to navigate was a struggle at first, but the more time I put into it the better it began to feel. A bunch of apps are supported by default, with a built-in virtual filesystem, so play around however you’d like!

Luke Collingridge

Final tweaks and fixes for ship

After all this time, the project is finally in a state where I’m comfortable shipping it 🥳! This iteration was pretty light, with some code proofreading and bug fixes (as well as improving the desktop and startup flows).

Attachment
0
Luke Collingridge

Launcher app and battery status

The biggest thing added today was the Launcher app (basically Windows start menu) which allows you to search for and open installed apps easily. I also finally added proper support for desktop shortcuts and files, as well as a battery status indicator.

My goal right now is to get this shipped tomorrow; can’t wait!

Attachment
0
Luke Collingridge

Desktop functionality and more window controls

The biggest change in this version was on the desktop, where you can now create actual desktop shortcuts and files. I’ll still have to make a modal for file creation in the desktop, but the functionality is there. I also added the ability to have multiple instances of an app open and minimize specific ones, opening them from the taskbar.

I only have a few days left before I have to ship this, but I think I can do it in time!

Attachment
0
Luke Collingridge

Settings App

Today I focused on adding a Settings app to the webOS, and I managed to get a good MVP up. You can configure themes, wallpaper, region, language, and time zone so far. Language support is incomplete right now, only supporting translations for the Settings app itself, but using MyMemory’s API it will be trivial to get the rest of the app translated. Any region or time zone you could ever want is also support thanks to countries-and-timezones.

After I finish adding translations for the remainder of the app, I plan to move on to more general OS controls and desktop functions. I feel a ship coming on soon!

Attachment
0
Luke Collingridge

This time I added a completely new Photos app featuring an actual photo editor using Toast UI’s image editor module. Super quick to get running especially with code I’d already written for the text editor, so I also had some time to fix old bugs.

Attachment
0
Luke Collingridge

Today I added the default text editor app to the webOS. It turned out really well and was surprisingly easy to implement thanks to CodeMirror! Wiring it into the filesystem was slightly tricky, but still manageable. After I add just a few more apps and fix some more bugs, this might actually be functioning as a proper operating system.

Attachment
0
Luke Collingridge

Today was spent touching up the file explorer. I added a whooole lot of keyboard shortcuts and some new functions, including refreshing and undo/redo. I implemented the sidebar and fixed way too many bugs, and with that I think I’m ready to move on to the text editor!

Attachment
0
Luke Collingridge

Today I continued working on my Files app for the operating system. I’m fairly new to CSS grid so that took a looong time to get working, but it was smooth sailing other than that. The app’s UI is almost done (the sidebar is the last part to populate) and it is integrated pretty well with the filesystem as well.

Attachment
0
Luke Collingridge

I finally got around to creating the core of the filesystem! There’s limited interaction outside of the terminal, but I also started the file manager’s UI, which will be great for improving the filesystem. It’s starting to feel more and more like a real operating system!

Attachment
0
Luke Collingridge

Most of my work today was just behind-the-scenes work like restructuring the app, but I also upgraded the window resizing and added a terminal app! Only a few commands exist so far, so next time I’ll be focused on adding more. I also added proper window management with opening and closing windows being supported.

Attachment
0
Luke Collingridge

Tons of work today! I added some simple JavaScript to save preferences from setup into IndexedDB (using Dexie.js for the database interactions), then moved on to the desktop page. I managed to add the wallpaper, the taskbar, windows, a Welcome app, and a desktop with draggable items. Figuring out how to drag (and resize!) the windows took a lot of time, but it turned out super well! Now I’m at a point where I can begin to add actual apps, which is the part I’ve been the most excited for.

Attachment
0
Luke Collingridge

Worked a lot today! I created the setup page and its styles, then added some basic interactivity with some JS. Now the app is about ready to add persistence with IndexedDB, then I can finally build out the actual desktop and its functionality.

Attachment
0
Luke Collingridge

Started scaffolding the project and created the homepage for the website. I haven’t started building the OS itself, but the welcome page is complete including a link to the repo and a logo mockup I made.

Attachment
0