Inspiration

What does Mario Maker, Squarespace, and Programming all have in common?

That's right. The fantasy of creating something of brought up from your own creativity and needs. We, inspired by this drive to be a creator in all humans, wanted to create JANUS to help people both reach their goals of creating their own project, while also letting them create in a safe, useful sandbox.

What it does

A user would be able to create a UI panel of widgets that they'd like to use (and customize how and what those widgets do!) inside the Janus Builder Studio. Then, after saving and publishing their panel, they can connect their phone, tablet, really anything with a screen, with the Janus panel app. They'll be able to see their own custom panel and go through everything.

This then lets you access parts of your computer completely remotely, and run scripts and even see metric when you're not at all close to the host PC. The biggest difference here, is that the user both remotely controls their PC, but also creating their own interface to do so.

How we built it

We used Electron, React, and Vite for the Builder Studio itself. We created widget schemas and renderers first, and then built upon those with UI. The widgets are shared between the studio project and the PWA project, such that the same widgets with the same styles and feel are shared across both the client screen and the host PC.

We then connect both the PC and the Phone with a Cloudflare Tunnel for remote connectivity.

On the backend we used FastAPI and SQLite for backend services. As well as quite a bit of C for actually working with the host's internal processes/metrics.

Challenges we ran into

The biggest challenge we had was the fact that there was an INSANE amount of features we would need to actually keep track of. Those features and movements all had uses that were important to keep in the app. As such, one feature would sometimes get worked on by multiple people on accident, or one perhaps one important feature might slip by our noses. The volume of moving parts in the project and keeping track of progress was definitely the hardest challenge.

Accomplishments that we're proud of

The completion of an end-to-end working prototype. Something that goes from user building a panel of widgets in the studio, all the way to using it. We were able to create a process for users to visually see their own development, publish, and connect.

What we learned

We relied a bit more on SPEC driven development this time around. We've leaned harder on designing architecture and higher level system design features. And then letting specialized agents to take the specs to fundamentally implement the design and features.

What's next for Janus

Janus, being a very modular app, lends itself for very high integration-ability. One can simply create a widget for an integration they'd like to use, or use agents to help create scripts for their widgets.

So what's next for Janus? Everything.

Built With

Share this project:

Updates

Submission history