Last updated
About the code
PinaSweldo’s source code is private. It’s written and maintained by one person, John Nazarene Dela Pisa, and isn’t published. Here is what’s in it, plainly, so you know what you’re trusting.
What runs where
- The calculator runs in your browser. Your salary, allowances and loans are worked out on your device; nothing about them is sent to work out your pay.
- Three small server functions run on Cloudflare: one stores survey answers, one stores replies to “Did we get it right?”, and one serves daily exchange rates. None of them can read data back out.
- The survey database is Cloudflare D1. Answers and optional contact details sit in separate tables; see the privacy policy for what’s kept and for how long.
What it’s built with
Next.js and React, written in TypeScript, exported as static pages. Base UI for the controls, Tailwind CSS for styling, Inter for type, and Cloudflare Pages for hosting. There are no analytics, ad or tracking scripts in it.
How the numbers are worked out
The payroll engine is separate from the screens, so it can be tested on its own. Every rate and cap in it carries the law or circular it comes from:
- Income tax: the TRAIN table under Republic Act 10963.
- SSS: 15% under Republic Act 11199, including the Mandatory Provident Fund.
- PhilHealth: 5% under Republic Act 11223 (Universal Health Care).
- Pag-IBIG: HDMF Circular 460.
- GSIS: Republic Act 8291. Kasambahay: Republic Act 10361.
- 13th month pay: Presidential Decree 851 and DOLE’s implementing guidelines.
The “How we got your number” section on the home page walks through the same steps with your own figures, so you can check any of them by hand.
How it’s checked
Automated tests cover the tax and contribution engine, the 13th month calculator, currency conversion, how typed and pasted amounts are read, how survey answers are validated, and how the server functions turn away requests from other sites, oversized ones and anything that isn’t plain JSON. They run on every change, together with type checks and a check that every language has every string, before anything is published.
Some cases are simplified on purpose, such as mixed-income freelancers or holiday-pay eligibility. Each simplification is written down in the project, and the FAQ covers the ones people ask about most.
Why it’s private
It’s a personal project, and keeping the code private lets one person maintain it carefully without managing outside contributions. That’s a choice about the code, not about you: the parts that touch your data are described above and in the privacy policy.
Found a mistake?
If a figure looks wrong, a rate has changed, or you’re a researcher, journalist or employer who’d like to look at how something is calculated, write to privacy@pinasweldo.com. Corrections are welcome.