> ## Documentation Index
> Fetch the complete documentation index at: https://docs.speckle.systems/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> These docs contain multiple Speckle product experiences. For Speckle 2026.9, prefer /next/ pages for the topics and changes they cover. The navigation label Current does not override this version-specific precedence.
> Coverage under /next/ is incremental. Use Current documentation for unchanged topics and when a /next/ page says coverage is unavailable or explicitly refers you to Current. Do not infer a feature was removed from a missing page.
> Read the page-specific documentation status, applicability, affected guidance and replacement links in agent-only content. Impacted, changed and superseded apply only to the stated scope; they do not mean the entire feature is deprecated. Historical connector guides apply only to the legacy connector described.
> Match guidance to the customer's deployment version, model data format and connector. Respect plan, permission and compatibility restrictions. If an unknown version or data format changes the answer, ask a focused clarification; do not infer deployment version from the date alone.

# Key Concepts

> Understand the fundamental concepts behind Speckle's developer platform

## Object-Based Data Exchange

Speckle uses **objects** as the fundamental unit of data exchange, not files. This means:

* **Data is structured and queryable** - Objects have defined schemas and properties
* **Objects can reference each other** - Build complex hierarchical data structures
* **Version history is built-in** - Every change creates a traceable version
* **No file format conversions needed** - Work directly with structured data

<Note>
  Instead of files, Speckle stores sets of objects in **Models**. Models are contained within
  **Projects**. Projects are contained within **Workspaces**. Learn more about organizing your data
  in the [User Guide](/workspaces/projects).
</Note>

## Open & Extensible

Speckle is fully open source and designed to be extended:

* **Open source** - All core components are available on [GitHub](https://github.com/specklesystems)
* **API-first** - Everything is accessible via REST and GraphQL APIs
* **SDKs available** - Python SDK with more coming
* **Customizable** - Deploy your own server with custom branding and workflows

## Version Control for AEC

Every change creates a new **version**, giving you:

* **Complete history and traceability** - See who changed what and when
* **Ability to compare versions** - Diff models to understand changes
* **Branching and merging workflows** - Work on parallel development tracks
* **Collaboration features** - Built-in commenting and review tools

## Data Model

Speckle represents building data as a **directed acyclic graph (DAG)**:

* Objects reference other objects but never themselves
* Properties can be primitive (strings, numbers) or references to other objects
* References are one-way (parent → child)
* Common structures include `elements`, `parameters`, `units`, `applicationId`

<Info>
  For a deep dive into Speckle's data model, see the [Data Schema
  documentation](/developers/data-schema/overview).
</Info>

## Next Steps

* [Data Schema Overview](/developers/data-schema/overview) - Learn about Speckle's data structures
* [Getting Started](/developers/getting-started) - Build your first integration
* [Python SDK](/developers/sdks/python/introduction) - Start working with Speckle data


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.