Product
MedusaWatch is a web app that helps you choose, before leaving home, which of Mallorca's beaches have the lowest estimated chance of jellyfish.
Paula RodasSenior Product Designer & Product Builder· open to new projects
Work
What can I build in two days if I start from a well-defined PRD and use AI to speed up the work? Design and development of a web prototype that turns wind data into an estimated jellyfish risk for Mallorca's beaches.
11 min read
MedusaWatch is a web app that helps you choose, before leaving home, which of Mallorca's beaches have the lowest estimated chance of jellyfish.
The exercise started from a specific question: how far could I get by combining a well-defined PRD, my front-end knowledge, and AI's ability to execute?
My role covered product definition, UX/UI, directing the work with AI, frontend, QA, and launch. AI proposed options and sped up production; I decided what to build, how it should behave, and when the result was good enough to move on.
227 beaches in Mallorca, each with its own wind-based estimate.

OVERVIEW
MedusaWatch is a web app that helps you choose, before leaving home, which of Mallorca’s beaches have the lowest estimated chance of jellyfish. It combines each beach’s orientation with wind data and shows the risk level on a map.
I built the first working prototype in two days, starting from a specific need and a defined PRD. The days after that went into fixing bugs and refining the UX and UI, especially on mobile. My role covered product definition, UX/UI, directing the work with AI, frontend, QA, and launch. AI proposed options and sped up production; I decided what to build, how it should behave, and when the result was good enough to move on.
ORIGIN
The project came from connecting a real need with local knowledge. A friend planning a trip to Mallorca told me she was worried about running into jellyfish and didn’t know how to see it coming. At the same time, I remembered something a friend from Menorca had told me: locals watched the wind direction to decide which coast to go to and lower their chances of finding jellyfish.

That local knowledge became a product hypothesis. Before building, I ran some checks and did early AI-assisted research to understand the link between wind, coastline orientation, and possible jellyfish build-up, and to judge whether it could carry over from Menorca to Mallorca. The exploratory research couldn’t promise there would be no jellyfish, but it gave enough grounds to form a product hypothesis, define the problem, and turn it into a PRD.
THE CHALLENGE
The exercise started from a specific question: how far could I get by combining a well-defined PRD, my front-end knowledge, and AI’s ability to execute? The point wasn’t whether AI could generate an isolated interface. It was to test whether this way of working could take me from a defined need to a first working prototype in very little time. My job was to steer the process, understand what was built, and stay in control of the decisions.
The PRD reduced ambiguity before any code was written. It defined the problem, the main use, and a small scope:

During those same two days, I tested the idea further through traveler forums, app reviews, and competitor analysis. The research gave early support to the hypothesis and revealed an important tension: solutions based on sightings are reactive and depend on someone reporting first. MedusaWatch’s opportunity was to help people decide ahead of time.
Defined real need + clear PRD + product judgment + frontend + AI → a working prototype in two days?
AI-ASSISTED PROTOTYPING
AI significantly cut the time it took to reach a first tangible version: it generated implementation proposals, explored alternatives, and turned decisions into code at a speed I wouldn’t have reached working alone from scratch.
But faster execution didn’t remove the need to know what was happening. My front-end knowledge is what let me read the overall logic, judge whether each proposal was feasible, and steer the next iteration.
I didn’t need to write every line by hand to stay responsible for the result. I did need to understand the pieces, set good constraints, notice when a solution didn’t answer the problem, and check it in the browser.

Define → ask for a proposal → understand → evaluate → redirect → test → learn
WIND-TO-RISK MODEL
Showing wind direction and speed would have left the interpretation to the user. The product needed to turn that data into a useful answer: which beaches have a lower or higher estimated risk right now.
The model compares the wind direction with each beach’s orientation and adds wind speed as an extra factor. The result comes in three levels (low, moderate, and high) so the map can be scanned at a glance.

