Inspiration
We realized that the hardest part of focus is not always staying focused. Often, the harder part is returning after an interruption.
When we step away from a task, take a break, or switch to something else, we often lose the thread of what we were doing. Coming back can feel tiring because we have to remember where we stopped, what we were thinking, and what the next step was.
That is why we wanted to build a desktop companion instead of another productivity tracker. Besideme is not designed to judge the user, detect failure, or force constant focus. It is designed to quietly stay nearby, hold the user's place, and make it easier to return.
The cat companion came from the feeling that support should be gentle and present, not stressful. We wanted the app to feel like something sitting beside you while you work, rather than something watching over you.
What it does
Besideme is a macOS desktop companion that helps users work, rest, and return without losing their place.
The app has a small animated cat that stays on the desktop. The user can start a focus round, take a rest, resume, or finish from the control panel or directly through the companion. When a focus round ends, Besideme does not decide whether the user succeeded or failed. Instead, the user confirms what happened.
The cat changes based on the user's current state. When there is no active task, it quietly stays nearby, blinks, plays, or grooms. During focus, it reads or sits by a computer. During rest, it sleeps or drinks water. When the user confirms progress, it celebrates briefly and then returns to a quiet state.
BesideMe also includes optional local sensing for context changes. It does not read screenshots, browser history, URLs, document content, or private files. It only uses a narrow local signal to notice that the foreground application may have changed. Instead of deciding that the user is distracted, Besideme asks a neutral question and lets the user explain what happened.
The goal is not to make the user feel monitored. The goal is to make unfinished work feel easier to come back to.
How we built it
We started by developing the core idea ourselves: a desktop companion that does not pressure the user to stay focused, but instead helps them return to unfinished work after a break or interruption. Based on that idea, we used GPT-5.6 to compare different directions, expand the concept, and stress-test the product experience.
GPT-5.6 helped us explore several versions of the flow. We compared a task based version, a return note version, and a lower pressure focus-round version. Through that process, we clarified that Besideme should not be a productivity tracker or an app that judges whether the user is doing well. It should be a quiet companion that helps users preserve their next step and come back when they are ready.
After we wrote out the user flows and application scenarios, we used Codex to turn the concept into a working desktop app. Codex helped us understand and extend the Electron project structure, including the main process, renderer, preload bridge, IPC, local persistence, and companion window behavior.
We built Besideme as a local-first macOS desktop app using Electron, React, TypeScript, and Vite. The app has two main surfaces: a control panel for managing the focus flow, and a floating companion window for the animated cat. We implemented local state, companion actions, focus/rest/finish states, Do Not Disturb, optional local sensing, transparent desktop behavior, and multiple animated cat forms.
One of the most important engineering challenges was making the companion behave like a real desktop pet. A normal Electron window is rectangular, but our cat is an irregular transparent image. With Codex, we implemented alpha-aware hit testing so only visible cat pixels can start dragging the companion, while transparent pixels pass through to the app underneath. We also separated speech-bubble clicks from cat dragging, so the bubble can open actions without moving the pet.
Codex also helped us debug implementation details, run type checks and tests, update documentation, and keep our branch handoff clear for teammates. In short, GPT-5.6 helped us expand, compare, and refine the product direction, while Codex helped us transform that direction into a working Electron app.
Challenges we ran into
One of our biggest challenges was deciding what Besideme should not do. At first, it was easy to imagine features like automatic monitoring, judging whether the user was distracted, or scoring productivity. But those ideas made the app feel stressful, which was the opposite of our goal. We had to keep refining the flow so the companion stayed supportive instead of judgmental.
The hardest technical challenge was building the floating desktop cat. A normal Electron window is rectangular, but our companion is an irregular transparent image. We needed the visible cat to be draggable, while the transparent space around it should not block other apps. We also had to make the speech bubble clickable without accidentally dragging the cat.
Another challenge was turning the companion into something that felt alive but not distracting. We had to balance animation, timing, and wording carefully. Too much movement or too many prompts would make the cat feel like another productivity notification, so we designed slower, quieter states for working, resting, and celebrating.
Accomplishments that we're proud of
We are proud that Besideme became a working desktop companion, not just a concept. The cat can stay on the desktop, animate across different states, be dragged precisely, and respond to the user's focus flow.
We built a control panel and companion interaction flow that lets users start a focus round, rest, resume, finish, and confirm progress. We are especially proud that the app does not automatically decide whether the user succeeded or failed. The user stays in control of the meaning of their own work.
We are also proud of the companion experience itself. The cat is not just decoration. It reflects the user's current state in a quiet way. It behaves differently when the user is idle, focusing, resting, finishing, or celebrating progress.
What we learned
We learned how to use GPT-5.6 to quickly turn an early idea into a more complete product framework. We started with our own core idea, then used GPT-5.6 to compare possible directions, expand user scenarios, clarify the interaction flow, and refine the emotional tone of the companion.
We also learned how to use AI during the technical building process, not just for writing. Codex helped us understand the existing codebase, implement features, debug Electron behavior, test changes, and keep documentation updated as the project changed.
On the teamwork side, we learned how important clear file boundaries and branch management are. Since multiple people were working at the same time, we had to use GitHub branches carefully, check what changed before merging, and avoid editing the same files without coordination.
Overall, this project taught us how to combine product thinking, AI-assisted development, debugging, and team collaboration into one workflow.
What's next for Besideme
Next, we want to add a permissioned agent that can help users plan and return to work more intelligently, while still keeping the experience user-controlled and low-pressure.
One future direction is a planning agent that reads the user's tasks for the day, with permission, and helps divide them into realistic time blocks. For example, it could suggest when to start a reading session, when to work on a paper section, and when to take a rest.
We also want the agent to help with longer projects, such as a research paper. It could track what part of the project the user is currently working on, what materials are relevant, and what the next step should be.
Another future feature is opening the right materials at the right time. When a user starts a focus round, Besideme could help reopen the related documents, PDFs, notes, or browser pages so the user does not have to rebuild their workspace manually.
At the end of a focus round, the agent could ask the user what happened: whether they completed the task, made partial progress, need more time, or want to leave a return note. The important rule is that the user still confirms the outcome. Besideme should assist with planning and returning, not automatically judge success or failure.
Built With
- app
- codex
- companion
- desktop
- electron
- gpt-5.6
- local-first
- macos
- node.js
- openai
- react
- typescript
- vite
Log in or sign up for Devpost to join the conversation.