Robok

Twelve small tools. They never leave your laptop.

Robok is a tiny toolbox of browser-only utilities, one for every sign of the zodiac — turn documents into Markdown, unlock a protected PDF, track where your money's going, or see what your own browser gives away about you. No accounts, no uploads, no servers involved. Find your sign below, or just click around.

No upload endpoint No file storage Works after the page loads

Hover a sign for what it does, or click to open it.

The idea

One rule, applied to everything we build here.

Every tool on Robok follows the same constraint: if it can't run entirely in your browser tab, it doesn't belong here. That rules out a few conveniences — no saved history, no account, no "process this on our server" fallback — in exchange for one guarantee that never has an asterisk.

Most toolkit sites

  • A different tool for every task, each with its own account and quirks
  • Your file usually passes through a server to get processed
  • Free tiers nudge you toward a subscription eventually

Robok

  • A handful of tools, one shared design, zero accounts
  • Every one of them runs in the tab you already have open
  • Nothing to subscribe to, because there's no server bill to cover

Using Robok

Three steps, no matter which tool

01

Pick a tool

From the constellation above or the Tools menu in the header — same three, either way.

02

It runs in this tab

A small library loads once from a public CDN, then everything happens in memory, right here.

03

Nothing is sent anywhere

Copy, download, or read your result — then close the tab and it's gone, the same way it arrived.

Good to know

A few honest answers

Why not just use the big official sites for each of these?

Those sites are fine — they're just built to route your file through a server, because that's how most tools are built by default. Robok exists for the times that feels like the wrong trade for a task this small.

Will more tools get added?

Maybe — anything that can genuinely run entirely in a browser tab is fair game. Anything that can't, isn't, no matter how useful it'd be.

Is my data really safe here?

"Safe" is a big word — what's true is narrower: nothing you drop into these tools is uploaded, logged, or stored anywhere, by design, not by policy. Check each tool's own page for the specifics of how it works.

Document → Markdown

Turn documents into Markdown. Without them leaving your laptop.

Drop a Word, PDF, Excel, or PowerPoint file below. It's read and parsed right here, in this browser tab — then you paste the clean Markdown into whichever model you're using, at a fraction of the tokens the original file would cost.

No upload endpoint No file storage Works after the page loads
Drop files or a folder here, or click to browse
One file, several at once, or a whole folder — up to about 25 MB each
DOCX · PDF · XLSX · CSV · PPTX · TXT · MD
DOC
—
—
Markdown output
Your converted Markdown will appear here — nothing is sent anywhere to produce it.
0
Total
0
Converted
0
Failed

The process

Three steps, all in this tab

01

Drop a file

Choose any supported document. It's read into memory with the browser's File API — nothing is queued for upload.

02

Parsed in your tab

A handful of open-source libraries — Mammoth, PDF.js, SheetJS — turn the file's structure into clean Markdown, on your machine.

03

Copy or download

Paste the result into whichever model you're using, or save it as a plain .md file for later.

Coverage

What it reads

Five format families, each converted with a purpose-built parser instead of one catch-all guess.

.docx
Word documents
.pdf
PDF, text-based
.xlsx / .csv
Excel & CSV, as tables
.pptx
PowerPoint, slide by slide
.txt / .md
Plain text, passed through

Images, audio, and video aren't supported here, on purpose. Reading them well enough to matter means running a model, and a model means a server call. We'd rather leave a gap in the format list than quietly send your file somewhere to fill it.

Where the file goes

Nowhere. That's the whole point.

We load a few open-source parsing libraries once, from a public CDN. After that, your document is read straight into memory and never leaves the tab.

Most document converters

  • Your file is uploaded to a server before anything happens
  • Conversion depends on that server being up, and fast
  • The file — and whatever's inside it — sits in someone's logs

Robok

  • Parsing runs in the browser tab you already have open
  • Works on a train, a flight, or a locked-down network
  • Nothing about the file's contents is transmitted, ever

Why bother converting first

Markup costs tokens. Words don't.

A one-page Word document is mostly XML underneath — styles, theme data, revision history — wrapped around a few hundred words. Paste that raw into a model and you're paying to have it parse markup it doesn't need. Markdown keeps the words, the headings, and the tables, and throws the rest away.

Raw document markup~100%
Converted Markdown~24%
Illustrative example, one page of formatted text. Your own numbers appear above once you convert a file.

Good to know