The key decision wasn’t to build a weather map. It was to use the data as raw material for an action: wind direction → relation to the beach’s orientation → estimated level → comparing options. This took the product from a regional reading to a specific signal for each of the 227 indexed beaches.
DESIGNING UNCERTAINTY
MedusaWatch doesn’t detect jellyfish or confirm sightings: it estimates a risk level from the wind. Turning that calculation into clear colors made the product more useful, but it could also suggest more certainty than the evidence supports.
To keep that difference visible:

The disclaimer wasn’t a legal add-on placed at the end. It was part of the experience: it had to inform without blocking every visit or competing with the main action.
ARCHITECTURE
The goal was to learn and launch, not to build more infrastructure than needed. I chose Vanilla JavaScript, HTML, and CSS, with no framework or build step. That kept the product logic visible while I was learning, reduced dependencies and setup, let me publish a static app on GitHub Pages, and let me work with external APIs without adding a premature backend.
The app was split into modules with separate responsibilities: orchestration, beach data, map, interface, and utilities. That structure made it easier to understand AI’s proposals, review changes, and fix one part without losing sight of the whole.

Simplicity didn’t remove external failures. The Overpass API can respond slowly, or not at all. To keep a service problem from leaving the screen empty, I added a 24-hour beach cache in localStorage and a fallback to earlier data when needed.
Less infrastructure → more understanding → faster iterations → a publishable product
RESPONSIVE DESIGN
The map, search, beach list, legend, and time control had to work together on very different screens. The most likely context was mobile: checking the app before heading out or while planning the day. So I gave the mobile experience special priority and worked with two layouts:
The features stay the same, but their hierarchy changes. On desktop, the panel supports exploration; on mobile, it appears when the person needs it and gives the map back the focus when closed.


To complete the journey, I added a Directions button that opens each beach’s location in Google Maps. The time control shows how the risk may change over the next 24 hours, so people can plan their beach ahead of time. This feature came in a later iteration, once it became clear that the decision isn’t always made in the moment.
QA & PUBLISHING
The first version proved the idea could work. Turning it into something publishable took a different kind of work: reviewing states, testing behaviors, finding bugs, and deciding what had to be fixed before launch.
During the pre-launch review, I:
Added a visible error state for when an API failed.
Fixed a calculation that showed the water temperature for the first hour instead of the current hour.
Added a clear description of the product and when it updates.
Connected the legend that explains the risk levels.
Built in the first-visit disclaimer and permanent access to it.
Reviewed the public documentation and legal notices.
Real need → early research + PRD → prototype in two days → iteration → QA → launch on GitHub Pages

RESULT
MedusaWatch went live on GitHub Pages on May 25, 2026. I didn’t run a launch or distribution campaign, so this result shows building and publishing, not adoption yet.
The exercise proved the idea was technically feasible and turned a two-day prototype into a publishable product, while I kept a clear understanding of the main decisions. It isn’t a shift toward “doing everything”: it’s a natural extension of how I work, understanding what an idea needs to move forward and learning what I need to shape it. Here, AI expanded what I could build, and frontend let me steer it.
I don’t have adoption or user impact results to share yet. The app is live, but formal validation with real people is still pending.
Explore MedusaWatch (opens in a new tab) · Review the code (opens in a new tab)
NEXT STEPS
The product starts from a reasoned hypothesis and exploratory research, but a working prototype is not the same as a validated problem. The next tests with real users will need to check:
Other product improvements still on the list: map accessibility, a contrast review of some indicators, multilingual support, an installable version, and expansion to other islands.
LEARNINGS
The PRD set the limits of the problem, the main action, and what had to stay out. AI sped up execution because it had clear direction.
My knowledge let me read the logic, ask better questions, spot oversized proposals, and approve only what I could understand and verify.
API failures, loading states, caching, the right timestamp for the data, and mobile behavior became visible when working with a real product.
MedusaWatch confirms the idea can be built and published. The pending tests will need to show whether it helps people decide, and what has to change to make it truly useful.
Next case study
Base · From a product grid to a brand experience