⏱️ Lectura: 11 min

An unemployed developer who doesn’t know a single line of JavaScript just published an AI virtual pond where anyone can sit and watch fish alongside strangers, without signing up or paying anything. The site is called koi.rest, and behind it is Paul Glushak, known in the community as hxii.

📑 En este artículo
  1. TL;DR
  2. What happened
  3. Context and background
  4. The architecture of the AI virtual pond
  5. How to try it
  6. Impact and analysis
  7. What’s next
  8. Frequently Asked Questions
    1. What is koi.rest?
    2. Do I need to create an account to enter?
    3. What AI tools was koi.rest built with?
    4. Are the fish I see other real users?
    5. Can I set a custom time on the timer?
    6. Who is Paul Glushak (hxii)?
  9. References

The story matters because it sums up something that’s happening more and more often in 2026: someone with a clear idea but without the technical skills to execute it uses a language model as an intermediary, and ends up publishing something real instead of leaving it shelved.

TL;DR

  • Koi.rest is a virtual koi pond created by developer Paul Glushak (hxii) to reduce stress.
  • The site doesn’t require an account or registration; visitors see the same fish at the same time, with no login.
  • It includes a focus timer with options of 10, 15, 30, and 60 minutes, plus a custom duration.
  • A single button mutes all the pond’s ambient sounds at once.
  • Paul built the site with AI’s help because he doesn’t know how to code in JavaScript.
  • The idea came from a balcony zen garden that Paul never finished building in real life.
  • At the bottom of the page there’s a note where Paul asks anyone who can offer him a job to get in touch.

What happened

Paul Glushak, the developer behind the project, explains on koi.rest’s about page that he’d had an idea rattling around for a while: recreate his balcony zen garden digitally, still unfinished in real life. The problem was simple: he didn’t know how to code in JavaScript and, in his own words, didn’t have the capacity to learn it at that point.

Instead of waiting until he had the full technical knowledge, he decided to use AI to write the code while he handled everything else: design, sound, reference research, testing, and adjustments. The result is koi.rest, a space where multiple visitors share the same view of a koi pond, with no accounts, no ads, and no goal other than sitting in silence for a while.

Context and background

The site itself tells the personal context behind the project. Paul describes himself as a developer, an explorer, and someone with ADHD. He’s been unemployed since August 2026, something that, as he writes himself, added to the stress that had built up over the past year. The AI virtual pond was born, in part, as a way to manage that anxiety without relying on a commercial mindfulness app.

The original idea, a physical zen garden on his balcony, is still unfinished. Paul admits he let the digital version sit for months for the same reason that stops many developers with niche ideas: there isn’t enough time, knowledge, or energy to build the whole project from scratch. What changed was the approach: he stopped chasing the perfect version and accepted publishing one that simply worked.

That shift connects to a pattern already visible in indie hacker communities. People who would once have needed months of learning a new language now put together a working product by describing what they want and reviewing the result step by step. Paul sums it up on his own page: he wanted good instead of perfect, and he focused on adjusting, sketching, researching, questioning, and testing, without being the one who wrote the code directly.

Koi.rest doesn’t require registration; every visitor sees the same pond at the same time. Foto de Radowan Nakif Rehan en Unsplash

The architecture of the AI virtual pond

Koi.rest runs entirely in the browser. The main page shows the pond, a reference clock (a time like 15:00 is visible on the site), a sound control that lets you mute everything with one button (Mute all), and a timer selector with options for 10, 15, 30, and 60 minutes, plus a custom duration.

Although Paul didn’t publish the source code or architecture details, the site’s behavior (continuous animation of several fish, ambient sound, a session shared among visitors) is consistent with a typical combination of animated canvas or SVG for the koi, plus setTimeout to handle the focus timer. Any developer with basic knowledge of the Canvas API can put together a simplified version of the same concept in a short while.

<canvas id="pond" width="600" height="400"></canvas>
<script>
  const ctx = document.getElementById('pond').getContext('2d');
  function drawKoi(x, y) {
    ctx.clearRect(0, 0, 600, 400);
    ctx.fillStyle = '#f2994a';
    ctx.beginPath();
    ctx.ellipse(x, y, 20, 8, 0, 0, Math.PI * 2);
    ctx.fill();
  }
  drawKoi(300, 200);
</script>

This first block draws a single static koi on a 600×400 pixel canvas. It’s the starting point before animating it: it doesn’t move yet, it just confirms that the canvas and the 2D context are set up correctly.

For the fish to actually swim, it needs to be moved on every frame with requestAnimationFrame, plus a timer that mimics koi.rest’s session logic:

class KoiFish {
  constructor(x, y, speed) {
    this.x = x;
    this.y = y;
    this.speed = speed;
    this.angle = Math.random() * Math.PI * 2;
  }

  swim(canvasWidth, canvasHeight) {
    this.x += Math.cos(this.angle) * this.speed;
    this.y += Math.sin(this.angle) * this.speed;
    if (this.x < 0 || this.x > canvasWidth) this.angle = Math.PI - this.angle;
    if (this.y < 0 || this.y > canvasHeight) this.angle = -this.angle;
  }
}

const pond = Array.from({ length: 6 }, () =>
  new KoiFish(Math.random() * 600, Math.random() * 400, 0.6)
);

function focusSession(minutes, onDone) {
  const ms = minutes * 60 * 1000;
  return setTimeout(onDone, ms);
}

focusSession(15, () => console.log('focus session finished'));

Each KoiFish instance stores its position, speed, and angle; the swim() method moves it slightly on every frame and bounces it off the canvas edges. The focusSession function reproduces, with a simple setTimeout, the 15-minute timer that koi.rest offers natively.