A few honest answers

What happens to my file after I close the tab?

Nothing to clean up — it was never sent anywhere. Closing the tab clears it from memory, same as any other unsaved browser data.

Does this work without an internet connection?

Yes, once the page and its libraries have loaded once in a given session. There's no per-conversion network call.

My PDF came out garbled or empty

Scanned PDFs — photos of pages, with no embedded text layer — have nothing for this tool to read. That's a job for OCR, and OCR is a job for a model, which is the one dependency we're avoiding here.

PDF → Unlocked PDF

Unlock a protected PDF. Without it leaving your laptop.

Drop a password- or permission-protected PDF below. Enter the password if it needs one, and get back a normal, unprotected file — decrypted right here, in this browser tab.

No upload endpoint No file storage Works after the page loads
Drop a PDF here, or click to browse
One file at a time, up to about 25 MB
PDF
PDF
—
—
Used only in your browser to unlock the file — never sent anywhere.
This PDF isn't password-protected — there's nothing to unlock.
Unlocked file
Your unlocked PDF will appear here — nothing is uploaded to produce it.
—
—

The process

Three steps, all in this tab

01

Drop a PDF

Choose any password- or permission-protected PDF file.

02

Enter the password

Only if it needs one — some PDFs just restrict printing or editing and open with no password at all.

03

Download, unlocked

Get back a normal PDF with the encryption and every restriction removed.

Good to know

A few honest answers

What if I don't know the password?

This removes protection, it doesn't crack it — you need to already know the password, or the PDF needs none to open (just restricted permissions).

What exactly does "unlocked" change?

The output has no open password and none of the original printing, copying, or editing restrictions. Anyone with the file can use it freely, so only unlock files you're allowed to share that way.

Does this work on every protected PDF?

It covers standard PDF encryption — RC4 and AES, 40- to 256-bit, which is what the vast majority of "protected" PDFs use. Third-party DRM systems are a different, much rarer thing, and aren't covered.

Gauge → Litres & Cost

Guess the litres and cost to fill up. Right from your dashboard needle.

Match the gauge to your dashboard, pick your car or key in the tank size yourself, and get a friendly estimate of the litres, range, and cost to fill up — worked out right here, nothing saved anywhere.

No upload endpoint No file storage Works after the page loads

Your car's tank

Not sure of the numbers? Pick your car below and we'll fill them in.

or key in manually

Where's the needle right now?

Drag across the lines to match your dashboard, then fine-tune with the slider.

EF
50%

Fuel economy

From your car brochure's consumption figure — used to estimate driving range.

≈ 15.4 km/L

Estimate

Based on the level, capacity and fuel economy above.

22.5 L
Currently in tank
22.5 L
Needed to fill up
346 km
Estimated range now
693 km
Estimated range on a full tank

Cost to fill

Switch currency and your price auto-converts using this rate.

RM 46.13
Estimated cost to fill up

The process

Three steps, all in this tab

01

Pick your tank

Choose your car from the list, or type in the tank size and fuel economy yourself.

02

Match the needle

Drag across the gauge or nudge the slider until it matches your dashboard.

03

Read the estimate

Litres needed, range, and cost to fill up, updating instantly as you adjust anything above.

Good to know

A few honest answers

Where do the car presets come from?

Rough published tank sizes and consumption figures for common models sold in Malaysia and Singapore. Your actual car may vary slightly — the manual capacity field is always there if the preset doesn't match.

Does this save anything about my car?

No — nothing is written to disk or sent anywhere. Refresh the page and it's back to the defaults, same as every other tool here.

How accurate is this, really?

Made this over teh tarik levels of confidence, not a calibrated fuel sensor — dashboard needles lie a little, pump prices shift with the wind, and your actual fill-up may vary by a litre or two. Treat it as a friendly estimate to plan your trip to the pump, not the absolute truth. Drive safe, fill up before the light blinks red, and lambat sikit takpe, yang penting selamat.

Wealth → Freedom Number

What's your freedom number?

The moment your wealth crosses 25× your yearly spending, work becomes optional. Enter three numbers to see where you stand today, then explore the calculators below to close the gap.

No upload endpoint No file storage Works after the page loads

Get started

Everything below recalculates instantly as you type — nothing is uploaded or stored.

Your freedom number

0%
funded
Freedom number—
Still needed—
On track by age—

Based on the classic 25× rule (a ~4% sustainable withdrawal rate) and your bucket mix below.

