💡 what inspired you to build this?
we’re high school students who use chatgpt all the time—for emails, linkedin posts, github docs, you name it. but we kept finding ourselves flipping back and forth between tabs just to get help from it. so we decided to build something that removes that tiny but constant friction: a chrome extension that brings llm assistance directly into your workflow.
🛠 what does it do?
meet vibetype.
vibetype is a chrome extension that pops up whenever you highlight text. you can use it to quickly improve, rewrite, or expand your writing. or, open a chat sidebar that can reference multiple tabs at once—so if you're writing a linkedin post about an award, and the details are in your email, vibetype will look at your draft, that email, and even your past posts, and help you craft something clean that still sounds like you.
core features:
- quick toolbar when you highlight text
- works on any website (gmail, linkedin, google docs, etc.)
- lets you attach multiple browser tabs for context
- adapts based on what you're writing (post vs. email vs. doc)
🧱 how did you build it?
stack:
just html, css, and javascript.
chrome extension setup:
- used manifest v3
- built a sidebar and floating toolbar
- used chrome’s messaging api to sync between tabs
- shadow dom to keep our ui clean and conflict-free
context handling:
- custom content parsers for websites like gmail
- realtime tab-to-tab communication
- smart context memory to switch smoothly between use cases
🧩 what challenges did you run into?
- making it work across a bunch of sites with different setups (gmail’s dom was a pain)
- dealing with chrome’s content security policies when injecting ui
- syncing context across tabs and keeping it stable
- building a ui that doesn’t break other stuff on the page
- keeping everything fast + clean without annoying the user
🏆 what are you proud of?
- first time building a chrome extension (for both of us)
- actually works across sites like gmail, linkedin, github, etc.
- figured out how to extract useful content and use it well
- made a ui that feels seamless and doesn’t get in your way
- built something people actually want to use
📚 what did you learn?
- how chrome extensions really work (content scripts, background scripts, service workers)
- how to isolate ui with shadow dom
- how to handle multi-tab state and messages
- how to think about user flow when ai is involved
- the difference between just adding features vs. building something that fits into someone’s day
🚀 what’s next for vibetype?
soon:
- option to switch between models (gpt, claude, gemini)
- free and premium tiers launching in early july
- more reliable context detection and better ux
launch plan:
- free tier = basic tools (requires your own api key)
- premium = smarter context tools + model options
- doing user testing with friends and classmates before full launch
longer term:
- let it learn your writing style over time
- integrate with tools like notion, google docs, etc.
- maybe even bring it to mobile
we want vibetype to feel invisible—just there when you need it, and out of the way when you don’t.
👥 meet the team

we’re just a couple of high school students with too much time and too many tabs open.
- shayaan – grade 12, incoming math student at university of waterloo
- pranav – grade 12, incoming software engineering student at university of waterloo
- rohanth – grade 11, the brain behind all the ui stuff
- arjun – grade 11, resident debugger and the guy who somehow always finds memory leaks
we met through hackathons, school projects, and building random things at 2am. vibetype is just one of those random things that (hopefully) stuck.
Log in or sign up for Devpost to join the conversation.