This post is my submission for DEV Education Track: Build Apps with Google AI Studio.
What I Built
The Italian language is wonderful, but it has one major flaw when it comes to generative artificial intelligence: it is rich in synonyms. This is great for literature, but not for writing prompts, which should be concise. That’s why I decided to create an application that helps optimize the length of the words used.
So I chose to create a simple app that finds synonyms for words used in a prompt that are shorter in length, saving tokens. The result is a shorter prompt than the initial one, more suitable for importing into an agentic application: it is only a rough draft of a more complicated project.
Below you can see the prompt I used to generate the initial structure of my application. I didn’t use a structure designed to be sent to the model via API: I simply described in natural language what my app should have. I have never done vibe coding until now, and I don’t know if I will do it again in the future.
Please, make an app that replaces words in given sentences with
shorter synonyms to save tokens while editing prompts: it must have
a text area for writing the prompt (supporting cut’n’paste and
drag’n’drop functionalities from existing text files) and a preview
area with the result.
The output should be downloadable as a file, use Markdown for it
and consider it could be imported in Python applications by third
parties; provide the option to interactively approve/reject
every single change.
This small application uses Gemini 3 Flash to search for synonyms: my idea is to provide the same service without using LLM models, so that the only token consumption is for the final prompt. It would not make sense to save on one prompt by using a second one. Do you agree?
I only asked to support copy and paste functionality and drag and drop of existing files. Anyway, as we will see, Google AI Studio has gone further: the LLM model even suggests rewriting entire parts of the initial prompt. This is an advantage of generative AI, but it was not required.
In any case, Gemini has correctly included a review function that allows you to accept or reject the suggested changes. In my demo, I chose to accept them all, and the result was more than satisfactory. However, I would like to point out that in this experiment I used English instead of Italian.
Demo
You can access the applet for my project. I didn’t deploy it because I would have had to enable billing — and I have no intention of doing so. You will need to log in to your Google account to open the link, but I have no idea what you will see because I keep seeing the same mode.
I can easily switch between the preview and the source code, but the permissions I have granted to guests are read-only. By testing the app with the same prompt that generated it, I managed to save 261 characters, improving efficiency by 52%. You must consider that the application has gone beyond its intended purpose.
Build an app shortens text to save tokens while editing prompts: input
field to write down the prompt (with clipboard support and file
drag-drop) and result preview; exportable, use Markdown for it and
Python-compatible; interactive review.
I had asked to simply replace individual words with their synonyms, if these were shorter, but the app replaced entire phrases. This is certainly more efficient than I had requested, but it is only possible if an LLM model is used: in my long-term project, the latter will be excluded from the outset.
My Experience
I really don’t understand why Google AI Studio chose to use React as the default framework for creating applications in vibe coding mode. I mean, it would have made more sense to choose Angular, but I think it was done deliberately to follow the trends. That said…
I was impressed that the app worked on the first try. The prompt I used to generate it was not designed to be foolproof: even though I don’t do vibe coding, I know how I should direct the model to better suit my needs. I deliberately chose not to do so in order to approach the instrument as any novice would.
I could have used caps lock to highlight the most important terms, given examples of folder structures, and even specified which libraries to use. But all I needed to do was describe at a high level what I wanted in order to have a working MVP: this is very, very interesting.
On the other hand, though, I noticed that the app does not implement a package manager. Although it separates components and services into different folders, dependencies are loaded directly into HTML with one script for each. It’s not quite how I would expect to create an app with React.
If that weren’t enough, the application uses Tailwind CSS, which I didn’t explicitly request. I guess I could just change the prompt to opt out, but I would have preferred an opt-in rather than an opt-out. Compared to not using a package manager, it seems like a contradiction to me.
Downloading the sources changes things, in the sense that the configuration files and package.json for package manager support magically appear. There are still some HTML scripts that seem to load something on the front end that we could do without, namely the dependencies mentioned above.
If you like, follow me on Bluesky and/or GitHub for more contents. I enjoy networking.

Top comments (0)