Shift map — how the mix typically moves, age 20 → 90

Reserve Growth Horizon

A common pattern: Growth leads while you're building, Horizon takes over once income tapers, and the Reserve stays roughly steady throughout to cover near-term spending.

Step 1

Sort your money into three buckets

A short-term Reserve, a Growth engine, and a long-horizon compounder. Drag the sliders, or let your age suggest a starting mix.

ReserveCash & short bonds — near-term costs
20%
GrowthDiversified equities & funds
50%
HorizonRetirement accounts, long-run compounding
30%
Total: 100%
—
Reserve
—
Growth
—
Horizon

Step 2

Watch each bucket compound

Set a return assumption per bucket and a time horizon — each one grows on its own curve.

30y
—
Reserve at end
—
Growth at end
—
Horizon at end
—
Combined value at maturity
Year-by-year table

Step 3

Plan the spend-down order

Draw from the Reserve first so the Growth and Horizon buckets keep working — one clock, each bucket handing off to the next as it empties.

—
Money lasts
—
Total withdrawn
—
Extra from top-up
Year-by-year table

Calculator

Accumulation calculator

Add money on a schedule and see what compounding turns it into.

—
Investment value
—
Total contributions
—
Profit (interest earned)
Year-by-year table

Calculator

Drawdown calculator

Draw a fixed amount from a pot and see how many years it can support you.

—
Ending balance
—
Total withdrawn
—
Time to zero
Year-by-year table

Calculator

Full-life simulator

Phase 1 grows your money with regular contributions. Phase 2 picks up wherever Phase 1 leaves off and draws it down. One chart shows whether the money outlasts the plan.

Phase 1 · Accumulation

Phase 2 · Retirement drawdown

Your whole plan in one curve

—
Nest egg at retirement
—
Withdrawal by final year, inflation-adjusted
—
Money lasts
—
Balance at end of plan
Year-by-year table

Reference

The playbook

How the calculators above relate, and the rules of thumb worth knowing before you trust any number on this page.

Accumulate

Regular contributions plus time plus a return rate — the accumulation calculator shows what that combination compounds into.

Drawdown

Flip it around: start with a pot, take a fixed amount out on a schedule, and see how many years it holds up.

Full-life

Chain the two together — years of saving feeding straight into years of spending — so you can see the whole arc in one chart.

Rules of thumb

01What return rate should I actually use?

Long-run averages sit around 7–10% for diversified equities and 3–5% for bonds, before inflation — but averages hide bad decades. Run your numbers a second time at something noticeably lower. A plan that only survives at the optimistic end isn't really a plan.

02Why does inflation matter so much in retirement?

At roughly 2.5–3% inflation, everyday costs double every 25–28 years. Leave inflation out of a multi-decade withdrawal plan and you're quietly planning to live on half your current lifestyle by the end of it.

03Does starting early really matter that much?

Yes — disproportionately. Compare 10 years of contributions against 20 with identical inputs in the accumulation calculator: the second decade typically outgrows the first two combined, because it compounds on a much bigger base. Time is the one input you can't buy back later.

04How much can I safely withdraw each year?

A widely used starting point is about 4% of the pot in year one, rising with inflation after that, aimed at funding roughly 30 years. Push meaningfully past that rate and the drawdown calculator's depletion curve will show it collapsing early.

05What's sequence-of-returns risk?

Two portfolios can earn the identical average return over 30 years and still end very differently — the one that suffers a downturn in its first few withdrawal years recovers far worse than the one that doesn't. It's a big part of why a Reserve bucket of stable, near-term money matters heading into retirement, not just the size of the total pot.

06Does contribution frequency (monthly vs. quarterly) matter?

Barely. The amount you contribute, the return you earn, and the years you stay invested move the outcome far more than whether you contribute weekly or yearly. Don't let frequency-optimizing distract from the bigger levers.

07Should I trust these numbers?

Treat every figure here as a working estimate, not a promise. Real markets move in lurches, not smooth curves, and your own spending will shift too. Rerun the plan at least once a year and adjust as life changes.

This tool is for education and planning, not financial advice. For decisions about your own money, consider speaking with a licensed adviser.

FLAC → Integrity report

Needle checks your FLAC files for damage, before you trust them.

Drop in a single FLAC, a batch of them, or a whole folder. Every file gets its structure, metadata, and per-frame checksums verified right here — nothing is uploaded anywhere.