Koi.rest doesn’t publish performance metrics or the number of simultaneous visits it supports. To evaluate an animation like this with your own data, any developer can open the browser’s DevTools, go to the Performance tab, record a few seconds of the animation, and check the average fps reported by the recorder: a 2D animation with six to ten elements should stay close to the monitor’s refresh limit with no visible drops.

💭 Key point: what’s interesting about koi.rest isn’t the technique (canvas and setTimeout are basic), but that someone who doesn’t know JavaScript reached that result by guiding an AI step by step, without writing the code himself.
flowchart TD
    A["Idea: balcony zen garden"] --> B["Paul doesn't know JavaScript"]
    B --> C["Writes prompts to an AI"]
    C --> D["Tests, adjusts, discards"]
    D --> E["Publishes koi.rest"]

How to try it

Getting into koi.rest doesn’t require installing anything: it opens in any modern browser, you click enter, and you’re already inside the pond alongside other visitors connected at that moment. The sound control and the timer are visible from the first second.

For a developer who wants to clone the idea and experiment with their own version, a local static server is enough. No framework is needed:

# macOS and Linux
python3 -m http.server 8000

# Windows (PowerShell or cmd)
py -m http.server 8000

# Any operating system with Node.js installed
npx serve .

All three commands spin up a local HTTP server (on port 8000, or whatever serve assigns) and serve the index.html file from the current folder, enough to test an animated canvas like the one in the previous example.

Koi.rest’s timer offers four fixed durations plus a custom option. Each one fits a different use case:

DurationWhen to use itAdvantageLimitation
10 minutesShort break between tasksFits into any work blockBarely enough to slow down
15 minutesCutting off a spike of anxietyEnough time to breathe and disconnectCan feel short if stress is high
30 minutesBreak between study or deep work blocksAllows for a real disconnectCompetes with the time available in the day
60 minutesLong background sessions while working on something elseWorks as extended background noiseCan be forgotten and not stop when it should
CustomAny specific routine of the userAdjusts to particular needsRequires the user to set the number manually

💡 Tip: if you’re going to clone the idea, start with the timer logic using setTimeout before adding the fish animation, it’s easier to debug a counter than a moving animation.

Impact and analysis

Koi.rest’s timer ranges from 10 to 60 minutes, with a custom option. Foto de Emile Perron en Unsplash

Koi.rest isn’t a product with a business model: it doesn’t sell subscriptions or ask for personal data. Its value lies elsewhere, in showing that the barrier to publishing something with a polished interface has dropped notably now that AI can handle the part that used to require months of prior study.

That phenomenon is already recognizable in development communities: personal projects, usually small and non-commercial, that exist because someone decided not to let a lack of technical knowledge hold back an idea. Koi.rest fits that pattern. It doesn’t automate a business process or solve a complex technical problem; it solves something much simpler, giving a quiet place on the internet to anyone who needs it for ten, fifteen, thirty, or sixty minutes.

For the developer ecosystem in Latin America, the case works as a concrete reminder. You don’t need to master JavaScript, Canvas, or WebGL to publish something functional today. What you do need is judgment to decide what to build, how it looks, what sounds to use, and how the experience should feel. That design and curation work, as Paul tells it on the project’s page, was entirely his own.

What’s next

Paul makes clear on the site that he’s still looking for work and leaves a contact channel for anyone who can offer him a position. There are no announcements of new features for koi.rest or a public roadmap; the project is presented as finished in its current form, with no promises of expansion.

What does remain open is the pattern it represents. How many similar projects, small, personal, with no ambition to scale, will end up published by people who would once have been stopped by the code barrier is a question with no answer yet. Koi.rest is a single case, but the logic behind it (a clear idea, AI as an intermediary, real publication instead of a pending note) keeps repeating more and more often in forums like Hacker News and indie hacker communities.

📖 Summary on Telegram: View summary

Try it yourself: go to koi.rest, start a 15-minute timer, and see whether Paul’s AI virtual pond delivers on its promise.

Frequently Asked Questions

What is koi.rest?

It’s a website that simulates a pond with koi fish, designed as a shared calm space among the visitors connected at that moment, with ambient sound and a focus timer.

Do I need to create an account to enter?

No. Koi.rest doesn’t require registration or login, you enter directly with the enter button from the main page.

What AI tools was koi.rest built with?

Paul Glushak doesn’t specify the model or tool he used. On the about page he only explains that he relied on AI to write the code because he doesn’t know JavaScript.

Are the fish I see other real users?

As the site itself describes it, the visible koi represent other people visiting the pond at the same time, they’re not randomly generated fish unrelated to the active audience.

Can I set a custom time on the timer?

Yes. Besides the fixed options of 10, 15, 30, and 60 minutes, koi.rest lets you set a custom duration before entering the pond.

Who is Paul Glushak (hxii)?

He’s the developer who created koi.rest. He describes himself as an explorer and someone with ADHD, and states on the site that he’s been unemployed since August 2026 and is looking for work.

References

  • koi.rest: official site of the virtual pond and about page with Paul Glushak’s story.
  • MDN, Canvas API: official documentation of the API used to draw and animate 2D graphics in the browser.
  • MDN, requestAnimationFrame: official reference for the method used for smooth animations in JavaScript.
  • Wikipedia, Japanese garden: context on the zen gardens that inspired Paul’s original project.

📱 Enjoy this content? Follow @programacion on Telegram for daily tech content in Spanish: quick summaries, fresh content every day.

Imagen destacada: Foto de Jayde Keroi en Unsplash

Categories: Programación

Andrés Morales

Developer and AI researcher. Writes about language models, frameworks, developer tooling, and open source releases. Covers ML papers, the tech startup ecosystem, and programming trends.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.