# Architecture

Skeleton architecture provides a foundational structure for a software system without specifying the full details. It serves as a high-level framework, defining the essential components and their relationships, allowing developers to build upon it and flesh out the system's functionality as needed. It's a flexible and adaptable starting point for software development.

**Why the Skeleton Architecture?**

Skeleton architecture serves as a crucial starting point for our software development projects.&#x20;

Here's why we choose to implement it:

1. **Efficiency:** Skeleton architecture jumpstarts development, reducing setup time and accelerating the initial stages of the project.
2. **Adaptability:** It provides a flexible foundation that can easily evolve to meet changing project requirements and new features.
3. **Reliability:** Defining the basic structure helps avoid architectural oversights, leading to a more dependable system.
4. **Scalability:** As the project grows, the skeleton architecture accommodates the addition of more detailed components and functionality.
5. **Consistency:** It fosters code uniformity and design patterns across the project, improving readability and maintainability.
6. **Cost-Effectiveness:** Using skeleton architecture saves resources by streamlining the development process.
7. **Communication:** It facilitates clear communication and project visualization, helping all stakeholders understand the project's foundational structure.

There are other reasons as well, but these are some of the more prominent ones as to why Skeleton Architecture could be preferred.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.appflowy.io/docs/documentation/software-contributions/architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