No upload endpoint No file storage Works after the page loads

Drop FLAC files or a folder here

Single file, a pile of them, or an entire library folder — all fine.

Only .flac files are checked — anything else in a folder is skipped automatically.

0
Total
0
Verified
0
Warnings
0
Corrupted
No files yet — add some above and results will show up here.

Using it

Three steps, all in this tab

01

Drop your FLACs

Single files, a pile of them, or drag in an entire folder — anything that isn't .flac gets skipped automatically.

02

It runs right here

Add files or add a folder, and everything is scanned inside this browser tab — nothing is uploaded, not even for a moment.

03

Read the verdict

Each file lands on Verified, Warning, or Corrupted with the exact reason — expand any row for detail, or export the whole batch as a report.

The method

How the check works

01

Structure & metadata

Checks for the "fLaC" stream marker, walks the metadata header, and validates the declared format — sample rate, channel count, and bit depth all have to make sense before anything else is trusted.

02

Every frame, checksummed

Walks every audio frame in the file and verifies its header checksum (CRC-8) and its data checksum (CRC-16) — the same per-frame checks FLAC itself was designed around.

03

Sample count, reconstructed

Rebuilds the total sample count from every frame it found and compares it to what the file claims — this is what catches files that were cut off partway through.

This is a structural and checksum check, not a full bit-exact decode against the file's internal MD5 signature (that needs a real FLAC decoder). It's very good at catching the kinds of damage that actually happen — bad transfers, bit rot, dropped bytes, truncation — but a "Verified" result means the file's structure and checksums are clean, not a guarantee equivalent to a full decode.

Good to know

A few honest answers

Does "Verified" mean the audio is bit-perfect?

Not quite — this is a structural and checksum check, not a full bit-exact decode against the file's internal MD5 signature (that needs a real FLAC decoder). It's very good at catching the kinds of damage that actually happen — bad transfers, bit rot, dropped bytes, truncation — but "Verified" means the file's structure and checksums are clean, not a guarantee equivalent to a full decode.

What should I do if a file gets flagged?

This tool flags likely corruption based on FLAC's own checksums and structure — a solid first pass for spotting bad rips, bad transfers, or bit rot, not an official mastering-grade audit. If a file gets flagged, it's worth a listen before you delete anything.

Is my music actually private?

Yes — every check above runs in memory, in this tab. Nothing is uploaded, logged, or stored anywhere; close the tab and it's gone, the same way it arrived.

Salary → Net Pay

Turn a gross salary into a real take-home number.

Key in a monthly salary and get EPF, SOCSO, EIS, and an estimated PCB/MTD tax deduction worked out right here — updated instantly as you adjust anything below.

No upload endpoint No file storage Works after the page loads

Country

Switches the statutory contributions and tax estimate below.

Your salary

Basic monthly salary, before any deductions.

Tax reliefs

Used only to estimate the PCB/MTD deduction below.

Statutory contributions

What you and your employer each pay into EPF, SOCSO, and EIS.

RM 550.00
EPF — you
RM 600.00
EPF — employer
RM 25.00
SOCSO — you
RM 87.50
SOCSO — employer
RM 10.00
EIS — you
RM 10.00
EIS — employer

Estimated take-home pay

PCB/MTD is approximated from the published resident tax bands and your reliefs above.

RM 5,000.00
Gross pay
RM 0.00
Estimated PCB/MTD
RM 585.00
Total deductions
RM 4,415.00
Net pay (take-home)
Net pay88%
Deductions (EPF + SOCSO + EIS + PCB)12%

This is a planning estimate, not tax advice — SOCSO and EIS use simplified rate approximations instead of the official wage-bracket tables, and PCB/MTD skips finer reliefs (lifestyle, medical, EPF cap nuances). For the exact deduction your employer must apply, check LHDN's official PCB calculator or your payroll department.

The process

Three steps, all in this tab

01

Key in your salary

Monthly gross salary and age bracket — that's all that's required to start.

02

Add your reliefs

Spousal relief and number of children, if they apply — used only for the PCB estimate.

03

Read the breakdown

EPF, SOCSO, EIS, estimated PCB, and your net take-home pay, recalculated instantly as you type.

Good to know

A few honest answers

Will this match my actual payslip exactly?

