Wocart
Wocart runs the whole cash-on-delivery business for Algerian stores: an Arabic-first checkout, phone verification, Yalidine, ZR Express, NOEST, Guepex and 82 EcoTrack couriers, your own drivers, and M
翻訳待ち
Pick the Charmin, Quilted Northern, Angel Soft or Kirkland Signature packs on the shelf, type in the prices, and see which one costs less per sheet or per square foot.
翻訳待ち
コマースJavaScript · CSSGitHub @ahatzz11オンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Toilet Paper Math: which roll is actually the better deal
翻訳待ち
Loading the full README.
Read the full README ↗A small site at https://toiletpaper.app for comparing Charmin, Quilted Northern, Angel Soft and Kirkland Signature (Costco) toilet paper, whose roll names (Mega, Mega XL, Super Mega and the rest) don't say how much paper you get.
| Route | Page |
|---|---|
/ | Deal calculator: pick the packs on the shelf, type the prices, see which costs less, or which is the softest or the best balance |
/convert | Roll converter: what one roll equals in every other roll, with a chart of all rolls |
/softness | The softness scale: every rated line on a 0 to 10 scale, one long strip of paper, least soft first. A few reference points that aren't products sit on it too: sandpaper at 0, port-a-potty paper at 2, a cloud at 11 just past the end. They live only on this page. Plain HTML and CSS, no JS |
/about | How it works, for people: why sheets beat "rolls" in three cards, then a short FAQ (<details> accordion, works without JS) |
/data | Data & API: every roll in one table, the sources table, the API with a live example, the link format, and links to llms.txt, llms-full.txt and openapi.json. It sits under How it works: no tab of its own, the About tab shows as current, and the breadcrumb is Home > About > Data & API |
/charmin-mega-vs-quilted-northern-mega, /how-many-sheets-in-a-mega-roll, /cheapest-toilet-paper-per-sheet | Short guides that answer one question each and link into the tools |
/api/products, /api/compare | Read-only JSON API, described in /openapi.json |
/robots.txt, /sitemap.xml, /llms.txt, /llms-full.txt | For crawlers and AI assistants |
Both tools compare by sheet count by default. Paper area and area × ply are one click away.
The nav has four tabs in a pill (Best deal, Roll converter, Softness, How it works). Below 1024px the tabs shorten to Deal, Converter, Softness and About. On phones (up to 640px) and small tablets (641 to 699px) the tabs fill a row under the brand, so the phone header stays within 103px. /about links to /data from the "where do the numbers come from" answer and from a "See the data & API" link at the end of the page. test/browser.test.mjs measures it at 320, 360, 375, 390, 768 and 1440px. Every page ends with the same one-line footer, "Not affiliated with any brand · Open source on GitHub", linking to https://github.com/ahatzz11/toiletpaper. It stays on one line down to 320px. The guides are linked from the /about FAQ answers and the 404 page, and listed in the sitemap and llms.txt. Old links to /about#sources and /about#data land on the matching FAQ answer, which app.js opens.
public/data.js holds every number. The rule for sources: manufacturer numbers beat retailer listings.
sources.source note.charmin.com (sheets, claim) or Hannaford (size, pack total), so the sources table shows which numbers came from whom.regularId: null, and its products get claim: null (and size: null if it has no size names). Its own roll is the unit: the converter shows what one roll equals in the other brands' regular rolls, and the tables say "no claim". Kirkland Signature is the one such brand. Its sheets, sheet size, ply, rolls and pack totals all come from costco.com, and the printed square-foot totals match our math exactly.derived. A number we couldn't find printed and borrowed from a sibling product is estimated. Both show as tags on the site.checked in data.js and UPDATED in src/site/config.mjs when you recheck.Softness has no industry standard and no printed number, so data.js has a softness block: one coarse score from 0 to 10 per product line, and each product's soft key names its line. Regular rolls and custom rolls are never rated. The method, as it appears on /softness and /data#softness:
score: null and shows as "not rated".This is the beginning of the README. Read the rest at the original. Read the full README ↗