Birdie Stack

screenshot of Birdie Stack
express
react
tailwind
drizzle-orm

Deploy Remix applications to AWS servers (not serverless) using containers on ECS.

Overview

This article provides an analysis of a product that allows for the deployment of applications using Terraform and AWS. It covers key features, installation guidelines, and deployment processes.

Features

  • Deploy using containers to AWS ECS: Provides the option to deploy applications to AWS ECS using two modes - simple mode for cheap single instance deployments, and production deployment that can scale instances across the region for improved security.
  • PostgreSQL RDS instance in a private subnet: Sets up a PostgreSQL RDS instance within a private subnet for secure data storage.
  • Remote State management: Creates an S3 bucket and DynamoDB table for remotely managing the Terraform state of the application.
  • OpenID Connect Provider: Sets up the GitHub OpenID connect provider to allow GitHub action workflows to assume AWS IAM roles and obtain short-lived credentials.
  • Application Environment: Sets up all the necessary infrastructure required for the application.
  • Migrations: Provides access to the RDS instance in the private subnet using Basti and enables the generation and application of migration files.
  • GitHub Actions: Includes deploy workflows for building the application on push using AWS CodeBuild, generating and pushing a Docker image to ECR, and deploying it to the ECS cluster.

Summary

This product allows for the easy deployment of applications using Terraform and AWS. It offers features such as container deployment to AWS ECS, PostgreSQL RDS instance setup, remote state management, OpenID Connect provider integration, and more. The installation process involves setting up necessary infrastructure components and configuring the application for deployment. Overall, the product provides a streamlined and efficient way to deploy applications on AWS.

express
Express

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

tailwind
Tailwind

Tailwind CSS is a utility-first CSS framework that provides pre-defined classes for building responsive and customizable user interfaces.

drizzle-orm
Drizzle ORM

Drizzle ORM is a TypeScript ORM for SQL databases designed with maximum type safety in mind. It comes with a drizzle-kit CLI companion for automatic SQL migrations generation. Drizzle ORM is meant to be a library, not a framework. It stays as an opt-in solution all the time at any levels.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.