Inspiration
when I moved from North India to South India for my studies and struggled with the local language barriers. While people were willing to help me learn, everyone had busy schedules - including myself - making it difficult to find consistent time to practice together. I realized I had learned most of my English through casual chatting rather than formal methods. Since people spend so much time on chat apps nowadays, I thought: why not learn languages through conversations with a friendly AI chatbot that's always available? I wanted to build this solution for a while but lacked good resources and had limited technical knowledge. After discovering Bolt, I experimented with some projects but never completed this particular idea. When I learned about this hackathon, I knew it was my best opportunity to finally build the language learning tool I wished I had during my early days in South India.
What it does
VaniBot is an AI-powered language learning platform tailored to Indian languages. It enables users to practice real-time conversations with AI tutors across multiple levels of fluency, using natural chat interfaces enhanced with voice input/output, translation assistance, and pronunciation correction. The system dynamically switches between cloud-based and offline AI models to ensure seamless learning regardless of connectivity. By integrating structured lessons, interactive games, and personalized learning memories, VaniBot creates a holistic, immersive environment that adapts to each user’s goals and progress.
How we built it
VaniBot was built using a modern, modular architecture optimized for both flexibility and performance with Bolt.new. On the frontend, we used React with Vite and TypeScript, styled using Tailwind CSS, and implemented offline support via service workers to make the app installable as a Progressive Web App (PWA). Navigation and global state (auth, translations) are managed using React Router and Context API.
The backend is powered by Supabase Edge Functions using Deno, allowing for serverless function execution to handle chat orchestration and AI provider routing. We abstracted AI integration with a BaseAIProvider class and implemented concrete providers for OpenAI, Gemini, Hugging Face, and Ollama (local inference). Chat requests dynamically route to the optimal provider based on availability and cost. The Supabase PostgreSQL database stores all persistent data, including profiles, chat logs, and progress metrics. For offline-first design, we use LocalStorage and IndexedDB to cache sessions and sync later.
Other features include speech I/O (Web Speech API and Whisper/Ollama), session memory for personalized learning, gamified exercises, and detailed learning analytics dashboards.
Challenges we ran into
- First was the UI all the themes and feel of the UI.
- Connecting LLMs and prompting the backend in a such way so that it can give response.
- I thought to make it completely offline if needed so i tried adding ollama models which installed locally.
- Managing database for local storage for more privacy ## Accomplishments that we're proud of
- Successfully implemented a standalone model which can use API keys of Hugging Face , Gemini, OpenAi and the best part is it can run on local LLMs like llama and Gemini models using Ollama serve.
What we learned
I got the chance to learn about various skill like the most important is prompt engineering. Then I got to know about Front End tech like ReactJs and Typescript which was very new to me. Also got the change to learn about databases and authentications which was great learning form me. Got to know about tailwind which is really amazing framework to learn and it makes styling very simple and easy in webpages. Learnt about implementing LLMs in project and also how to manage apis in projects. Apart from technical thing i also got to know about me and my creativity and Determination toward the goals i was setting.
What's next for VaniBot : AI-powered language learning tool
- Building my own LLMs specific for Indian Languages.
- Building algorithms to identify context of Indian language.
- Next we will try to build and mobile application of it to reach maximum and removes hindrance.
- We will try to include more Indian languages.
- Personalized Protected Diary
Built With
- apis
- bolt
- langchain
- netlify
- node.js
- ollama
- react
- sqlite
- supabase
- tailwindcss
- typescript
- vite
Log in or sign up for Devpost to join the conversation.