From Skeptic to Believer: Building Animator with Wails (and why I was SO wrong about it!)

I thought Wails was just another Electron wannabe... turns out it's actually FASTER than running in a browser! Here's how I built a sprite animation tool in just 1.5 days.

โ€ข By Ehsan Pourhadi โ€ข
Game Development Desktop Apps

The Day I Ate My Words (and loved every bite) ๐Ÿคค

So there I was, scrolling through my usual tech feeds when I stumbled upon this article about how Wails.io is supposedly the โ€œnext Electronโ€ - faster, smaller, better, yada yada yadaโ€ฆ

My immediate reaction? ๐Ÿ™„ โ€œYeah sure, another framework claiming to be better than Electron lolโ€

I mean, come on! How many times have we heard this story? โ€œOh, weโ€™re gonna revolutionize desktop apps!โ€ - meanwhile itโ€™s just another wrapper around a browser engine with fancy marketing.

My defense walls went UP immediately. In my head I was like: โ€œNo way they can do better than an embedded browserโ€ and โ€œThis is probably just hype from some Go fanboys.โ€

And then I tried itโ€ฆ

*F**** HELL! IT WAS FAST! ๐Ÿš€

Like, REALLY fast. Not โ€œoh itโ€™s slightly betterโ€ fast - Iโ€™m talking about โ€œholy crap why is this smoother than running in Firefox?!โ€ fast.

I donโ€™t even care about the backend part at this point (spoiler: I barely use it lol). This was just an incredibly fast way to pack ANY web application into a native one!

Easy install โœ…
Good boilerplate for React + TypeScript โœ…
Actually works as advertised โœ…

The Frontend Rabbit Hole ๐Ÿ•ณ๏ธ

Recently Iโ€™ve been playing A LOT with animations on the web - not with a game engine, but mostly with pure JS and CSS. I saw some tutorials on how to make a top-down game using ONLY JavaScript and CSS, and honestly? Iโ€™ve been obsessed.

I even made a tiny easter egg on my website - added some pixel world thingy using spritesheet I found from itch.io. Itโ€™s probably way too hidden but hey, thatโ€™s what makes it fun! ๐Ÿ˜„

Pixel World Easter Egg My little pixel world easter egg - try finding it on my site!

But hereโ€™s where it gets interestingโ€ฆ I found out you can make sprite sheets with AI now! ๐Ÿค–

BOOM! I tried a bunch of different prompts to get good working results, experimenting with Gemini and other AI tools. But hereโ€™s the thing - I wanted to SEE the animations, not just imagine how theyโ€™d look.

And thatโ€™s how this app was born! ๐Ÿ’ก

The Idea: An App That Actually Makes Sense

I wanted something simple: an app where you can generate HTML & CSS and GIFs from a sprite sheet.

The workflow I imagined:

  1. Select an image (your sprite sheet)
  2. Configure your grid settings
  3. Preview different animations from the same file
  4. Export them into different CSS classes
  5. Profit! (well, satisfaction at least ๐Ÿ˜…)

I added some other features while I was testing the AI-generated images from Gemini and figuring out the export process.

The Build: Surprisingly Smooth!

Hereโ€™s the crazy part - I literally copied the frontend React components from one of my other projects, dropped them into the Wails frontend, and BOOM!

Just needed to do some cleanup and figure out how to build it on GitHub Actions. Thatโ€™s it!

Timeline breakdown:

  • Frontend: ~1 day
  • Backend: ~0.5 day (and Iโ€™m not even using it much! ๐Ÿ˜‚)

The app has some pretty neat features:

Core Features I Built:

  • Image upload & grid detection - automatically figures out dimensions
  • Advanced animation config - adjustable columns/rows, margins, manual positioning
  • Multi-animation support - handle multiple animations in one sprite sheet
  • Real-time preview - see your animations as you configure them
  • Export madness - CSS, HTML, ZIP files, even high-quality GIFs!
  • Project management - auto-save, import/export settings

