Lexly
Inspiration
We kept running into words we didn't know while reading online, and the usual flow of opening a new tab to search was annoying enough that we'd just skip it. We wanted something that lived in the browser, got out of the way, and actually helped us remember words over time.
What it does
Lexly is a Chrome extension. Highlight any word on any webpage and a small popup asks if you want to save it. Click save, and it gets added to your personal dictionary. Open the sidebar to see all your saved words, click any of them to get an AI-generated definition, and search through your list.
How we built it
- Chrome Extension (Manifest V3) with a content script for the highlight popup and a side panel for the dictionary
- Node.js + Express backend deployed on Vercel
- PostgreSQL database on Supabase
- Qwen 32B via the HackClub AI API for definitions
- JWT auth, passwords hashed with bcrypt
Challenges we ran into
Chrome's Content Security Policy blocks inline event handlers in extensions, which broke a lot of our initial UI code. We had to rewrite everything using event delegation. We also ran into a DNS error on Vercel where it couldn't connect to Supabase using the direct connection URL. Switching to Supabase's transaction pooler URL fixed it.
Accomplishments that we're proud of
The whole flow from highlighting a word to seeing its definition is fast and doesn't interrupt whatever you were reading. The design also came out better than we expected for the time we had.
What we learned
Manifest V3 is strict about security and working within its constraints takes some adjustment. We also learned that serverless deployments need special care around database connections, and that getting consistent output from an LLM requires more prompt iteration than expected.
What's next for Lexly
- Saving the sentence a word appeared in for context
- A quiz mode using spaced repetition
- Word of the day notifications
- Export to Anki or CSV
Built With
- bcryptjs
- chrome-extensions-(manifest-v3)
- chrome-side-panel-api
- chrome.storage
- css
- express.js
- html
- javascript
- jsonwebtoken
- node.js
- pg
- postgresql
- sql
- supabase
Log in or sign up for Devpost to join the conversation.