---
# System prepended metadata

title: Structure

---

---
title: "Structure"
description: Learn how to get started with the Setster API.
---

## Config

In this workspace we have everything that is related to configuring the widget. In here you can add a custom local config file as well as custom theme files.

```bash
config
├───cert/ /* Optional: Development ssl certificate */
│   ├───csr.pem
│   ├───key.pem
│   └───server.crt
├───src/
│   ├───theme/ /* Configure theme styles */
│   │   └───defaultTheme.ts
│   ├───build.ts
│   ├───constants.ts
│   ├───styles.json
│   ├───styles.local.json /* Add new theme */
│   ├───settings.json
│   ├───settings.local.json /* Add new configuration */
│   └───settings.ts
├───package.json
├───tsconfig.json
└───webpack.config.ts
```

#### Cert

This folder keeps an https certificate that is used when starting the widget in development mode so that it runs on https.

#### Src

This is the main folder of the Config workspace. In this folder you need to create a settings.local.json file which will overwrite the default settings.json file. This file will have all the settings needed for the widget. In order to customize the settings we recommend duplicating the default settings file and renaming it to settings.local.json.

#### Theme

In this folder we have the defaultTheme.ts file which is the default widget theme file. In this folder you can add different theme files to fully customize the widget style. When adding a new theme file you need to duplicate the defaultTheme.ts file and change its name to `styles.local.json`.

#### Settings.json

This is the default settings file. Right now it has settings set in it but in the end this will be empty and we will automatically create a settings.local.json file so that there is no need to create it manually.

## Web

This workspace was added in order for users to extend the core components in case they want to add custom functionality. This feature is not yet developed in the beta. For now, in here we keep the initialization files. The app is started from this workspace. We also keep assets that users will want to add to the default theme and also assets that can be used in the settings file, like tiles images and icons.

```bash
web
├───assets/
│   └───img/
├───public/
│   └───index.html
├───src/
│   ├───templates/
│   │   └───app.html
│   ├───App.tsx
│   ├───index.css
│   ├───index.tsx
│   └───react-app-env.d.ts
├───.eslintcache
├───README
├───package.json
└───tsconfig.json
```

### Assets

In this folder user can add assets like images that will be transferred to the build folder. These assets can be used in different steps configured in the settings.json) file. Also they can be used in the custom themes that users can create.

### Src

This folder keeps the application initialization file. From this folder the app is being initialized.
