Solutions
Solutions
Each solution pairs one or more Skills with the packages they describe.
A typed data layer from an OpenAPI spec
Generate hooks per service and keep transport and caching in two stable Seams.
- kubb-react-query sets up one generated package per service.
- @cogs/kubb-transforms wires the output to @cogs/fetch-client and @cogs/react-query.
- Regenerate freely: the generated code is disposable, the Seams are stable.
Shareable tables and forms
Put list state in the URL and edit large tables without a hand-rolled hook per screen.
- nuqs-table-url-state: one createTableUrlState config per screen.
- shadcn-data-table-rhf: editable tables with shared dirty and error state.
- shadcn-react-hook-form-forms: single-object forms with a generated zod schema.
Quote-wrapped secrets, before and after deploy
Catch the same bug locally with config-lint and on a live Render service with env-doctor.
- config-lint reads the local Env chain and never calls the network.
- cogs-env-doctor checks a live service and fixes one key with read-back.
- Both report a Finding with exit code 3.
One auth and email plane for a Site family
Share token verification, new-device email and auth config across many Sites.
- @cogs/auth resolves an Auth role from the Role providers you configure.
- @cogs/auth-events and the Send service send the new_device_login email per Brand.
- Terraform and cogs-supabase-sync give every Site the same SES, DNS and auth settings.