Web

Calqu (calqu.kr)

A Korean all-in-one tool portal: 186 tools across 15 categories, from take-home pay, tax and unit conversion calculators to character counters, QR and image utilities, mini-games and personality tests. Results can be saved as a PDF or embedded as a widget, and the tool list is also published as an llms.txt file.

2026In progressAI-assistedFeatured

Screenshots

4

Overview

A free all-in-one tool portal offering 186 tools across 15 categories as individual pages: calculators for take-home pay, tax and unit conversion, utilities like character counting, QR generation and image editing, and mini-games and personality tests. Live at calqu.kr.

Core

Every tool lives in one calculators.js registry. Cards, navigation, sitemap and OG images are all generated from it.

Card grids, programmatic pages, guides, OG images, breadcrumbs and sitemaps are produced by script, so the same edit never gets repeated by hand.

Year-dependent constants such as tax rates and minimum wage sit in rates-2026.js, which makes maintenance one update a year.

A Firestore-backed CMS section carries 23 published articles on how to use the tools and how the underlying rules work. Articles are pre-rendered at build time and shipped statically.

Results as a file, or a widget

Calculation results can now be drawn straight onto a canvas and saved as a PDF, instead of just being screen-captured. The loan interest (with a monthly repayment schedule), salary and year-end tax settlement calculators each carry a [Save result as PDF] button. The PDF library (pdf-lib) is not a build-time dependency; it loads only when the button is clicked, so it costs nothing on an ordinary page load.

D-day and the countdown timer can also be embedded as a narrow, results-only iframe (?embed=1&w=1). Paste it into a blog or another site and only the result number shows, with no calculator form.

An llms.txt file now sits at the site root, in the format LLM/AEO crawlers expect, listing every tool plus the year and source each policy-based calculator relies on. Its content is generated straight from calculators.js, and its date only moves on days the text actually changed.

English site

Tools tied to Korean-specific rules (the entire quiz/test category, Gostop, typing practice, country dialing codes, SWIFT code lookup, anniversaries) are left out; everything else ships as 238 static pages under /en/. The URL prefix (/en/ or not) is the single source of truth for language, and each language version points to the other through hreflang.

What running it taught me

Search indexing did not grow by adding pages. Thin variant pages cannibalised each other, so the direction reversed: index fewer documents and make the remaining ones substantial.

A separate bug had lastmod shifting every day because view counts changed. Normalising the view count before hashing means the date only moves when the article actually does. A regression gate (check:lastmod) now holds that in place.

Deployment runs automatically once a day.

Stack

Plain HTML, CSS and JavaScript, with no framework and no build tool, deployed statically to Firebase Hosting. All computation completes in the browser; only Insight article metadata touches Firestore.