# Components & connector

Build your UI from scratch against the [SDK](/build/sdk), or use Foundation's built-in web components
for the common screens.

## Built-in components

Import the component bundle and expose your initialized instance:

```ts
import 'foundation-sdk/components'
;(window as any).__foundation = foundation
```

Then drop components into your markup — for example, a service-connect button:

```html
<foundation-connect integration-id="github-oauth"></foundation-connect>
```

Components emit `success`, `error`, and `close` events. In Vue, configure `isCustomElement` for
`foundation-*` tags.

## The connector

However you host your frontend ([Frontend](/platform/frontend)), the connector handles bootstrapping,
auth, websockets, and access to your entities and integrations — so your UI is wired to the backend
without glue code.

## Bring your own UI

Prefer full control? Skip the components and call the [SDK](/build/sdk) directly. Login, data, billing,
and integrations all work the same way.

## Reference

- [SDK reference](/api/sdk) · [Frontend](/platform/frontend)
