SmartGen · smartgentools.com

Your site reports three different tool counts. Here's what I could actually verify, and a plan for the rest.

Homepage says 131+. The live tools directory says 57+. The footer says "80+" for the Code Library alone. Before writing a word of API documentation, I checked the repo and the live site directly — findings, a reusable template, one fully-written example, and a real checklist for the other 52 items follow.

What's actually true right now

Checked against the live site and the repo itself — not against the repo's own guideline files, per your instruction.

Confirmed

All 130+ tools are 100% client-side — there's no REST API behind them

Checked the QR Generator directly: it states plainly that nothing typed is sent to a server, and builds the code on-device with the qrcodejs library. Same pattern on every tool page checked. There's no request/response cycle here to document as a traditional API.

Stale, exactly as you flagged

The repo's own "Link Status Report" is out of date

README.md lists 80 /html-code-library/ URLs as 404, dated 2026-07-14. I opened /html-code-library/html-bold/ directly — it loads fine, with a live tool, a browser-compatibility table, and related-page links. That report is nearly a month stale. I'm treating live pages as ground truth, not that file, for the rest of this project.

Needs a decision

The Code Library's live pages point at a different repo

/html-code-library/html-bold/ links to github.com/bayzed123/smartgen-horizon as its source — not SmartGenQR.oi, the repo you sent. Before I document the Code Library specifically, I need to know which repo is actually deployed, so the docs point at real source.

Worth fixing

Three tool counts, three answers

Homepage: 131+. /tools/ page meta: 57+. Footer: "HTML Code Library (80+)". Adding the 49 standalone tools I found on /tools/ to the library's ~80 snippet pages lands close to 131 — so that's likely the real number — but worth standardizing on one figure across the site.

Scaffold, not real content

docs.smartgentools.com reads like unfilled template

It's live — 68 pages — but its "API Reference" and "SDKs" sections (JavaScript, Python, PHP, Java, Go) look like the default starter content that ships with your SmartGen Docs generator, not documentation of your actual client-side tools. I won't carry that structure into the real docs — see the Approach tab.

Small but breaks links if ignored

URL pattern isn't consistent

Most tools live at smartgentools.com/tool-name/. Three — CPM ROI Calculator, Color Palette Extractor, EMI Calculator — live at smartgentools.com/tools/tool-name/ instead. Flagged in the checklist so the contextual internal links you asked for don't 404.

What "API documentation" should mean here

A REST-style reference (auth, endpoints, rate limits) doesn't describe a tool that makes zero server calls. Here's the split I'd suggest instead.

~130 client-side tools
A Technical Reference per tool: what it does, how it processes data in-browser, inputs, output, constraints, embed notes, related tools. No auth or endpoints, because there aren't any. Structure is on the Template tab.
3 backend candidates
SEO Audit Tool, the chatbot system (CHATBOT_README.md), and backend/smartgen-platforms are the only parts of the repo that plausibly call a real server. I haven't opened those three yet — they're the ones worth true endpoint-style docs (auth, request/response, error codes), pending your confirmation on scope.
docs.smartgentools.com
Its API Reference / SDK section only makes sense to keep if you're genuinely exposing a callable API to other developers. If it's leftover scaffold from setting up the docs generator, I'd replace that section rather than fill in its blanks with invented content.

Confirm the live repo for the Code Library — SmartGenQR.oi or smartgen-horizon — so internal links and source references point at the right place.

Confirm scope on the 3 backend candidates — do the SEO Audit Tool, chatbot, and backend/smartgen-platforms actually call a server? That decides whether they get REST-style docs or the same Technical Reference as everything else.

Approve or adjust the template on the next tab — happy to add category-specific fields (a Formula field for calculators, a Legal/ToS note for generators) as separate reusable prompts, matching how you wanted the build prompts split up.

I work the checklist in batches, verifying each live page before writing — not from the repo's existing guideline files.

The reusable structure

One shape, applied to every client-side tool, so 130 pages read as one coherent reference instead of 130 one-offs.

