SVG Draw with Vibe Coding

July 26, 2026

Vibe Coding: "a software development approach where you use plain language prompts to direct an AI to write, debug, and build applications while you focus purely on the high-level goals and creative vision" – IBM

I wanted to experiment with vibe coding. I've used AI before to help troubleshoot issues, set up basic projects, and handle repeatable tasks — things like putting a column of data into an array, or going through several HTML pages to swap out the same bit of code. But I hadn't really tried letting AI drive a whole project before.

For this one, I picked a programming language I already knew, so I could actually keep an eye on how it was working and update the code myself when needed.

To land on a project idea, I looked through some lists of suggested practice apps and landed on a basic drawing app. From there, I came up with a few requirements:

  • Vanilla JavaScript with client-side rendering, so I could add it to my website
  • Needed to save the file as an SVG
  • Basic drawing — lines, a few shapes, and the ability to fill them
  • Ability to add a background color of the user's choice
  • Ability to upload an image as the background, so people could draw on top of it
  • Whatever else I could sneak in before I ran out of free tokens in Copilot

I gave Copilot a basic prompt covering the first two bullet points just to see what it would come up with. Then I added the third, which took a fair amount of back-and-forth to get working correctly. The fourth bullet came together great on the very first prompt. The fifth one worked too, but it broke the grid background — a few more rounds of back-and-forth, plus some manual tweaking on my end, finally got it working.

Along the way I also added:

  • A type tool — originally you had to type your text first and then click where you wanted it placed, so I changed it so you click first and then type right on the screen
  • A formatting toolbar for the text tool
  • A move tool that doubles as a select tool, letting you change the fill and stroke color of an object
  • A resize tool — this one's still a bit finicky. It resizes faster (bigger or smaller) than you'd expect, so it's hard to get precise control.

By this point, I'd already hit the "90% of your monthly tokens used" warning.

A few things I learned — or want to plan better for next time:

  • Put together better project documentation upfront, and let the AI know from the start exactly what we're building
  • Be as precise as possible when writing prompts, and reread them thinking about how else they could be interpreted
  • When I'm not sure exactly what I want, start with the basic idea and build from there

Next month, I'll tackle another JavaScript app using what I learned here, and see if I can clean up the process with fewer hiccups along the way.

Git Link: https://github.com/amacher/svg_draw

Link to App page: https://www.lynnamacher.com/svg-draw/

Pin It on Pinterest

Share This