Start here
Introduction
Build apps on your own Awesomate data. Sign your customers in, show them their records as they change, and let them act, with the rules about who sees what kept in your own database.
@awesomate/sdk is the JavaScript and TypeScript library for building on an Awesomate account. Every Awesomate account has its own database: its contacts, and any tables you add for an app (jobs, bookings, messages). The SDK reads and writes that data, from your server or straight from a web page.
npm install @awesomate/sdkTwo clients
| App client | Server client | |
|---|---|---|
| Made with | createAppClient({ publishableKey }) |
createClient({ token }) |
| Runs in | A web page or mobile app | Your server, a script, an n8n workflow |
| Acts as | The person signed in to your app | Your account, or one app's server key |
| Key | A publishable key (pk_), not a secret |
A token (amt_pat_) or app key (ak_), both secrets |
| Plan | Pro and above | Reading on every plan; writing Support Plus and above |
The SDK builds on Contacts, which is reaching accounts in stages: if it isn't on your account yet, the hub tells you, and so does the SDK (a feature_unavailable error that says so). db.whoami() lists what the account has before you ask.
The app client is for the people your business serves: customers, members, your own staff in the field. They sign in with an emailed link, no password, and every read and write runs as them.
The server client is for you and your systems. It reads and writes the account's data with a secret, so it never goes in a browser.
What you can build
- A customer portal. Customers see their own jobs and quotes, message your team and accept a quote. Staff see everything. The tutorial builds one.
- A members' area. Bookings, classes, documents, each person seeing only their own.
- Your own tools. A dashboard on your contact list's numbers, a script that tidies records, an n8n workflow that writes a job when a form comes in, a help box on your server that answers from the business's Knowledge.
Who sees what is decided by the database
You never filter rows in your code to keep people apart. Each table (a kind) has rules, by role: a customer reads jobs whose customer is them, staff read every job. The rules live in your account's database and are applied to every read, every write and every live update, whichever client or tool makes the call. See How access works.
Where to start
- Quickstart: sign a person in on a web page and list their records, in a few minutes.
- Build a customer portal: the whole thing, step by step.
- Reference: every method, generated from the SDK's own code.
Sister docs
The Awesomate MCP docs cover Claude Code working on your account: it can set up the kinds, rules and apps this SDK uses, by asking in plain words.
For AI tools
These docs are also published as plain text for AI assistants: llms.txt lists the pages, and llms-full.txt has all of them in one file. If you build with Claude Code and the Awesomate MCP connected, Claude can also set up your kinds, rules and apps for you.