A modern, responsive, and multimodal AI chatbot interface built with Vanilla JavaScript, HTML, and CSS. This project features a clean UI that supports text interactions, image uploads for multimodal analysis, and emoji integration, connected specifically to a serverless backend (Netlify Functions).
| Chatbot Interface | Multimodal Input | AI Response |
|---|---|---|
![]() |
![]() |
![]() |
| Clean UI layout | User uploading file | Bot analyzing image |
- Multimodal Support: Users can upload images along with text prompts to analyze visual data.
- Smart UI/UX:
- Auto-expanding chat window.
- "Thinking" indicator while waiting for API responses.
- Auto-scrolling to the latest message.
- Emoji Support: Integrated Emoji Mart picker for expressive messaging.
- Markdown Formatting: Basic parsing to render bold text from the AI response.
- Responsive Design: Optimized for desktop and mobile views.
- Serverless Architecture: Configured to communicate via Netlify Functions to keep API keys secure.
- Frontend: HTML5, CSS3
- Scripting: Vanilla JavaScript (ES6+)
- Icons: Google Material Symbols
- Libraries: Emoji Mart (via CDN)
- API Integration: Fetch API targeting a Netlify Serverless Function.
To run this project locally, you will need to set up the frontend and a local server environment to handle the serverless function calls.
git clone https://github.com/Otormin/QueryTheChatbot.git
cd your-repo-nameThis project interacts with /.netlify/functions/chat. You need a backend function to handle the API request to the AI provider (e.g., Google Gemini).
- Ensure you have the Netlify CLI installed:
npm install netlify-cli -g
- Create a folder named
netlify/functionsin your root directory. - Add your backend logic file (e.g.,
chat.js) inside that folder to handle the API keys and request forwarding.
Using Netlify Dev to proxy the functions:
netlify devThis will start a local server (usually at localhost:8888) where the frontend can successfully communicate with the backend function.
├── index.html # Main application structure
├── Index.css # Styling and layout
├── script.js # DOM manipulation and API logic
├── netlify/
│ └── functions/
│ └── chat.js # Serverless function (Backend logic)
└── README.md # Documentation


