Skip to content

Commit

Permalink
(docs): Implementing Yuval's feedback on the Blueprints Overview page.
Browse files Browse the repository at this point in the history
  • Loading branch information
dericksozo committed Dec 17, 2024
1 parent ba1cd91 commit fc39828
Showing 1 changed file with 26 additions and 21 deletions.
47 changes: 26 additions & 21 deletions docs/platform-features/blueprints.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,24 @@ slug: /blueprints

# Blueprints

Blueprints are a powerful feature that let organizations create and manage any type of resource in their development ecosystem.
Whether you're working with Java services, Python apps, deployment configurations, or database setups, Blueprints provide a flexible way to define, generate, and manage these resources.
Blueprints are a powerful feature that lets organizations create and manage any type of resource in their development ecosystem.
Whether you're building Java microservices, Python SDKs, React front-end apps, Terraform configurations, or PostgreSQL database setups, Blueprints provide a flexible way to define, generate, and manage these resources.

![Project-level Blueprints Tab](./assets/blueprints/blueprint.png)

## Why Use Blueprints

Amplication provides enterprise-grade code generation for Node.js and .NET services, offering integration with industry-leading tools like Prisma, PostgreSQL, and MongoDB.

With Blueprints, we expand these capabilities to support any programming language, framework, database, or deployment option your team uses.
This allows you to create standardized resources that match your organization's specific technology choices and requirements.
Blueprints enable organizations to implement their own standards, best practices, and technology choices across their development ecosystem.
You can create standardized resources that match your specific requirements while maintaining consistency across teams and projects.

With Blueprints you can:

- Create resources for any programming language or framework
- Standardize resource creation across your organization
- Define custom deployment configurations
- Connect external services and APIs
- Set up database resources
- Describe any piece of software like SDKs, deplyoyment configs, front-end apps, and even Amplication plugins.
- Create resources using your preferred technologies and frameworks
- Implement organization-specific development standards
- Define relationships between different parts of your system
- Generate sophisticated and dynamic code based on resource relationships
- Create reusable components that follow your architectural patterns

## How To Access Blueprints

Expand All @@ -39,40 +38,46 @@ Access Blueprints from your Workspace by navigating to the dedicated Blueprints

### Blueprint

A blueprint defines how a specific type of resource will be implemented in your project. It provides the foundation for generating consistent, standardized resources across your organization. Each blueprint can generate multiple resources based on your specific requirements.
A blueprint defines how a specific type of resource will be implemented in your project. It provides the foundation for generating consistent, standardized resources that align with your organization's architecture and practices. Each blueprint serves as a template that can generate multiple resources based on your requirements.

### Resource

A resource is a specific instance of a blueprint that developers use in their projects.
When you create a resource from a blueprint, you get a fully configured instance that follows your organization's standards and best practices.
You can manage that blueprint resource with the same tools that you can other resources
For example, you can create multiple Java microservices from a single Java Spring Boot blueprint.

You manage blueprint resources using the same tools available for other resources in your project, like services.

![A resource created from a Blueprint](./assets/blueprints/resource.png)

### Plugins

Plugins define the code generation logic for your blueprints. When you create a resource from a blueprint, its associated plugins determine how the actual code and configuration files are generated.

Each plugin can provide specific functionality for your blueprint. For example:
Each plugin can provide specific functionality for your blueprint.
For example:

- Code generation for specific programming languages
- Infrastructure configurations like Terraform files
- Database schema definitions
- API integrations and configurations
- Custom code generation logic for your technology stack
- Infrastructure and deployment configurations
- Integration patterns and configurations
- Organization-specific development standards

:::note
Organizations can create private plugins to implement their specific requirements and standards. Visit the [Private Plugins](/private-plugins) page to learn more.
:::

### Relations

Relations define connections between different blueprints, allowing you to model in-depth relationships in your architecture. For example, you can:
Relations define connections between different blueprints, enabling you to model sophisticated relationships in your architecture.
These relationships are available during the code generation process, allowing plugins to generate dynamic code based on connected resources and their configurations.

1. Connect service blueprints to their deployment configurations
For example, you can:

1. Connect services to their deployment configurations
2. Link services to their respective databases
3. Define dependencies between different components

The context from these relationships enables intelligent code generation that understands how your resources interact and depend on each other.

![Relations between Blueprints](./assets/blueprints/relations.png)

## Next Steps
Expand Down

0 comments on commit fc39828

Please sign in to comment.