# Workshop and Store

The [Workshop](/en/atolye/) is where CYD Studio users share `.py` projects. Filter by board and category, read the code in the browser, download the file, or pull it onto the board with one click from the panel's **Store** tab.

## Sharing

The **Share a project** button opens a form: title, description (what it does, which pins are wired, how to run it), which boards it runs on, categories (1–4), files and the license confirmation.

- You can share anonymously, with an optional nickname. You receive an **edit key**, needed to delete the project; it is not shown again (it is saved in the same browser).
- If you **sign in with Nuvaka** the project is published under your username and you can manage it later. Sign-in goes through Nuvaka's OAuth server; your password never reaches this site.
- Shared projects are published under the **MIT** license. Only share code that is yours or that you are allowed to share.

## Limits

| | |
|---|---|
| File types | `.py`, `.txt`, `.md` (at least one `.py`) |
| File size | up to 2 MB |
| Files per project | up to 5 |
| Hourly uploads | 20 files (per IP) |
| Title / description | 3–80 / 20–4000 characters |

Zip, image or binary files are not accepted. To report abuse, copyright infringement or harmful code use the **Report** button on the project page or [nuvaka.com/abuse](https://nuvaka.com/abuse).

## Categories

LED · Temperature & humidity · Light sensor · Motion / PIR · Display · Touch · Buttons & input · Network & HTTP · BLE · Sound · Motors & relays · SD & storage · I2C / SPI / UART · Games · Tools & utilities · Learning & examples. A project can be in several categories.

## The panel's Store tab

Pressing **Store** in the on-board panel opens a search box. Your browser asks `cyd.nuvaka.com` directly (the board does not need internet access and its RAM is untouched), lists the best matches with short descriptions, and **Download** writes the file into the board's `/projects` folder, where it shows up in the list. Without internet the tab says so.

## Public search API

Read-only, no key, CORS enabled:

```
GET https://cyd.nuvaka.com/api/atolye/search?q=led&board=cyd&cat=led&limit=10
```

```json
{ "items": [ { "slug": "night-light-abc12", "title": "Night light", "summary": "Turns the LED on when the LDR sees darkness…",
               "boards": ["cyd","nodemcu"], "cats": ["led","isik"], "files": 1, "downloads": 12, "likes": 3,
               "author": { "name": "halil", "nuvaka": true } } ] }
```

Project detail: `GET /api/atolye/projects/{slug}`; a file: `GET /api/atolye/projects/{slug}/files/{id}` (`?view=1` as text, not counted as a download). Rate limit: 60 requests per minute per IP.
