🧠 Inspiration
We had a free evening, no party, and a couple of beers. So we thought: Why not build something fun in a few hours?
We weren’t aiming to build the next big thing. We just wanted to tinker with voice agents, explore what password protection in a chat interface could look like, and see how far we could go with a small idea and tight time limit.
The question we asked ourselves was simple: How can we protect sensitive information inside a chat conversation using a password—without making the experience clunky?
💬 What it does
Voicy is an AI-powered chat interface that lets users interact naturally—while protecting access to secure information.
It works like this:
- Users can chat freely with the AI assistant.
- When they make a request that touches sensitive or private data (like "What’s in my July 1st schedule?"), a custom form pops up asking for a password.
- If the password is correct, the AI reveals the protected content. If not, access is denied.
In addition to this gated access flow:
- Chat history is preserved using Unstorage.
- Users log in via GitHub OAuth for simplicity.
- We’ve laid the groundwork for future voice input, even though that part’s not active yet.
The whole thing is built for clarity, simplicity, and modularity.
🛠️ How we built it
We started with the Nuxt UI Pro chat template, then modified and extended it to support secure prompts. We initially tried using Cloudflare Workers AI, but ran into platform issues. We later switched to a more stable setup using the OpenAI API for chat completions.
Key tech stack:
- Nuxt 3 + TypeScript
- Nuxt UI Pro (with chat template)
- Drizzle ORM
- Unstorage for real-time message history
- GitHub OAuth for authentication
- OpenAI API for AI responses
- ESLint, PNPM, H3, and Vite for smooth development
🚧 Challenges we ran into
We joined the hackathon very late and had around 3 hours total to build.
The biggest challenge was getting Nuxt Hub to work correctly with GitHub OAuth and Unstorage in the short time we had. We also brainstormed how password protection in chat could work naturally, and implemented a basic secure prompt flow—but had no time left for voice integration or advanced features.
✅ Accomplishments we're proud of
- We built and deployed a working prototype under tight time pressure
- Integrated GitHub OAuth out of the box
- Implemented secure prompts inside a chat interface
- Created a clean, modular UI using Nuxt UI Pro
- Gained hands-on experience with Nuxt Hub and rapid prototyping
- Most importantly: we had a blast doing it—sitting in a garden, drinking a beer, and just building for the fun of it
📚 What we learned
- How to use and extend the Nuxt UI chat template
- How to connect Nuxt Hub, Unstorage, and GitHub OAuth
- How to build custom chat components with conditional logic (e.g., password prompts)
- How to quickly test and prototype secure access flows in a conversational setting
🚀 What's next for Voicy
- Add voice input using Whisper (for both chat and password fields)
- Enable secure content storage, not just access
- Expand the project for use in teams or companies, where users can freely chat—but only those with a password can see protected content
- Evolve Voicier into a secure knowledge-sharing tool where permissions are handled conversationally, and access is password-protected inline
We believe this could become a lightweight, privacy-aware alternative to team chat tools—where everyone can collaborate, but sensitive data stays protected by design.
Built With
- claude-code
- nuxt
- nuxt-ui-pro-chat-template
- openai
- typescript
Log in or sign up for Devpost to join the conversation.