I made Sophon, a minimal AI chat app for the browser. It’s like Cursor, but for tabs. Here’s what I learned about building, shipping, and trying to launch software I care about.
While this app idea is not particularly original, I’ve been highly opinionated on these types of products. Since playing around with the OpenAI API, I’ve had this vision of a cohesive chat app that interfaces perfectly with the browser. It’s to the point where this is the only thing I want to work on. Switching tabs and copy/pasting into GPT just feels wrong. It feels slow, clunky, and distracted. And while other apps do the same thing, the product never seems quite right.
Half of the apps simply don’t parse markdown or handle streaming. Other times, the browser part of the app feels like an afterthought. Sometimes I need to click to access the tab, or endure bloated features that clutter the browser. I wanted to unify the browser and chat, not glue them together. I want read and write. I want some cohesive, minimal experience.
So, I’ve tried my best. It’s certainly full of compromises (Google…), but I gave it a shot.
Here are some random notes and learnings.
On Lanching
I’ve made various Chrome extensions or websites before, but none have received any meaningful users. This is not particularly surprising, as I simply never pushed them. They had no way to market (aside from one-offs like telling my friends).
So this time, I thought through my distribution. Not that much, considering my inexperience, but I’ve tried. I think what has changed is my bravery. I remember listening to this Mark Zuckerberg quote from the Acquired Interview, that you should ship software you almost feel ashamed of. I can’t say this is quality software. There are bugs and design compromises I don’t have the skills to fix.
Honestly, it’s this or nothing. The software of my dreams will never launch anytime soon. I need the feedback loop.
This is my excuse for why I didn’t validate. Unfortunately, the excuse doesn’t convince me. I should have validated.
On Building
I thought a simple chat app would be easy to make. GPT-wrappers are synonymous with trivial, so I never expected this to be all that complex. I thought I could dev this out in a few days, and that Cursor could do most of the heavy lifting for me.
That didn’t happen. Here are some reasons why.
It’s not easy to render Markdown and LaTeX at the same time. That took a whole day.
Autoscrolling with LaTeX just does not work. Everything I have tried introduces a million UI bugs. I spent two whole days on this and just gave up.
Just trying to insert text into text boxes is pretty hard. There are so many different textareas, content editables, strange objects like Monaco, tabs, and parsing problems to worry about.
Maybe I’m missing something, but extensions are a nightmare. You can’t autofocus elements inside the sidebar on load. Extension commands need to be pressed twice on load for whatever reason. I can go on.
Figuring out how to build the sidebar and pop-up files was surprisingly hard. I never needed to debug Vite before this.
Streaming responses from POST requests is a nightmare.
The sidebar is super laggy, and I have no clue where to start debugging that.
Design is really hard.
I wonder what kind of GPT-wrappers people on Reddit are talking about. What I’ve made is honestly fairly minimal, but it has been hard. I didn’t manage chats, other models, token spend, or anything like that.
On Marketing
I’ve spent all this time making an app with the express purpose of launching well. Here’s what I plan on doing.
Hacker News, Subreddits, X.com (try to get my friends to retweet my stuff).
Things that don’t scale. Manual outreach? Posters in my university commons? Something like this.
Content Marketing (this)
Notice how this section is empty? I have.
What will my strategy be with subreddits? How am I going to not get banned (“I will not promote”)? What will I say to my friends to accumulate a retweet or two?
There’s so much I haven’t grokked. I don’t understand social media or content marketing. I have no clue what goes viral. What is cool? What will people like? Why should people download my app over other apps? How should I manage pricing? When do you quit (or continue)? What makes a copy good?
I wish there were a GPT that allowed me to iterate on content for marketing, something that gave real, honest feedback. Maybe that will be the next thing I build.
I have been exposed to what I don’t know. Thank god for that. I think if someone asked me these questions in a class, I might have an answer. But I’m not being tested on my knowledge, but my conviction.
My lack of validation is showing. My excuses grow thinner.
On Design
CSS is hard. Figma is hard. How should I structure my app? What makes something pretty? What should I name my app?
I came up with so many different names and logo designs. Half of the names were terrible. Things like “ContextChat” or “AutoChat.” They were just the app description. Those names brought me physical pain.
Eventually, I was talking to a few of my friends about startup news. The topic soon turned to Anduril and Palantir. I just stole their strategy: name your project after fictional items. I finally found something I liked.
Note: If you haven’t read the Three-Body Problem trilogy, you should.
Later, I asked myself if I could apply the same idea to my app design. I spent some time compiling a list of my favourite websites and designs and asked myself where I could go from there. I didn’t get anywhere. Lovable could have made prettier apps than the ideas I came up with. Even if I took screenshots of UI elements and just stole them all, it wouldn’t look good. I think it’s because I don’t consume enough intelligent design. I look past the objects and software in my life.
Conclusion
I’m happy I did this. I’ll definitely do it again. I like putting effort into software and the idea of making things people use. It brings me inner peace.
Here’s what I would do next time:
Actually validate. Send some cold DMs and just do it.
You need to ship. Your product will never satisfy everyone, so just put it out there.
Your marketing might bother people. Still, you can’t not market.
Taste is something to be developed, and it is worthwhile to work on it.
I think I’m at least a better dev now. I hope I’m now better at marketing, or at least know more. I’m definitely more biased toward action. When some guy at a networking event asks me what I’m building, I’ll have a better answer.
I hope you enjoy my app. Please let me know if you find any bugs or have suggestions, I’d love to fix or implement them.