Nowdays,the creator economy is booming, but there is a massive blind spot: calculating true net income. If you are a creator on YouTube, Twitch, or Substack, estimating your earnings usually involves clunky spreadsheets or ad-riddled calculator sites that harvest your financial data. Most calculators only show gross estimates, ignoring platform cuts, taxes, and audience geography.
I wanted to fix this. But more importantly, as a developer, I wanted to build it in the most lightweight, privacy-respecting way possible.
That is how Crecaly was born: a revenue calculator for the creator economy that figures out your true take-home pay across 15+ platforms. And I built it entirely as a serverless Progressive Web App (PWA) using pure Vanilla JavaScri``pt, HTML, and CSS.
Here is why I ditched the modern framework hype and went back to basics.
🛑 The Problem with Modern Financial Tools
When building a tool that handles sensitive data—like someone’s income, tax bracket, and financial goals—privacy should be the default, not an opt-in feature.
Most calculator apps send user inputs back to a server to process the logic, often storing that data for analytics or retargeting. I wanted Crecaly to be the "ultimate boss of privacy."
The constraints I set for myself:
Zero backend data collection.
Lightning-fast load times.
No heavy frameworks.
🛠The Tech Stack: Vanilla JS + PWA
It is tempting to spin up a React or Vue project for everything, but for a standalone utility tool, shipping a massive JavaScript bundle felt like overkill.
By sticking to HTML, CSS, and Vanilla JS, I kept the footprint incredibly small.
- Client-Side Processing (Zero Backend) All the complex math—factoring in the unique fee structures of 15+ different platforms, calculating estimated taxes, and adjusting for audience geography—happens locally in the user's browser.
Because there is no database to ping, the UI updates instantly. More importantly, the user's financial projections never leave their device.
- The PWA Advantage I structured Crecaly as a Progressive Web App. By utilizing a simple manifest.json and a Service Worker, users can install the tool directly to their home screens (mobile or desktop).
It feels like a native app.
It bypasses the gatekeeping and 30% fees of traditional app stores.
🧠Building "Chase Mode" (Reverse-Math Logic)
One of the most fun features to build was what I call "Chase Mode".
Usually, calculators work forward: Input Views -> Output Money.
Chase Mode works backward: Input Target Money -> Output Required Views/Subs/Sales.
From a logic standpoint, it required building a dynamic reverse-math engine. If a creator wants to net exactly $5,000 this month, the JS logic has to dynamically add back the tax estimates and specific platform fees to tell them exactly how many Twitch subs or YouTube views they need to hit that goal. Doing this instantaneously via DOM manipulation without a virtual DOM was a great exercise in efficient event listener management.
🚀 Takeaways from Going "Vanilla"
Building Crecaly reminded me that we don't always need an overly engineered stack to ship a great product.
Speed is a feature: Without a framework, the Lighthouse scores are flawless.
Privacy builds trust: "Zero backend" is a massive selling point when marketing to users tired of data harvesting.
Vanilla JS is powerful: Modern JavaScript (ES6+) is so robust that I rarely found myself missing a framework for a utility application like this.
Top comments (0)