Documentation Restructure - Handoff Notes
Restructure of the Bindbee docs against the Bindbee API Doc & DX Assessment, using the Diátaxis framework (Tutorials / How-To / Reference / Explanation). Date: 2026-07-31What changed
Navigation (docs.json)
Replaced the four mixed-axis anchors (Documentation / SDK / Webhooks / Custom Fields, with
five sub-tabs mixing intent-based and product-based grouping) with four intent-based tabs:
On model grouping: an intermediate category layer (Core / Compensation & Payroll / Benefits /
Time & Attendance / Banking, and the ATS and LMS equivalents) was built and then removed by
request, to keep the sidebar at two levels - product → model → endpoints.
The models are therefore a flat list again, but ordered logically instead of alphabetically,
which retains most of the benefit: related models are adjacent, and Employee - the hub model
almost everything hangs off - is first rather than buried between Dependent Benefits and Employee
Payroll Runs.
The residual cost is scanning: HRIS has 18 model groups and ATS 16 in a single ungrouped column.
If that proves hard to scan in practice, restoring the category layer for HRIS only is a
two-line change.
Also added:
contextual.options(copy,view,chatgpt,claude) - the unused Mintlify AI features in §4.2. This gives the per-page “copy as markdown / open in Claude” menu, addressing the “can I give context to my coding agent?” builder gap.- Global anchors linking to
status.bindbee.devandtrust.bindbee.dev(§2.1 security question).
API Reference is five groups
icon.
Mintlify constraint: the expanded property only affects nested groups. Top-level groups
always render expanded and cannot be collapsed. So API Basics / Platform / HRIS / ATS / LMS are
permanent section headers; the resource groups inside them (Employee, Connectors, Passthrough…)
are the collapsible dropdowns, collapsed by default.
To make the products themselves collapsible they would have to become nested groups under a
single top-level wrapper - which re-adds the nesting level removed earlier. Not done; flagged
as a trade-off.
Custom Fields pages split by type
The Custom Fields section mixed reference and guidance. It is now split by what each page is:
No files moved on disk - URLs unchanged. See open item 8 for the content overlap this exposes.
One page merged, one redirect added
sdk/integrations.mdx and the connector coverage page were merged into a single
/integrations page - slugs, connection type, models, and how to check a
live connector’s real coverage now live in one place. A redirect from /sdk/integrations
keeps the old URL working.
Every other existing URL is unchanged: no other files were moved or renamed, only re-parented
in navigation.
New content (32 pages)
Get Started (get-started/) - the 2/10 Tutorials quadrant
what-is-bindbee.mdxquickstart.mdx- signup → first unified employee record, ~10 min, with a troubleshooting tablecore-concepts.mdxtutorials/connect-your-first-customer.mdxtutorials/read-employee-data.mdxtutorials/read-benefits-and-payroll-data.mdxtutorials/handle-webhooks.mdxtutorials/write-data-back.mdx
explanation/) - the other 2/10 quadrant
how-syncing-works.mdxconnector-lifecycle.mdxdata-freshness.mdxhris-model-relationships.mdxbenefits-models.mdx- Benefit vs Employer Benefit vs Dependent Benefitfield-semantics.mdx- answers “why is [field] null?” and “modified_at updated but the data didn’t change”, both marked Not addressed in the assessmentpassthrough-when-and-why.mdxcustom-fields-mental-model.mdxmeta-api-schema-discovery.mdxsftp-vs-api.mdxwebhooks-vs-polling.mdxsecurity-and-compliance.mdx
how-to/)
authenticate.mdx- the step-by-step path the assessment flagged as brokeninstall-sdks.mdxpaginate.mdxfilter-with-modified-after.mdxmap-custom-fields.mdxuse-passthrough.mdxhandle-errors.mdxvalidate-webhook-signatures.mdxmonitor-sync-status.mdxforce-a-resync.mdxgo-live-checklist.mdx
integrations.mdx- merged integration slug list + coverage guidance
Roadmap coverage (assessment §6)
Open items needing product/engineering confirmation
These are the places where the repo did not contain enough information to write something verifiable. Everything else in the new content is grounded inspec.json, existing pages, or
the OpenAPI schemas.
1. Connector coverage matrix - per-connector model/field support
integrations.mdx lists every integration, its slug, and its connection type
(API vs SFTP) - all verifiable from the previous integrations page. It does not contain a
per-connector × per-model support grid, because that data lives in the portal, not in this repo.
The page currently teaches readers to query coverage themselves via /api/{category}/v1/integrations
and per-model probe requests. That is honest and useful, but it is not the searchable matrix the
assessment asks for.
To finish it: export the model/field support data from the portal and render it as a
filterable table. If an endpoint exposing it exists or is planned, the page should link to it.
2. SDK claim (Python / Node / Go)
The assessment notes the website mentions SDKs that aren’t in the docs. I could only verify two Bindbee-published packages in this repo:@bindbee/react-link(npm) - frontend Embed hookhttps://cdn.bindbee.dev/initialize.min.js- frontend Embed via CDN
how-to/install-sdks.mdx therefore documents the two verified frontend packages and provides a
production-shaped HTTP client (retry, pagination, both auth headers) in Python, Node and Go
instead of claiming SDKs that may not exist.
Action required: confirm whether server-side SDKs exist.
- If they do → replace the hand-rolled clients on that page with install instructions.
- If they don’t → the website claim should be corrected.
3. Changelog - dropped by request
The changelog page was removed. This leaves the assessment’s maintainer question “Did Bindbee change something? Where’s the changelog?” unanswered - it was a P0 with “Exists for all” competitors. Two notes if it is ever revisited:- The gap is real but it is a process problem, not a docs problem. A changelog only helps if entries ship with the change; a stale one is worse than none.
- The breaking-change policy is the part builders actually need, and it now has no home. Specifically: new enum values are additive and ship without notice, which is why field-semantics tells readers never to write an exhaustive switch over a Bindbee enum. Consider stating that policy somewhere permanent.
4. Sync internals
explanation/how-syncing-works.mdx describes the sync lifecycle from observable behaviour -
status fields, sync_progress, webhook events, the 24-hour default. It deliberately does not
claim whether syncs are full or incremental upstream, because the repo doesn’t say.
If Bindbee does incremental extraction, saying so would strengthen the page. Worth an
engineering review pass.
5. Security certifications
explanation/security-and-compliance.mdx covers API-level security (credential scope, environment
isolation, regions, webhook signing, shared responsibility) and points at
trust.bindbee.dev as the authority for SOC 2 / HIPAA / GDPR rather than restating claims that
would go stale. Confirm that is the preferred posture.
6. modified_after endpoint coverage
how-to/filter-with-modified-after.mdx notes the parameter is available across unified list
endpoints. It is confirmed on /api/hris/v1/employees in spec.json; a sweep confirming which
endpoints accept it would let that hedge be removed.
8. Custom Fields content overlap
Re-filing the Custom Fields guides by type put them next to the new pages, which makes a real duplication visible:
Both pairs are now adjacent in the sidebar, so a reader sees two answers to the same question.
The existing pages are good and were written recently - this is not a quality problem, it is a
“say it once” problem.
Suggested resolution: keep
custom-fields/overview.mdx as the conceptual page and fold the
unique parts of the new mental-model page into it; keep how-to/map-custom-fields.mdx as the
task page and let dashboard.mdx / api-workflow.mdx become the tool-specific detail it links
to. Left alone pending a decision, since it means editing pages that were not part of this
restructure.
7. Help Center
The assessment proposeshelp.bindbee.dev (§7.2). It does not appear to exist yet, so it is
not linked from the nav - a dead nav link is worse than an absent one. Add the global anchor
once it’s live.
Pre-existing issues found (not introduced by this work)
None were changed, since they’re outside the restructure scope. The Discord-hosted images are the
most urgent - those URLs expire.
Verification performed
mintlify dev run before merging to confirm rendering.