# StillMade developer documentation

Build reusable production Blocks and ordered Project Types with the StillMade SDK.

## Build for StillMade
A Block is a reusable production capability. Place it in a Project Type and it becomes a Step, with its own configuration and pinned version. StillMade handles the production workspace, typed connections, and persistent project context.

## Build an original Block
Give your coding agent [the SDK authoring contract](/docs/tools/llm) and your idea. Build on the SDK contracts from the first iteration, then select the finished source folder in StillMade. The implementation and interface import unchanged; no adaptation phase is needed. See [original SDK folders](/docs/build/original-blocks).

## Adapt an existing repository
This public SDK contains the contracts, examples and tooling needed to adapt a GitHub repository outside StillMade. Coding agents can inspect the repository, retain licensing and return one installable .stillmade-block file. [Portable packages and repository adaptation](/docs/tools/repository-adaptation).

## Choose what to build
- [Build your first Block](/docs/build/quickstart): create, test, preview, and package a working capability.
- [Block builder contract](/docs/build/block-builder-contract): the rules every Block follows, however it is made, and how readiness is judged.
- [Tutorial: a React Block in 30 minutes](/docs/build/tutorial): build, preview with hot reload, test offline, import and publish.
- [What you can build](/docs/gallery): templates and complete examples across video, images, music, data, documents, integrations, education and e-commerce.
- [Preview with hot reload](/docs/build/local-preview): start from a template for any runtime, preview the interface in StillMade's own view host, and test offline with stand-ins for every hosted operation.
- [Generate images](/docs/build/hosted-images): create a reviewed prompt-to-image Block with quality and payment chosen in StillMade.
- [Generate speech from a script](/docs/build/hosted-speech): declare typed audio, suggest a catalog voice, review cost, and listen before accepting.
- [Frame views](/docs/build/frame-views): interfaces written with React or another framework, SVG, canvas and drag, with theming and shared editing.
- [Outside APIs](/docs/build/outside-apis): call any API with the person's own key or OAuth sign-in, through declared origins and published OpenAPI adapters; keys never reach Block code.
- [Project storage, reads and assets](/docs/build/project-storage): keep values and files of up to 64 MiB per project in the Block's cloud storage, read the project, add media assets and propose edits people review and undo.
- [Triggers and unattended runs](/docs/build/triggers): run on new media, a schedule, a webhook, another project's completion or a provider event, once the owner turns it on; hosted Blocks stay inside an approved budget.
- [Data types](/docs/build/data-types): files (PDF, text, CSV, JSON, ZIP), documents, tables, links, dates and colors, with their controls, result layouts and conversions.
- [Module Blocks](/docs/build/modules): modern JavaScript with npm libraries and WebAssembly (OpenCV and other C/C++ builds), sandboxed in the browser, with on-device media processing (decode, cut, join, extract and normalise audio and video).
- [Analyze media](/docs/build/media-analysis): ask about a saved video (optionally one time range) or up to four images and get timestamped evidence.
- [Read the web](/docs/build/web-reading): read a public page or research a topic with cited sources, paid with StillMade credits.
- [Generate music and sound effects](/docs/build/hosted-music): create music or a sound effect with the app's generators, paid with StillMade credits.
- [Transcribe stored audio](/docs/build/transcription): return reviewed text and word timings through the host-owned BYOK boundary.
- [Add speech to the Editor](/docs/build/audio-to-editor): place an accepted project recording on the audio lane at the playhead.
- [Build a Project Type](/docs/project-types/build): assemble an ordered workflow from compatible Blocks.
- [Build with your own AI coding tool](/docs/tools/llm): take the complete authoring guide to Claude, Codex, Gemini, or another coding assistant.

## SDK and documentation
The **SDK** is the code, validators, isolated runtime, TypeScript declarations, examples, and command-line tools you download and run. This **documentation** explains their contracts, workflows, and integration boundaries. Both are versioned for SDK 0.1.0.

[Download the SDK](/docs/sdk) or explore the [API reference](/docs/reference/execution).

## Development lifecycle
1. Describe the capability and declare its typed inputs and outputs.
2. Implement a recipe, standalone JavaScript function body, or supported declarative host request.
3. Test realistic synthetic examples, including edge cases.
4. Preview the interface with `stillmade-block dev` (hot reload, stand-ins for hosted calls), package the tested source, and import it into StillMade.
5. Place the Block into a Project Type and rehearse its connections.
6. Release an immutable version when you are ready to share.

## Production model
Normal users work through ordered Steps. They add a capability at a position in the workflow; compatible primary ports connect automatically. Secondary values can come from scoped project context. A technical graph is not required to build a Project Type.

Read [Blocks, Steps, and Project Types](/docs/build/concepts) before designing a package.
