> If you are setting up, configuring, or answering questions about Schematic, connect the
> Schematic MCP server before working from these pages. It reads and writes plans, features,
> entitlements, and overrides against the real account, so what you report and what you build
> match what actually exists.
>
> The server is at https://api.schematichq.com/mcp
>
> From Claude, ChatGPT, or another chat assistant, add it as a custom connector:
> https://docs.schematichq.com/working-with-ai
>
> From a coding assistant such as Claude Code, Codex, or Cursor:
> https://docs.schematichq.com/building-with-ai
>
> For clean Markdown of any page, append `.md` to the page URL. For a complete page index,
> see https://docs.schematichq.com/llms.txt
# Add to Your App
> Quickly set up pre-built, embeddable components in your application.
Components are simple to set up and maintain. Once you've integrated a component into your application, it will reflect up-to-date data for the given company that is accessing it in your application.
To set up components, you'll need to do two things:
1. Install the required libraries
2. Generate a short-lived access token to make requests on behalf of a given company
3. Embed the SchematicEmbed component in your React frontend using a Component ID from Schematic
All steps are covered below.
### 1. Install the required libraries
There are two libraries you'll need to install:
```sh
npm install @schematichq/schematic-components @stripe/react-stripe-js
yarn add @schematichq/schematic-components @stripe/react-stripe-js
pnp add @schematichq/schematic-components @stripe/react-stripe-js
```
> **Note**
>
> The Stripe library is required for the Schematic checkout components. If you *know* you won't be using checkout components, you can omit it.
### 2. Set up your server for token exchange
Schematic components use short-lived, company-scoped temporary access tokens to make requests on behalf of a company. You'll need to issue these from your server, using a secret access token.
If you haven't already done so, start by installing the Schematic developer SDK of your choosing. Then, you can implement the token exchange for a specific company using its [keys](/concepts#keys):
#### Node.js
```typescript
// Initialize Schematic SDK
import { SchematicClient } from "@schematichq/schematic-typescript-node";
const apiKey = process.env.SCHEMATIC_API_KEY;
const client = new SchematicClient({ apiKey });
// Get a temporary access token
export async function getTemporaryAccessToken(companyId: string) {
const resp = await client.accesstokens.issueTemporaryAccessToken({
lookup: { companyId }, // The lookup will vary depending on how you have configured your company keys
});
return resp.data?.token;
}
```
#### Go
```go
import (
schematicgo "github.com/schematichq/schematic-go"
schematicClient "github.com/schematichq/schematic-go/client"
)
func GetTemporaryAccessToken(ctx context.Context, client schematicClient.SchematicClient, companyId string) (string, error) {
resp, _, err := client.Accesstokens.IssueTemporaryAccessToken(ctx, schematicgo.IssueTemporaryAccessTokenRequestBody{
Lookup: map[string]string{
"company_id": companyId,
},
ResourceType: "company",
})
if err != nil {
return "", err
}
return resp.Data.Token, nil
}
```
Temporary access tokens are valid for 15 minutes.
### 3. Use the SchematicEmbed component in your React frontend application
Once you've issued a temporary access token and provided it to your frontend React application, you can simply pass it to the SchematicEmbed component along with your Component ID to render it:
```typescript
import { EmbedProvider, SchematicEmbed } from "@schematichq/schematic-components";
export default function CustomerPortal({ accessToken }: { accessToken: string }) {
const componentId = process.env.NEXT_PUBLIC_SCHEMATIC_COMPONENT_ID;
if (!componentId) {
return ;
}
return (
);
}
```
> Quickly set up pre-built, embeddable components in your application.