# Development workflow (/en/ai/ten-agent/develop/development-workflow)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

The TEN Framework supports two basic development approaches depending on your project needs and experience level.

## Bottom-up development [#bottom-up-development]

Build your application from individual components to create a complete solution.

This approach is best for:

* Custom applications with specific requirements
* Learning how TEN Framework components work together
* Projects that require custom functionality not available in existing templates

Follow these steps to develop your solution, based on this approach:

1. **Create extensions**: Develop individual components for specific features, such as speech recognition, AI processing, and text-to-speech.
2. **Design the graph**: Connect extensions to define data flow and communication
3. **Build the application**: Assemble components into a complete TEN application

**Example use case:** Building a custom voice assistant with specialized industry-specific processing that requires unique extensions and workflows.

## Template-based development [#template-based-development]

Start with an existing application template and customize specific components.

This approach is best for:

* Rapid prototyping and development
* Projects similar to existing TEN applications
* Focusing on specific functionality rather than overall architecture

Follow these steps to develop your solution, based on this approach:

1. **Choose a template**: Select an existing TEN application like [TEN-Agent](https://github.com/TEN-framework/TEN-Agent) that matches your use case
2. **Identify components to replace**: Determine which extensions need customization
3. **Develop custom extensions**: Customize or create replacement extensions for specific functionality
4. **Test and integrate**: Use the standalone testing framework to ensure compatibility

**Example use case:** Customizing TEN-Agent to use a different speech recognition service or adding a specific LLM while keeping the overall agent structure.

## Choosing your approach [#choosing-your-approach]

Consider these guidelines when selecting your development approach:

* **Start with templates** if you're new to TEN Framework or building something similar to existing applications
* **Build from scratch** if you need complete control over architecture or have unique requirements
* **Mix both approaches** by starting with a template and gradually replacing more components as you learn

<CalloutContainer type="info">
  <CalloutDescription>
    Use extensions from the TEN Cloud Store with either approach to accelerate development.
  </CalloutDescription>
</CalloutContainer>