Probably close, not exact. Real EPF and SOCSO contributions are read off official wage-bracket tables rather than a flat percentage, and PCB/MTD has more relief categories than shown here. Treat this as a solid estimate for planning, not your final number.

Does this store or send my salary anywhere?

No — every figure stays in this browser tab and is recalculated locally. Refresh the page and it's gone, same as every other tool here.

What if I'm not a Malaysian tax resident?

This calculator assumes resident tax treatment. Non-residents are taxed differently (a flat rate, with no personal reliefs) — this tool won't give you a useful number in that case.

File → Checksum

Confirm a file wasn't corrupted or tampered with.

Drop in a single file, a batch of them, or a whole folder. Each one gets its MD5, SHA-1, SHA-256, and SHA-512 computed right here — paste in a published hash to check it matches.

No upload endpoint No file storage Works after the page loads

Drop files or a folder here

Single file, a pile of them, or an entire folder — all fine.

Any file type works — documents, archives, installers, images, anything.

If filled in, every file below is checked against this value across all four algorithms.

0
Total
0
Computed
0
Mismatch / error
No files yet — add some above and their hashes will show up here.

Using it

Three steps, all in this tab

01

Add your files

One file, several at once, or drag in an entire folder — anything goes, any file type.

02

Paste the published hash

Optional — if the site you downloaded from published a checksum, paste it in and every file gets checked against it.

03

Read the result

Expand any row for the full MD5, SHA-1, SHA-256, and SHA-512 — copy any of them, or export the whole batch as a report.

The method

How the check works

01

Read, never sent

Each file is read into memory with the browser's File API. It's never attached to a request or queued for upload.

02

Four algorithms, one pass

SHA-1, SHA-256, and SHA-512 come from the browser's own Web Crypto API. MD5 — not offered by that API anymore — runs through a compact local implementation instead.

03

Byte-for-byte comparison

If you supply an expected hash, it's compared case-insensitively against all four computed values — a match on any one of them counts as a match.

A checksum match means the bytes you have are identical to the bytes the hash was made from — it says nothing about whether the original file was ever safe or correct, only that nothing has changed since that hash was published.

Good to know

A few honest answers

Which algorithm should I trust?

SHA-256 or SHA-512 if the publisher offers them — MD5 and SHA-1 are still fine for catching accidental corruption, but both have known collision weaknesses, so don't lean on them where someone might be deliberately trying to fake a match.

Why compute all four instead of just one?

Different sites publish different algorithms — having all four ready means you can paste whichever one you were given without guessing first.

Does this work on huge files?

Yes, though very large files take longer since everything runs on your device's own CPU — there's no server doing the work in the background.

Photo → Clean Copy

Strip the GPS and camera data your photos are quietly carrying.

Drop in a JPEG, a batch of them, or a whole folder. Each one is checked for hidden metadata — GPS location, camera model, timestamp — and you get back a clean copy with it removed.

No upload endpoint No file storage Works after the page loads

Drop JPEG photos or a folder here

Single photo, a pile of them, or an entire folder — all fine.

Only .jpg/.jpeg files are checked — anything else is skipped automatically.

0
Total
0
Scrubbed
0
Failed
No photos yet — add some above and results will show up here.

Using it

Three steps, all in this tab

01

Add your photos

Single files, a pile of them, or drag in an entire folder — anything that isn't a JPEG gets skipped automatically.

02

See what's hiding inside

Expand any row to see exactly what metadata was found — camera model, timestamp, and GPS coordinates, if present.

03

Download the clean copy

Grab one photo at a time, or export the whole batch as a zip — visually identical, metadata gone.

The method

How the scrub works

01

Walk the JPEG's markers

A JPEG is a sequence of marker segments before the actual image data begins. This reads that sequence directly, byte by byte.

02

Read the EXIF block first

If an EXIF (APP1) segment is present, its embedded TIFF structure is parsed to surface the camera make, model, timestamp, and GPS coordinates — so you know what's about to be removed.

03

Rebuild without it

Every metadata segment (APP0–APP15, and comments) is dropped; the actual compressed image data is copied through untouched, byte for byte.

This removes standard EXIF, IPTC, and XMP metadata segments from JPEG files. It doesn't re-compress or re-encode the image, so visual quality is unaffected — only the invisible data around the picture is gone.

Good to know

A few honest answers

Why would my photos have GPS data at all?

Most phones tag every photo with the exact location it was taken, by default. Handy for sorting your own library, less handy when you post the original file somewhere public.

