This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend
What I Built
I built Say It Nicely for my friend Aaditya. Writing a polite message to a teacher or a senior is something many students find hard, so I made a tool that writes the first draft for you.
You type a rough message like "sir i couldnt submit assignment on time because i was sick, can i get few more days". You choose who it is for (professor, friend, family), the tone and the language (English, Hinglish or Hindi). It writes a polished version. It is told never to add excuses or facts you did not write.
What Aaditya said:
The website is simple and user friendly and the appearance look clean with good choice of colours. I liked the Say it nicely feature, it's a creative and useful idea. Great work done.
Demo
https://saurabhh-cloud.github.io/say-it-nicely/
It needs a laptop or desktop with Chrome or Edge, because phone browsers can't run the model yet. The first load downloads the AI model (about 1.5 GB) once. After that it works offline.
Code
https://github.com/saurabhh-cloud/say-it-nicely
How I Built It
The app is a single HTML file with no backend. It uses WebLLM, which runs an open-weight model directly on the user's GPU through WebGPU. The default model is Google's Gemma 2 2B, and a dropdown lets you switch to Qwen 2.5 1.5B or Llama 3.2 1B.
A system prompt carries the rules: keep the exact meaning, never invent facts, match the chosen tone and language, and output only the final message. The answer streams in word by word.
I'm a first-year Maths student learning HTML, CSS, JavaScript and Python, and this was my first project built around an AI model. I built it with the help of an AI coding assistant (Claude), then deployed it and shared it with Aaditya myself.
What I learned:
- An AI model can run entirely in a web browser, with no server or API key.
- The system prompt controls behaviour, so a clear rule like "never add facts" matters a lot.
- Small models can still make mistakes, so the app reminds users to read the message before sending.
- It doesn't work on phones yet, so I added a warning for phone users.
Why Does Open Innovation Matter?
- Privacy: People paste personal things into a message helper: health, family, money. Because the model runs on the user's own device, those words never reach a server I don't control.
- Works offline: After the one-time download the model is cached in the browser, so it works with no internet.
- Free: There is no API key, subscription or usage bill, so I can share it with my whole class.
- Swappable: A closed API would let me use one model only. With open weights I can switch between Gemma, Qwen and Llama in a dropdown and change the behaviour by editing the prompt.
My Agent Session
I built the first version with Claude, an AI coding assistant. I did not record the session with DevRelay.
Prize Categories
- Best Use of Gemma: the app runs Google's Gemma 2 2B locally in the browser.

Top comments (0)