Hi, I’m Kaustubh
I started building Orbit at Georgia Tech because I thought this stuff was cool and wanted to understand how it actually worked.
I wanted an excuse to learn every layer of a personal AI system, and building my own assistant sounded really fun.
So I started with the question that tends to cause all of my problems: how hard could it be? Then I built memory, tool use, scheduling, approvals, Google integrations, background work, observability, secure account links, and the messaging infrastructure needed to make any of it feel real. It turns out the answer was pretty hard.
Orbit was a side project for fun. It is still fun. It has also become the most ambitious thing I have built, mostly because every time it starts feeling useful, I notice three more things it should be able to do.
Why I care about this
The honest order of operations was curiosity first and product second. I wanted to learn how these systems behave outside a demo, where conversations continue for months, tools fail halfway through, context gets messy, and a confident answer is not the same thing as completed work.
Orbit is a product, but it is also my favorite coding exercise and a creative outlet. I get to learn in public, build something I genuinely want for myself, and see whether it becomes useful to anyone else.
Building it for fun does not mean building it carelessly. If anything, getting deeper into the system made me more opinionated about how it should treat the people trusting it.
Here comes my entire ethos...
Historically a lot of the software I’ve worked on has ended up in places where being approximately right is not particularly useful.
I’ve built systems for campus safety, real-time camera infrastructure, and AI used during patient appointments. Different products, but they all forced the same lesson pretty quickly: once people actually depend on your software, a good demo stops mattering nearly as much as what happens when something goes wrong.
You start caring about boring questions. What did the system actually know? Why did it make that decision? What happens if a service disappears halfway through? What is the model allowed to decide on its own? Can someone undo this?
Orbit takes those questions and makes them much more personal.
If I’m going to build software that can read your email, remember things about you, keep track of commitments, make payments (scary), and eventually act on your behalf, “the model usually gets it right” is nowhere near good enough.
Why Orbit
ChatGPT told me to name it that is allegedly a bad answer so my take on it is I want Orbit to represent...your Orbit
Me and many people I know are holding so many different small things together.
All of these things kinda just float around in Orbit with minimal connection to eachother. Orbit also isn't the first tool to try to tackle this problem.
What still feels unsolved (or in the process of being solved) to me is everything that happens after the answer.
If I tell an assistant, “Figure out dinner with these six people next week,” I don’t really want a five-step plan for how I could do it. I want it to understand everyone’s constraints, ask me when a decision actually requires me, coordinate the rest, and tell me when it’s done.
That is much closer to what I mean by a personal assistant.
Orbit starts in messages because I don’t think asking for help should require opening another app (for now). But Messages is really just the interface. The product is the system behind it.
The uncomfortable part
Of course, the version of Orbit that is actually useful also needs access to things that are private.
Email. Calendar. Personal context. Potentially the ability to take actions in other services.
There’s no clever way around that. A personal assistant with no context is not particularly personal, and an assistant that can never do anything is mostly a chatbot.
So a lot of the work on Orbit has been figuring out where the system should simply not be allowed to improvise.
Identity is resolved before a message reaches a model. Connected data and credentials are encrypted. Only relevant pieces of connected information get pulled into a turn. Personal memories need evidence before becoming durable. Important actions are approved as the exact payload that will actually execute.
Deletion also has to mean deletion across the system, not “the row disappeared from the main database.”
Orbit does not sell private information, run ads against it, or use it to train a general-purpose model.
None of this is particularly glamorous infrastructure, but I think it matters more than having a really impressive demo.
You should be able to see what Orbit knows
One thing I really dislike about a lot of AI products is that you have no idea what state the system is carrying around or how it really works.
If Orbit remembers something about you, I want you to be able to see it and understand where it came from.
If you connect an account, you should be able to see what Orbit has indexed from it.
If Orbit is waiting for something, holding a reminder, or working on a task that will finish later, that state should be visible somewhere other than the chat pretending everything is fine.
That is why Orbit has an account portal even though the main product lives in messages.
It’s also why I keep this blog: to write about how the system works, what I change, and what breaks.
Sometimes that will include deeply stupid bugs, like the afternoon Orbit spent an hour appearing very productive while accomplishing absolutely nothing.
I’d rather people understand the system they’re trusting than ask them to trust a black box.
Models are part of the system, not the system
I obviously think models are incredibly useful. Orbit would not make sense without them.
They are exceptional at taking messy instructions, finding relevant information, reasoning through something, and figuring out what probably needs to happen next.
There are also things I don’t want the model to get the final word on.
Who you are. What gets permanently remembered. Whether a timer actually exists. What exact external action you approved. Whether your account has actually been deleted.
Those decisions live outside the model.
That separation also means Orbit can get much smarter as models improve without quietly giving the model more authority over your life.
Personal should actually mean personal
I also don’t want Orbit to have one giant personality that gets sprayed across every user.
People communicate differently. Some people want short answers. Some want context. Some want an assistant that will interrupt them when something matters. Others absolutely do not.
Orbit keeps those preferences separately from factual memory, and both are inspectable and changeable.
The point of personalization should be that you have to explain yourself less over time.
Not that the system invents increasingly confident theories about who you are.
Where I want this to go
Orbit is live today but starting small. I'm bootstrapping this thing with credits which is another lesson in itself.
At launch, I’ll have 10 users who are all my friends and family, plus room for 40 more beta users. The infrastructure can handle more, but I’m being cost-conscious.
I don't know if i'll try to scale this at all, but I want to be as transparent as possible about why everyone can't join at once
Long term, I think there is something much more interesting here.
I don’t want software to automate everything. I want it to remove the super annoying coordination.
Why I’m building it in public
Building in public is scary and I haven't really done it before, I wanted to try.
I’m opening it slowly because every new user finds some assumption that seemed completely reasonable when the only users were me and a few friends.
I'm confident in my abilities but Orbit might break on beta users, sorry early adopters. I'd love to have time to relatively slowly ensure a good experience for every user.
I’d also rather find those problems in a quick controlled manner, explain what happened, and fix them than pretend the product is mature.
Some implementation and security details obviously need to stay private. But for most things, I’d rather explain what I am doing and why.
I think Orbit gets interesting if it can become much more capable without becoming mysterious or difficult to control.
And if I can’t do both, there’s still work to do.
Thanks for listening to my Ted Talk, if you read this far attach the word 'slingshot' to your beta access form and i'll move you up the list :)
- Kaustubh