Does this work on PNG or HEIC photos?

Not yet — only JPEG is supported right now, since it's by far the most common format for carrying EXIF GPS data. Anything else is skipped rather than silently left untouched.

Will the scrubbed photo look any different?

No — only the metadata segments are removed. The compressed image data itself is copied through exactly as it was, so there's no quality loss from this process.

Text ↔ QR Code

Make a QR code, or find out what one says.

Type a link, a Wi-Fi password, or any text to turn it into a scannable code — or drop in an image of a QR code to read it back out. Both directions happen right here.

No upload endpoint No file storage Works after the page loads

Your QR code will appear here.

Using it

Three steps, all in this tab

01

Pick a direction

Stay on Generate to turn text into a code, or switch to Read to decode one from an image.

02

Type it, or drop it in

Paste a link or message to encode it, or drag in a photo or screenshot of a QR code to decode it — batches and folders work too.

03

Grab the result

Download the generated code as a PNG, or copy the decoded text straight out of the results list.

The method

How the generate and read work

01

Encoding your text

Your text is split into data segments, padded, and run through Reed–Solomon error correction, then laid out into the black-and-white module grid a scanner expects — all inside a canvas element on this page.

02

Finding the code in your image

The three corner "finder patterns" are located first, which lets the reader work out the code's position, size, and rotation even if your photo was taken at an angle.

03

Correcting and decoding

The same Reed–Solomon error correction that made the code robust is used in reverse to recover the original text, even if part of the image is smudged, glared, or slightly damaged.

Both directions run through small, well-known open-source libraries loaded once from a public code library (cdnjs/jsDelivr) and then executed entirely on this device — nothing you type or upload ever leaves your browser.

Good to know

A few honest answers

Does this need an internet connection?

The page itself, and one small helper library, need to load once. After that, every code you generate or read is handled entirely on your device — nothing is sent anywhere.

What's the "error correction" option for?

It controls how much of the code can be damaged, smudged, or covered (like with a logo) and still scan correctly. Higher levels are more forgiving but make a slightly denser code.

Why didn't my image decode?

Usually it's a blurry photo, a code shot at too steep an angle, or an image that doesn't actually contain a QR code. Try a straighter, better-lit shot, cropped closer to the code itself.

Archive → Health Check

Find out if a .zip is actually intact before you rely on it.

Drop in a .zip, a batch of them, or a whole folder. Every file inside gets decompressed and checked against its own checksum, so you know it'll actually extract cleanly before you need it to.

No upload endpoint No file storage Works after the page loads

Drop .zip files or a folder here

Single archive, a pile of them, or an entire folder — all fine.

Only .zip files are checked — anything else is skipped automatically.

0
Total
0
Healthy
0
Corrupt
No archives yet — add some above and results will show up here.

Checking compressed entries needs a fairly recent browser. If yours doesn't support it, entries are listed but marked as unchecked rather than failed.

Using it

Three steps, all in this tab

01

Add your archives

Single .zip files, a pile of them, or drag in an entire folder — anything that isn't a .zip gets skipped automatically.

02

Let it open every entry

Each file inside the archive is decompressed and checked in the background — no need to actually extract anything to your disk.

03

Expand for the details

See exactly which files passed, which are corrupt, and which were skipped — then export a text report if you need one for later.

The method

How the check works

01

Read the central directory

A .zip file's real table of contents — every entry's name, size, and stored checksum — sits in a central directory near the end of the file, not scattered through it.

02

Decompress each entry

Every compressed entry is inflated right here using the browser's built-in decompression, then its CRC-32 checksum is recalculated from scratch.

03

Compare against what's declared

That freshly-computed checksum is compared against the one the archive itself declares. Any mismatch means that file won't extract the way it's supposed to.

This checks standard ZIP archives using the Deflate and Store methods, which covers the overwhelming majority of .zip files. Very large (Zip64) archives or less common compression methods are listed but marked as unchecked rather than assumed to be fine.

Good to know

A few honest answers

Why would a .zip file be corrupt in the first place?

Usually an interrupted download or transfer, a flaky USB drive, or a cloud sync that didn't quite finish. The archive can look complete — right file size and everything — while a chunk in the middle is silently wrong.

Does this fix a corrupt archive?

No — this only tells you which files are affected, so you know whether to re-download, re-copy, or re-request the archive rather than finding out the hard way mid-extraction.

