Architect: Infrastructure as Code for AWS

website·Indexed Apr 12, 2026

https://arc.codes/

Architect is an open-source Infrastructure as Code framework for building Functional Web Apps on AWS. It uses a declarative manifest file (app.arc) to compile into AWS CloudFormation and SAM, enabling local development with `npx arc sandbox` and seamless deployment via `npx arc deploy`. The platform supports multiple runtimes including Node.js, Python, Deno, TypeScript, Ruby, Rust, Go, Java, and .NET. Key features include automatic dependency management, code sharing via `@shared` and `@views`, ESM support, session management, static asset handling, and CI/CD integration for GitHub Actions and GitLab Pipelines.

Tokens
22.2K
Snippets
87
Records
247
Agent score
50%

What's inside Architect

  1. What is Architect Inventory

    Architect Inventory is an object passed to all Architect plugins that enumerates all resources in a project. It serves as the single source of truth for your project's state, representing every possible setting, option, and configuration in Architect.
  2. What is Architect

    Architect is an opinionated Infrastructure as Code framework for building Functional Web Apps (FWAs) on AWS. It provides low code and zero ceremony deployment with a manifest file that compiles into AWS CloudFormation and SAM applications. Architect ensures identical local, staging, and production environments and enforces least privilege IAM roles by default.
  3. Architect core principles

    Architect follows four guiding principles: (1) Define app architecture using clear, generic language in plain text files; (2) Generated code must work locally and completely offline; (3) Deployments use standard CloudFormation templates that can be extended by users; (4) The manifest format, parser, and tooling are fully open and extensible. Note: While the manifest format is portable across cloud vendors, AWS is currently the only supported deployment target.
  4. @macros overview and deprecation

    The @macros primitive extends Architect apps by modifying CloudFormation templates via custom JavaScript functions. Macros allow developers to add any resources or modify existing ones, extending Architect into the entire AWS ecosystem supported by CloudFormation. They can also look for custom directives and add pre-deploy steps.

    Deprecation notice: @macros is no longer the preferred way to extend CloudFormation in Architect. It has been superseded by @plugins deploy.start. Existing @macros extensions will continue to be supported but are no longer actively improved.

  5. Community resources and getting help

    Architect is an open source project hosted by the OpenJS Foundation. You can ask for help by using the issue tracker to file bugs, request features, or ask questions. The project welcomes contributions and encourages newcomers to introduce themselves in issue trackers or chat.
  6. Mutate CloudFormation with deploy.start plugins

    deploy.start plugins allow you to process and mutate Architect-generated CloudFormation prior to deployment. This enables deep customization of any Architect default behavior, as well as allowing apps to extend into the entire AWS ecosystem of services. Plugins run in sequence, with each plugin receiving the mutated CloudFormation document from the previous one.
  7. Plugins overview

    Architect's plugin API exposes workflow lifecycle hooks (filesystem events in Sandbox) and interfaces for generating cloud resources (custom Lambdas, environment variables). Plugins extend or override Architect functionality for building Functional Web Apps with AWS.
  8. create plugins overview

    create lifecycle hook plugins extend Architect's ability to generate new Lambda handlers when you expand your application. These plugins execute when users run arc create (also known as arc init). Use create.register to specify which runtimes your plugin handles, and implement create.handlers to define how handlers are created.
  9. Deploy lifecycle hook plugins overview

    Deploy lifecycle hook plugins extend Architect deployment capabilities by exposing methods that run at different stages of deployment. These plugins allow you to customize CloudFormation templates, create custom resources via service discovery, bypass AWS CloudFormation entirely (beta), and run arbitrary pre/post-deploy operations. All deploy methods receive a common parameter object containing arc, cloudformation, dryRun, inventory, stackName, and stage properties.
  10. Hydrate plugins overview

    Hydrate plugins extend Architect's Hydrate tool for managing dependencies and shared code in serverless applications. They run as lifecycle hooks and can copy arbitrary files or folders into Lambda dependency directories (e.g., ./src/$pragma/$name/node_modules/ for Node.js or ./src/$pragma/$name/vendor for Python/Ruby). The hydrate.copy API runs after all dependency installation and shared file operations complete, ensuring filesystem mutations are present in final deployment artifacts.
  11. Define SQS queues with Lambda handlers

    The @queues directive defines Amazon SQS topics paired with Lambda handler functions within the app.arc project manifest. Each queue defined will have a corresponding handler function generated in src/queues/ when running arc create.
  12. Static assets overview

    Architect projects support text and binary static assets (images, styles, scripts) stored locally in the /public folder by default. When deployed, assets are uploaded to an S3 bucket and available at /_static (same-origin).