Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Choose a delivery form to send info to a company's delivery inbox
Translation pending
AI summary · website content
BusinessHTML · LiquidGitHub @leokatz97OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Working repository for the Brant Business Interiors (BBI) Shopify cleanup. BBI is the furniture division of Brant Basics, owned by Office Central (founded 1964). B2B institutional Canadian buyers — school boards, hospitals, municipalities, OECM-eligible.
| Need | File |
|---|---|
| The live task list — what's done, in progress, blocked | docs/plan/shopify-fix-plan.md |
| Most recent status snapshot | docs/plan/status-snapshot-2026-04-20.md |
Interactive HTML checklist (the update-checklist skill writes here) | previews/website-fix-checklist.html |
| Parking lot of ideas (not active work) | docs/plan/ideas-backlog.md |
| Brand voice + ICP + messaging | docs/strategy/icp.md |
| Approved product-description samples | docs/strategy/voice-samples.md |
| Script reference — what each script does + how to run | scripts/README.md |
.
├── docs/ Plans, strategy, workflows, review artifacts
│ ├── plan/ Active fix plan + status snapshots + idea backlog
│ ├── strategy/ Brand voice, ICP, segment analysis, competitor research
│ ├── workflows/ How-to runbooks (shipping tiers, taxonomy, design)
│ └── reviews/ Auto-generated review artifacts (for Steve's approval)
├── scripts/ 50 Python/Node helpers — read/write Shopify, clean data
├── data/ Everything scripts read/write (CSVs, JSON, logs, backups)
│ ├── specs/ Per-product spec JSON from lookup-specs.py (Hero 100)
│ ├── reports/ Proposal CSVs (tags, industry) — source of truth for pushes
│ ├── redirects/ URL redirect CSVs for Shopify Admin upload
│ ├── exports/ Full Shopify product/order exports (reference snapshots)
│ ├── backups/ Pre-change snapshots (menus, products, collections)
│ ├── logs/ Push audit trails (timestamped JSON)
│ └── oci-photos/ 48 real project photos scraped from officecentral.com
├── previews/ Browser-viewable HTML — the checklist, review pages, before/afters
├── theme/ Shopify theme code (layouts/sections/snippets/templates)
└── .claude/ Launch configs + agent tooling — ignore unless changing harness
Most scripts follow the same pattern:
python3 scripts/<name>.py # dry run (default — shows what would change)
python3 scripts/<name>.py --live # actually writes to Shopify
python3 scripts/<name>.py --limit=10 # smoke-test on first 10
.env (SHOPIFY_TOKEN=...). Never commit .env.push-* script backs up to data/backups/ and logs to data/logs/ before writing.python3 scripts/serve-previews.py # serves previews/ at http://localhost:8080/
The website-fix-checklist opens at http://localhost:8080/website-fix-checklist.html.
The theme only reads metafields (never writes them — set via Admin API / scripts). Canonical registry of the custom namespaces + keys the live theme depends on:
| Namespace.key | Type | Read by | Purpose |
|---|---|---|---|
collection.metafields.faq.items | list.single_line_text_field | ds-cs-base.liquid (FAQ band) → bbi-faq-jsonld.liquid | Collection FAQ source of truth. One "Question||Answer" string per list entry; entries missing the || delimiter are skipped. Drives the visible accordion and the FAQPage JSON-LD (the two are byte/decode-equal). Added in Step 2.1; populated per category page in Step 2.2. |
article.metafields.faq.items | list.single_line_text_field | ds-article.liquid (FAQ section + FAQPage JSON-LD) | Same "Question||Answer" convention for blog articles. Populate only where the post has real, visible on-page Q&A (Google requires markup to mirror the visible section). |
collection.metafields.bbi.parent_hub_handle | single_line_text_field | ds-cs-base.liquid (breadcrumb + parent-hub derivation) | Handle of the parent category hub for a sub-collection (e.g. seating). Set on bariatric-seating in Step 2.0 when it moved to templateSuffix=base. Section-setting fallback applies when the metafield is blank. |
collection.metafields.bbi.parent_hub_title | single_line_text_field | ds-cs-base.liquid (breadcrumb label) | Display title of the parent hub (e.g. Seating). Pairs with parent_hub_handle. |
product.metafields.specs.* | mixed | bbi-product-jsonld.liquid (additionalProperty[]) + PDP spec table | Per-product spec fields from the enrichment pipeline (Hero 100). See docs/strategy/brand-canonical-map.md for the specs.manufacturer canonical vocabulary. |
*.metafields.global.title_tag / global.description_tag | single_line_text_field | Shopify SEO meta (<title> / <meta name="description">) | Native SEO title/meta; always apply regardless of template. |
JSON-LD emitter inventory (which snippet emits what schema, per surface) lives in docs/audits/schema-audit-2026-05-27.md.