What does "unchecked" mean for an entry?

It means that specific entry uses a compression method or archive feature this tool doesn't decode (like Zip64 or an uncommon method) — it isn't a sign the file is broken, just that it wasn't verified.

Money → Where It Went

See where your money actually goes.

Log an expense in a few seconds, and watch the picture build up by category and by month. Everything is saved in this browser only — nothing is ever sent anywhere.

No upload endpoint Saved only in this browser Works after the page loads

Log an expense

—

RM 0.00
Spent this month
0
Entries
RM 0.00
Daily average
—
Biggest category

No expenses logged for this month yet.

Entries this month

No expenses logged yet — add your first one above.

Using it

Three steps, all in this tab

01

Log as you spend

Amount, category, and date — takes a few seconds. Add a note if you'll want the detail later.

02

Watch the picture build

Category totals and a monthly average update instantly. Set a monthly budget to see how close you are to it.

03

Flip through months, export anytime

Step back through previous months to spot patterns, or export everything to a CSV for your own records.

The method

Where the data actually lives

01

Saved to this browser, nowhere else

Every entry is written to this browser's local storage — a small on-device database every browser has built in. It never travels over the network.

02

Totals computed on the fly

Category breakdowns, daily averages, and the budget bar are all recalculated in JavaScript the instant you add or delete an entry — no server round-trip.

03

Yours to take with you

The CSV export reads straight from that local storage and builds the file in memory, so your records are never locked into this one tab.

Because this uses browser storage tied to this specific browser and device, clearing your browser data, using a different browser, or switching devices will not carry your entries over. Export to CSV first if you need a backup.

Good to know

A few honest answers

Is my spending data uploaded anywhere?

No. Every entry stays in this browser's local storage on this device. There's no account, no server, and no sync — which also means it won't show up if you open Robok on another device.

What happens if I clear my browser data?

Your logged expenses will be erased along with it, the same as any other site's local data. Export to CSV beforehand if you want to keep a copy.

Can I track income too, not just expenses?

Not yet — this version is focused purely on tracking where money goes out. Pair it with the Payslip Calculator to see the income side of the picture.

Browser → What It Reveals

See exactly what your browser tells every website about you.

The same signals trackers use to recognise you without a cookie — canvas rendering, your graphics card, installed fonts, timezone, hardware — read once and shown only to you. None of it leaves this tab.

No upload endpoint No file storage Works after the page loads

Click below and this page will read the same handful of signals a tracking script would — then show every one of them to you, in plain language. Nothing is sent anywhere; it never even leaves this browser tab.

Using it

Three steps, all in this tab

01

Click reveal

One button starts the scan — the same handful of reads a tracking script would quietly do in the background anyway.

02

Read through each signal

Canvas rendering, your GPU, installed fonts, timezone, hardware — each one explained in plain language, not just dumped as raw data.

03

See it combine into one signature

All of it gets folded into a single hash at the top — that's the number a tracker would actually store to recognise you again.

The method

How browser fingerprinting actually works

01

Read what the browser already exposes

None of this needs special permission. Canvas drawing, WebGL, installed-font measurement, timezone, and hardware counts are all standard, publicly available browser APIs — the same ones any website can call.

02

Turn each reading into a short value

The canvas drawing is hashed with SHA-256. The font list is tested one candidate at a time, by comparing rendered text width against a known fallback. Everything else is read directly from the browser.

03

Combine everything into one signature

All the individual values are joined into one string and hashed once more with SHA-256. That combined hash is what you see at the top — a stand-in for the fingerprint a tracker would generate and store.

Nothing computed on this page is sent anywhere, logged, or stored — including by Robok. Refresh the page and run it again, and everything is recomputed from scratch, right here, and shown only to you.

Good to know

A few honest answers

Is this actually fingerprinting me?

It runs the same reads a fingerprinting script would, but the result is shown only to you, in this tab, and thrown away the moment you leave the page. Nothing is sent, logged, or stored — that's the entire point.

Why does my signature change if I open this in a different browser?

Because the signature is built from real differences between browsers and devices — different font sets, different GPUs, different rendering engines. That's exactly why it works as a fingerprint in the first place.

How do I actually reduce my real fingerprint?

Browsers with built-in fingerprint resistance (like Firefox's strict mode, Brave, or Safari's private browsing) deliberately blur or standardise several of the signals shown here. This page won't fix that for you — it just shows you what's currently exposed.