Animator Interface The main interface - clean and functional

Animation Preview
Real-time preview window with export options

Code Export Generated CSS and HTML - ready to copy-paste!

The Surprise: Better Than Browser Performance! ๐Ÿ˜ฑ

And hereโ€™s the kicker - to my surprise, it actually runs BETTER in Wails than in Firefox!

Less memory usage = faster and snappier app. I was NOT expecting that. Like, at all.

The whole thing just felt more responsive, more native. Itโ€™s like having a web app that doesnโ€™t feel like a web app, you know?

I donโ€™t use the backend functions at all right now (everything happens in the frontend), but maybe Iโ€™ll move the ZIP creation and GIF generation to the Go backend later to make it even faster and more stable. But honestly? This works SO good already.

Whatโ€™s Next? (Spoiler: AI Integration!) ๐Ÿค–

Take the app to the next stage? Maybe!

Whatโ€™s next on my mind: integrate the image generation API directly into the app so you can generate AND animate in the same place. One-stop-shop for sprite creation and animation.

But right now I donโ€™t really want to set up payment systems for a side project (this is just for fun!), and those API calls are NOT cheap! ๐Ÿ˜…

For now, Iโ€™m super happy using this app to generate sprite sheets with CSS. Here are some examples Iโ€™ve been playing with:

๐Ÿ”ฅ Fire Animation - Perfect for game UI elements

Check out this fire animation I generated with the tool! This is exactly the kind of stuff that gets me excited about sprite animations:

Live fire animation - smooth CSS keyframes!

Generated with Animator - perfect loop, clean code!

The CSS generated is super clean too:

.sprite-row-1 {
	width: 192px;
	height: 172px;
	animation: play-row-1 0.7s steps(7) infinite;
}

@keyframes play-row-1 {
	from {
		background-position: 0px 0px;
	}
	to {
		background-position: -1344px 0px;
	}
}

๐Ÿƒ Character Walking - Classic 8-bit style movement
โš”๏ธ Attack Sequences - Combat animations for indie games

(More examples coming soon! Iโ€™m having too much fun with this tool! ๐Ÿ˜‚)

Tech Stack & Lessons Learned

Frontend:

  • React 18 + TypeScript (because 2025 and weโ€™re not animals)
  • Vite for blazing fast development
  • Tailwind CSS (my beloved โค๏ธ)
  • Lucide React for icons
  • gif.js, jszip, file-saver for the heavy lifting

Backend:

  • Go with Wails framework
  • Cross-platform builds (Windows, macOS, Linux)

Key takeaways:

  1. Donโ€™t judge a framework by its hype - sometimes the hype is actually justified
  2. Wails is genuinely fast - faster than I expected, faster than browser
  3. Go + React is a killer combo - simple backend, powerful frontend
  4. Small bundle sizes matter - no Electron bloat here
  5. Native integration is smooth - access to OS features without the pain

Wrapping Up: From Skeptic to Fan

Look, I was wrong. Really wrong.

Wails isnโ€™t just โ€œanother Electron alternativeโ€ - itโ€™s actually a legitimate solution for building fast, native desktop apps with web technologies.

The development experience was smooth, the performance is impressive, and the result feels genuinely native. Plus, the community and documentation are solid.

If youโ€™re building a desktop app and considering Electron, do yourself a favor and at least TRY Wails first. You might be as pleasantly surprised as I was.

And hey, if you want to check out the Animator app, itโ€™s open source! Feel free to poke around the code, suggest improvements, or just use it to make some cool animations.

GitHub Repo: ehsanpo/Animator

Now if youโ€™ll excuse me, I have some more AI-generated sprite sheets to animateโ€ฆ ๐ŸŽฎ

Tags: #Wails #React #Go #Sprite Animation #CSS #TypeScript
TreeStone
Running cat