Name & purpose
Tool name plus a one-line statement of what it does.
Category
Which of the site's existing groupings it sits in (Developer & Technical, SEO & Content, etc.) — keeps navigation and cross-links consistent.
How it processes data
The client-side technique or library involved, and an explicit "nothing leaves your browser" statement where true — this is the one line every tool page should share.
Inputs
Every field the tool takes, field-by-field, pulled from the live form — not assumed.
Output
Format, dimensions or size, and what happens on download or copy.
Constraints & edge cases
The caveats that matter before someone relies on the output — the QR page's own "reality check" section is the right model.
Embed / reuse notes
Filled in once I've read the tool's actual source — flagging this honestly rather than guessing at a JS API that may not exist.
Related tools
2–4 real internal links to tools that pair naturally — the contextual linking you asked for, done the way qr-generator already does it.
Live page
Direct link to the working tool.
Screenshot
Auto-captured — see the Screenshots tab.
Last verified
Date I last checked the live page against this entry — so nothing here goes stale the way the Link Status Report did.
Worked example

The template above, filled out for one real tool — written from the live page, not the repo's marketing copy.

QR Code Generator

smartgentools.com/qr-generator/ · Developer & Technical
Purpose
Builds a scannable QR code from 13 input types — URL/text, WiFi, vCard, WhatsApp, email, SMS, phone, location, event, PayPal, app-store link, crypto address, social profile.
Processing
100% client-side. Renders the matrix on-device using the open-source qrcodejs library — nothing typed is sent to a server before the code appears.
Inputs
Varies by type (e.g. WiFi: SSID, password, encryption — WPA/WPA2, WEP, or none). Optional: center logo image, foreground hex color.
Output
220×220px PNG, downloaded directly from the browser. No watermark, no account.
Constraints
Static only — the destination is locked at creation, no scan tracking. Error correction fixed at level H (~30% recoverable) to tolerate a logo capped at ~20% of code width. Low-contrast colors are the most common cause of scan failure.
Embed / reuse
Not yet filled in — needs a read of the actual source file to describe any reusable function, not the marketing page.
Related tools
UTM Builder (tag a destination URL before generating), WhatsApp Link Generator (link-only version of the WhatsApp type), Color Palette Extractor (match a brand hex exactly).
Full build checklist

Every tool I could confirm live, grouped the way your own site groups them, plus the 4 sitewide systems. Progress saves automatically in this document.

Loading…

Loading checklist…

Checked items are yours to mark — I'll track real progress against this same list as we go.
Screenshots — what I can and can't do

Straight answer first: I can't run Playwright myself. My code environment has no live internet access, so I can't open your pages or capture anything from them directly.

Practical alternative

A script that fits your existing setup

You're already running GitHub Actions for the changelog and Pages deploy, and using pnpm. This drops into the same pattern: a Playwright script plus a scheduled workflow that screenshots every live tool page and commits the images automatically — no manual screenshotting, and it stays current as pages change.

scripts/capture-doc-screenshots.js
// Reads a { slug, url } list and screenshots each live page.
// Point TOOLS at your real assets/js/search-data.js TOOLS_INDEX once confirmed.
const { chromium } = require('playwright');
const fs = require('fs');
const path = require('path');

const OUT_DIR = path.join(__dirname, '..', 'docs-assets', 'screenshots');
const TOOLS = require('../data/doc-tools-list.json'); // [{ slug, url }, ...]

(async () => {
  fs.mkdirSync(OUT_DIR, { recursive: true });
  const browser = await chromium.launch();
  const page = await browser.newPage({ viewport: { width: 1280, height: 800 } });

  for (const tool of TOOLS) {
    try {
      await page.goto(tool.url, { waitUntil: 'networkidle', timeout: 30000 });
      await page.screenshot({
        path: path.join(OUT_DIR, `${tool.slug}.png`),
        fullPage: true
      });
      console.log(`saved: ${tool.slug}`);
    } catch (err) {
      console.error(`failed: ${tool.slug} — ${err.message}`);
    }
  }

  await browser.close();
})();
.github/workflows/doc-screenshots.yml
name: Update doc screenshots
on:
  workflow_dispatch: {}
  schedule:
    - cron: '0 3 * * 1'   # weekly, Monday 03:00 UTC

jobs:
  screenshot:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - run: npm install playwright && npx playwright install --with-deps chromium
      - run: node scripts/capture-doc-screenshots.js
      - uses: stefanzweifel/git-auto-commit-action@v5
        with:
          commit_message: "docs: refresh tool screenshots"
          file_pattern: docs-assets/screenshots/*.png

Swap data/doc-tools-list.json for the real path once you confirm it — your own README points to assets/js/search-data.js and its TOOLS_INDEX array as the canonical tool list, which is the right source to generate this from rather than maintaining a second list by hand.