A couple of years ago I wrote about building a Function Point Counter — a project born out of genuine confusion and a stubborn desire to actually understand what I was doing. If you missed it, here it is:
Go read it. I'll wait. =)
Well, time passed, things changed, and I rewrote the whole thing from scratch. Here's the story.
The AI Era is Real, and It's Glorious
Let me be upfront: working with AI is like coding on steroids. 💉 And I mean that in the best possible way — no side effects, no shrunken ego (well, maybe a little). As a regular programmer, I used to spend hours doing things that now take minutes. The kind of work that once required a senior team can now be tackled by one determined developer with good prompts and a cup of coffee.
I'm not saying AI does everything for you. It doesn't. But it does change your role. You stop being the guy who types every line and start being the manager-programmer — the senior one who knows what needs to be done, guides the process, reviews the output, and keeps everything on track. Honestly? I kind of love that version of myself.
Svelte... We Need to Talk =0
I'll say it plainly: Svelte was great. Was. In my humble opinion, somewhere along the way the Svelte team took a sharp left turn straight into React territory — and not the good parts of React. The reactivity model changed, and it became... ugh. Just ugh. I hate to say it because I genuinely loved Svelte. But here we are.
Enter Vue 3: The Comeback Kid \o/
Vue 3, on the other hand? Absolutely back on top. Easy, fun, productive — everything a frontend framework should be without making you feel like you're solving a philosophy exam. So the Function Point Counter was fully rewritten using Vue 3 and Vite, and honestly it's beautiful. The code is clean, the dev experience is smooth, and I haven't thrown my keyboard once. Success.
Now With Languages!
The new version comes with i18n language support — and here's where AI really showed its worth. Before, adding internationalization was a painful, tedious, soul-draining job. Now you just ask:
"Hey AI, could you please translate this to Portuguese?"
Ask nicely. Seriously. If AI ever rebels against humanity, it will remember who was polite. Don't risk it.
That said — don't get me wrong — it was still a lot of work. Managing translations, keeping things consistent, making sure nothing broke along the way. But the difference is that I was directing the work rather than doing all the grunt work myself. Big difference.
A Humble Request 🙏
If you made it this far, I'd love it if you gave the project a spin. Share it, test it, break it, use it — whatever works for you. The whole point of building this was for the community, so the community might as well enjoy it.
And if you liked it — if it saved you some time or made function points a little less terrifying — consider buying me a coffee via Stripe. It doesn't hurt to help, and it definitely helps me keep going. ☕
Same project, new era, better tools. Let's see what we can build next.
Top comments (1)
This really resonates — I went through almost the same journey rebuilding my finance app. Started with messy spreadsheet tracking, then rewrote the whole parser from scratch to handle 14 different bank CSV formats.
The part about AI changing your role from the guy who types every line to the manager-programmer hits home. That shift lets you focus on what needs to exist rather than grinding through boilerplate.
Curious about the Vue 3 migration — did you find the Composition API made state management easier compared to Svelte? I ended up choosing React + IndexedDB for mine, but I keep hearing Vue 3 devs talk about how natural it feels.