Files
datatools-dev/landing/index.html
Michael db5ec084da docs+code: rename tool labels everywhere
Sweep follow-up to 93e43fc. Display labels now consistent across docs,
landing pages, CLI output, code comments, docstrings, and test prose.
Five parallel surfaces touched:

- docs (EN + ES): README, USER-GUIDE, CLI-REFERENCE, and 11 internal
  design/planning docs
- landing pages: index + bookkeeper/revops/shopify-pet
- src: CLI module docstrings, _TOOL_DISPLAY dicts in cli_analyze.py
  and gui/components/_legacy.py, core module headers, every tool
  page's module docstring
- tests: class/method/module docstrings and section-header comments
- test-cases READMEs

Page slugs (1_Deduplicator etc.), tool_id strings (01_deduplicator
etc.), Python class names (TestDeduplicatorWorkflow, FeatureFlag.*),
URL paths, anchor IDs, CSS classes, and asset filenames were left
intact since they're code identifiers / structural references.

All 2033 tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 19:50:09 +00:00

237 lines
9.0 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>DataTools — Local CSV / Excel Cleaning for Shopify, Bookkeepers, and RevOps</title>
<meta name="description" content="One desktop tool. Three workflows. Clean Shopify customer exports, reconcile messy bank statements, or dedupe lead lists across HubSpot and LinkedIn — all locally. $49 one-time." />
<link rel="canonical" href="https://datatools.app/" />
<link rel="stylesheet" href="_shared/styles.css" />
<meta property="og:title" content="DataTools — Local CSV / Excel Cleaning" />
<meta property="og:description" content="One desktop tool, three niche workflows. Runs entirely offline. $49 one-time." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://datatools.app/" />
<style>
/* Apex-pageonly tweaks: persona cards are slightly bigger and use
per-card accent borders so the visitor visually identifies which
card matches their work in <2 seconds. */
.persona-grid {
display: grid; gap: 24px;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
margin-top: 28px;
}
.persona-card {
background: var(--surface);
border: 1px solid var(--rule);
border-radius: var(--radius);
padding: 28px;
display: flex; flex-direction: column;
transition: transform 0.08s ease, border-color 0.15s ease, box-shadow 0.2s ease;
text-decoration: none;
color: inherit;
}
.persona-card:hover {
transform: translateY(-2px);
border-color: var(--card-accent, var(--accent));
box-shadow: var(--shadow);
text-decoration: none;
}
.persona-card.shopify { --card-accent: #6ee7b7; }
.persona-card.bookkeeper{ --card-accent: #7dd3fc; }
.persona-card.revops { --card-accent: #c4b5fd; }
.persona-card .pill {
display: inline-block;
background: rgba(255,255,255,0.04);
color: var(--card-accent, var(--accent));
border: 1px solid var(--card-accent, var(--accent));
padding: 4px 10px; border-radius: 999px;
font-size: 12px; font-weight: 600;
letter-spacing: 0.04em;
margin-bottom: 12px;
align-self: flex-start;
}
.persona-card h3 {
color: var(--text);
font-size: 22px;
margin-bottom: 12px;
}
.persona-card p {
color: var(--text-soft);
flex: 1;
margin-bottom: 16px;
}
.persona-card .pain {
font-size: 14px; color: var(--text-mute);
margin: 8px 0 18px;
}
.persona-card .pain li { margin-bottom: 4px; }
.persona-card .open {
color: var(--card-accent, var(--accent));
font-weight: 600;
font-size: 15px;
}
.persona-card .open::after {
content: " →";
transition: margin-left 0.15s ease;
}
.persona-card:hover .open::after { margin-left: 4px; }
</style>
</head>
<body>
<!-- Sticky brand bar (no buy CTA on the apex — visitor hasn't picked a niche yet) -->
<div class="buybar">
<div class="buybar-inner">
<div class="brand"><span class="brand-mark"></span> DataTools</div>
<div>
<span class="price-tag">Pick your workflow ↓</span>
</div>
</div>
</div>
<section class="hero">
<div class="container">
<div class="eyebrow">For Shopify operators · bookkeepers · marketing & RevOps agencies</div>
<h1>Local CSV / Excel cleaning.<br /><strong>One tool. Three workflows.</strong></h1>
<p class="lead">
DataTools is a desktop app that fixes the data-cleaning headaches
every small business hits — duplicates Excel can't catch,
international phones it can't parse, dates and currencies in three
different formats per export. One $49 download. Works on Mac,
Windows, and Linux. <strong>Your data never leaves your
computer.</strong>
</p>
<div class="persona-grid">
<a class="persona-card shopify" href="shopify-pet/">
<span class="pill">🛍️ Shopify operator</span>
<h3>Customer / vendor / subscriber export cleanup</h3>
<p>
Klaviyo-import-ready customer lists in 30 seconds. Catches
cross-device duplicates, standardizes international phones
and addresses, fixes the disguised nulls that break product
feeds.
</p>
<ul class="pain">
<li>· Fix Klaviyo per-contact billing on phantom dupes</li>
<li>· Repair feeds rejected by Google Merchant / Meta</li>
<li>· Unify orders from Shopify + Etsy + Amazon + Faire</li>
<li>· Resolve VAT-MOSS country-name drift</li>
</ul>
<span class="open">Open the Shopify demo &amp; pricing</span>
</a>
<a class="persona-card bookkeeper" href="bookkeeper/">
<span class="pill">📒 Bookkeeper / accountant</span>
<h3>Bank-export reconciliation with audit trail</h3>
<p>
Catches the duplicate transaction QuickBooks imported twice
when Jan and Feb exports overlap. Standardizes dates,
amounts, and vendor casing. Hands you a row-level audit log
to share with the client.
</p>
<ul class="pain">
<li>· Catch month-overlap re-import dupes</li>
<li>· Consolidate vendors for clean 1099 reports</li>
<li>· Produce hand-off-ready audit trail</li>
<li>· Multi-currency books (EUR / GBP / BRL)</li>
</ul>
<span class="open">Open the bookkeeper demo &amp; pricing</span>
</a>
<a class="persona-card revops" href="revops/">
<span class="pill">🪢 Marketing / RevOps</span>
<h3>Lead-list dedup across HubSpot, LinkedIn, scrapes</h3>
<p>
One canonical lead per real person — across HubSpot,
LinkedIn, Apollo, ZoomInfo, and manual scrapes.
International phones (50+ country codes), per-row country
column, fuzzy match with merge.
</p>
<ul class="pain">
<li>· Stop paying HubSpot tier price for cross-source dupes</li>
<li>· Protect sender reputation from invalid emails</li>
<li>· Skip the 48 wk GDPR review on cloud cleaners</li>
<li>· Suppression-list sync across 5+ platforms</li>
</ul>
<span class="open">Open the RevOps demo &amp; pricing</span>
</a>
</div>
</div>
</section>
<section>
<div class="container">
<div class="eyebrow">What's the same across all three</div>
<h2>One engine. Same six tools. Same $49.</h2>
<p>
The persona pages above are positioning, not different products.
Whichever you buy, you get the full bundle: Find Duplicates, Clean
Text, Standardize Formats, Fix Missing Values, Map Columns,
and Automated Workflows — pre-tuned with a saved pipeline
that matches your workflow.
</p>
<div class="grid">
<div class="card">
<span class="icon">🔒</span>
<h3>Local-first</h3>
<p>Desktop app. No cloud upload, no SaaS account, no subscription. Verify zero outbound calls in your browser's network tab.</p>
</div>
<div class="card">
<span class="icon">📋</span>
<h3>Auditable</h3>
<p>Every cell change is logged with the original value, the new value, and which rule fired. Hand the audit CSV to your client.</p>
</div>
<div class="card">
<span class="icon">🌍</span>
<h3>International</h3>
<p>50+ country codes, per-row country awareness, EU comma decimals, parens-negative amounts, locale-aware month names.</p>
</div>
<div class="card">
<span class="icon">⚙️</span>
<h3>Repeatable</h3>
<p>Save your cleanup as a JSON pipeline. Re-run on next week's export with one CLI command. Same cleanup, zero re-config.</p>
</div>
<div class="card">
<span class="icon">📦</span>
<h3>Cross-platform</h3>
<p>Mac · Windows · Linux installers. Code-signed for macOS Gatekeeper. Free updates for the v1.x line.</p>
</div>
<div class="card">
<span class="icon">💰</span>
<h3>$49 one-time</h3>
<p>No subscription. No per-client license. No row caps. No AI black-box.</p>
</div>
</div>
</div>
</section>
<section>
<div class="container" style="text-align: center;">
<h2>Pick your workflow above to try the live demo.</h2>
<p class="muted">Or read the docs first — every tool has a CLI, every pipeline is JSON, every change is audited.</p>
</div>
</section>
<footer>
<div class="container">
<div>
<p><strong>DataTools</strong> — local data-cleaning for Shopify, bookkeepers, and RevOps teams.</p>
<p class="muted">© 2026 · Built solo · Shipped from a small office.</p>
</div>
<div>
<p>
<a href="shopify-pet/">For Shopify operators</a> ·
<a href="bookkeeper/">For bookkeepers</a> ·
<a href="revops/">For RevOps agencies</a><br />
<a href="mailto:hello@datatools.app">Email support</a>
</p>
</div>
</div>
</footer>
</body>
</html>