Libra - About the Project
Inspiration
More books are published each year than ever before, yet the tools available to navigate that abundance remain shallow. Ratings flatten nuance, blurbs are written to sell, and algorithms optimize for popularity over personal fit. Libra was built to close that gap - reasoning about taste the way a trusted, well-read friend would.
What It Does
Libra is a mobile-first, AI-powered personal literary critic. Users build a taste profile through a brief onboarding flow, and Libra evaluates any book against it on demand - delivering a clear, honest verdict on whether it's worth their time.
How We Built It
We used Next.js App Router and TypeScript, styled with Tailwind CSS v4 and shadcn/ui, with Framer Motion handling the loading and results animations. The flow begins when a user snaps or uploads a book cover: a Google Gemini vision call identifies the title, author, and description, then a second call generates a structured, spoiler-free critique tailored to the user's reader profile and chosen critic persona. Each critic - the Professor, the Librarian, or the Gen Z Reviewer - has a distinct writing style paired with a dedicated ElevenLabs voice, so the experience extends beyond text into a full personality. On the engineering side, API keys are secured through Next.js route handlers, the LLM layer is hardened with JSON-only prompting and parsing fallbacks, and reader preferences are stored in localStorage to avoid database overhead. Users can continue the discussion through follow-up conversations with their critic via an additional Gemini endpoint.
Challenges We Ran Into
Modeling subjective taste was the core difficulty. Moving beyond genre labels toward reasoning about prose style, pacing, and tone required significant prompt iteration. The cold-start problem
- producing useful results before a user has any history - was addressed through a structured onboarding experience that bootstraps a taste profile from just a handful of reactions.
What We Learned
- We learned to properly handle edge cases
- Deal with the scope creep, which is important
- Handle unexpected bugs in a timely manner
What's Next for Libra
A social layer for sharing taste profiles, a "currently reading" mode with contextual insights, and integration with public library systems for real-time availability.
Built With
- elevenlabs
- gemini
- javascript
- next.js
- tailwind
- typescript

Log in or sign up for Devpost to join the conversation.