Developer Experience Improvements
We've been improving the developer experience for you with several quality-of-life improvements in the past week. Most of these have been suggestions from users, or thigns we've noticed could make your job easier!
Important Note for the default or "nodejs" build type
Flightcontrol's original build system was Node.js only, not the Nixpacks system we use today. We still support the "nodejs" build type, but we encourage everyone to move to Nixpacks, as the "nodejs" build type is limited to Node 16 or below, and that version is now past end-of-life.
Previously, if you do not specify a build type for your services in a flightcontrol.json file, Flightcontrol will default to "nodejs", which may or may not be what you want. For all new projects, the Flightcontrol platform will require you to explicitly set the build type in your flightcontrol.json file. We strongly encourage you to use "nixpacks" for all builds, so that you can use Node 18, Node 20, or other languages such as Python, Ruby, Go, or Java. You can also build from a Dockerfile or pull from a custom image registry.
This does not affect currently deployed projects, however if you would like to either set your build type to "nodejs", or change your build system to Nixpacks in your flightcontrol.json file, we are happy to assist with this.
🚁 Developer Experience Improvements
Added the CloudFront-Forwarded-Proto=https header to all Web Services for better Clerk support
Other improvements & fixes
Fixed several minor UX issues in the dashboard
Dashboard Improvements + New Features
We've worked really hard on improving the dashboard we shipped two weeks ago as Flightcontrol 2.0! Overall feedback was very positive, and we got a lot of "It would be great if..." feature requests and minor bugs that we fixed.
In addition to these improvements, we added two new features to Flightcontrol that we think you'll find useful.
🚀 New Features
Runtime-only environment variable support. By default, Flightcontrol includes your environment variables in the build for Nixpacks or Dockerfile builds. If you would like to only use environment variables at runtime, you now have that option on a per-service basis.
Preview Environments for draft pull requests. One of our most requested features has been to support preview environments for draft pull requests. Please try this out!
🐛 Bug Fixes and Improvements
After launching the dashboard, we've made many individual improvements to the user experience and developer experience. We're continuing to make it the best dashboard!
Launching the New Dashboard Next Week!
We've been hard at work on the new Flightcontrol dashboard, and we're so excited to officially launch it and make it the default going forward! Right now, the new dashboard is in open preview, and you can use it side-by-side with the current dashboard.
In the meantime, we've also made several improvements to the platform that we'd like to share with all of you.
🚀 New Features
Added support for the GitHub Container Registry to deploy public Docker images.
Added the ability to use Container Insights for ECS Fargate for additional service metrics
🛫 Improvements and Changes
Increased the default read timeout for CloudFront to 60 seconds from 30 seconds for new environments. This means that your service can now take longer to respond to an HTTP request.
For brand new projects, we no longer set the NODE_ENV and RAILS_ENV variables by default for builds using Dockerfiles. This lets users set their own values (such as staging or test) for these environment variables.
For new services, we now use Nixpacks version 1.17.0 for builds.
Added tip for build performance improvements with Nixpacks
Customer Feedback Requested on New Dashboard
We've revamped our dashboard, and we're in the process of getting it ready for early adopters to try out. In the mean time, anyone on our teams plans can schedule a quick meeting to preview the new dashboard with us - we want to show it off and hear your feedback!
🚀 New Features
Changed the default Nixpacks build system version to 1.13.0 for all new services. Especially for PHP-based projects, this should mean more projects deploy successfully without any initial changes. You can still choose any version of Nixpacks to use by setting a NIXPACKS_VERSION environment variable.
AWS CodeBuild Concurrency Limit Changed + Sidecar Containers + Sentry Integration
Many of our customers are reporting that AWS has lowered the CodeBuild concurrency limits (https://docs.aws.amazon.com/codebuild/latest/userguide/limits.html) on their accounts. This affects how many builds Flightcontrol runs for you at a time - you may request a quota limit change from AWS through the console to address this:
Linux/Medium Builds - used for Web Server and Worker service builds - https://console.aws.amazon.com/servicequotas/home/services/codebuild/quotas/L-2DC20C30
Linux/Small Builds - used for Static service builds - https://console.aws.amazon.com/servicequotas/home/services/codebuild/quotas/L-9D07B6EF
🚀 New Features
Starting with Datadog, Flightcontrol now supports adding sidecar containers to your Web Server and Worker services. You can decide how much CPU and memory gets allocated to each sidecar, along with the image to use, the port, and any environment variables for configuration.
Flightcontrol is rolling out first-class integrations with selected developer tools. Sentry is our first integration - we support uploading source maps to Sentry after Nixpacks builds. Want something integrated? Let us know on our roadmap!
Post Build commands for Nixpacks builds
After your application builds, you can automatically run a command or script. Use this as a build hook. The post build command will only run once, not on each container. This is available for Web Server, Worker, and Static service types.
Postgres 15 Preview Environments now support SSL connections.
If you're using SSL connections with the latest version of Postgres on RDS, our preview environments now fully support this approach.
🐛 Improvements and Fixes
Fixed issue where changing saved credentials on existing image registries wasn't persisting
Added better error messages for cases where the build fails to deploy on ECS - we display more information from ECS.
Fixed issue where cancelling pull request deployments for preview environments failed to actually cancel.
Redis for Preview Envs + Deploy hooks for Preview Envs + GitHub Container Registry!
We've been hard at work on the all new dashboard with new UI/UX, but we've also working hard to continue shipping new hotly requsted features. Hope you enjoy them! And if you don't, please give us feedback!
🚀 New Features
Redis for Preview Environments
Redis is now fully supported in preview environments. It works the same as RDS, sharing a single ElastiCache instance accross all your preview environments to keep your costs low.
Deploy Hook support for Preview Environments
Deploy Hooks are now fully supported for preview environments! You can create and manage hooks for preview environments by clicking on Edit Environment in the Preview Environment section from your Project page.
GitHub Container Registry
In addition to DockerHub & AWS ECR, GHCR is now supported as a first class registry. If you'd rather manage your build, you can point us to an image registry and then trigger a deploy with a deploy hook.
🐛 Improvements & Fixes
Fixed some edge case bugs around preview environments not being created
Added Laravel demo as option during onboarding
Various bug fixes & improvements
Our Flightcontrol engineering team developed and released autoscaling improvements for new services on Flightcontrol. Existing services will continue with their current autoscaling settings.
For new services, if you set different minimum and maximum number of instances for your web servers or workers, Flightcontrol will use the following default rules for autoscaling:
70% CPU utilization
70% Memory utilization
For web services only - 500 requests/minute
The cooldown for creation or deletion of a service is 300 seconds, so your instance pool can respond to the incoming traffic before deploying or destroying instances.
All of these default settings may be changed in the flightcontrol.json configuration file.
Announcing Preview Environments for Static Sites!
Flightcontrol supports Preview Environments for web servers, workers, databases, and now static sites as well! What this means is that if you use a static site generator (like Astro or Eleventy) to build your web site, Flightcontrol can create a preview environment with its own URL for each open pull request. Use that preview environment to do testing or gather feedback.
We're continuing work on our dashboard overhaul as well, to deliver the best UI/UX for all of you!
Rollback is Live!
Our much-requested rollback feature is now live for all customers. The Rollback page in the docs has more details. Please let us know if you have any feedback!
Brandon will be speaking at the Infobip Shift conference in Miami this week - say hi!
🐛 Fixed Bugs
Fixed the way we provide commands for Nixpacks for static site builds, which means more builds will be successful without requiring manual configuration for commands
Fixed notes display in Docs on Dark Mode to be legible
Rollback GA This Week + Work on Dashboard Overhaul
We have Rollback available as an opt-in early access feature, and we will be making it generally available later this week for everyone to use.
On the dashboard side, we're working on the new UI/UX for our Dashboard - send any ideas for improvements our way!
Updated our ElastiCache pricing estimates to take into account that we run two instances of ElastiCache, along with updated pricing information from AWS
Added a Rollback page
🐛 Fixed Bugs
For users with over 100 GitHub repositories in their accounts, we were not fetching and displaying all of them in our dashboard for you to choose from. We now fetch all of your repositories.
Sometimes when multiple pull requests were opened all at once, preview environment builds were timing out. This issue is now fixed.
Rollback + Preview Environment Watch Paths
Our new Rollback functionality is available as early access now! Reach out to us using Slack, Discord, or email to turn on rollbacks, restarts, and rebuilds for your projects. We're making Rollback available to any user that wants to use it now, and then making the feature generally available by next week.
This week, we're at the Write the Docs conference in Portland, Oregon and the Remix conference in Salt Lake City, Utah. Come say hi!
🚀 New Features + Improvements
Rollback, restart, and rebuild for a given deployment. Now in early access.
Added watch paths to preview environments. Choose which services to build when selected files or directories change in your repository for a given pull request.
Added a guide for Deploying Laravel Applications with Flightcontrol.
Added a page for Deploying PHP/Composer Applications on Flightcontrol.
Added the PHP Resource Center
🐛 Fixed Bug
Fixed a bug with our database engine selector in the dashboard. Previously, if you were using a certain database engine (such as MySQL) and database version (example, 8), the database version would be reset if you modified the database engine but then went back to the original. This bug is now fixed.
Working on Rollbacks + Dashboard Overhaul
We're finishing up the deployment rollbacks functionality, so that you can re-deploy previous builds with confidence. Our development team is also moving forward with a user interface and user experience overhaul of our dashboard. We want to create the best place for all of you to deploy your builds and monitor their behavior over time, and we'll be excited to show you our new dashboard when it's finished.
This week, Flightcontrol will be at the Deep Dish Swift conference in Chicago, as well as the Reactathon conference in San Francisco. Come find us there and say hi!
🚀 New Features + Improvements
We added support for using Postgres version 15 with Amazon's Relational Database Service (RDS). Version 15 is now the default version selected for new databases. You can select another Postgres version if needed, going back to version 9. Existing deployments will not be affected.
Added a guide to using Sidekiq on Flightcontrol with a Rails application.
Added a troubleshooting page for Changing your Nixpacks Version to help fix build issues that might be addressed in more recent versions of the Nixpacks build packs we use.
React Miami + Rollback + Dashboard UX Project
Last week, the Flightcontrol team gathered together at the amazing React Miami conference in Miami Beach, Florida!
We started work on an overhaul of the Flightcontrol dashboard's user interface and user experience. We're trying to make our dashboard the most intuitive developer experience out there for cloud deployments.
Our team also continued to work on the rollback capability for service deployments, as we know this is an important feature for many of you.
🚀 New Features + Improvements
You now must pick an AWS region to deploy in, instead of using the default (this was us-west-2). It wasn't always clear that you could or should be changing that AWS region, so we now have you make the choice yourself.
We changed the way we load environment variables to display them in the user interface, so that users with many environment variables will see those pages initially load much faster.
Fixed a bug where Next.js Typescript builds would fail with next.config.mjs (Next Config for ES Modules)
React Miami! Meet the Flightcontrol Team + Rollback Work
Our big announcement for the week is that the Flightcontrol team is assembling together at the React Miami conference this week! We want to meet our Flightcontrol users and anyone else who is busy writing and pushing code to production. How do you deploy things?
It's not just all React this week - we're working on the Rollback feature so that you can redeploy your last good build easily.
Last week, in addition to the Rollback work, we also made some improvements to better support Incremental Static Regeneration (ISR) with Next.js, and added a few new docs to the site.
🚀 New Features + Improvements
Improvements for working with Next.js Incremental Static Regeneration (ISR) - add support for Next.js preview mode, and detect Next.js applications better to support ISR if they don't have a next.config.js file.
Also support loading Next.js config as an ES module with the next.config.mjs file
Work on Deployment Rollbacks + React Miami Coming Up!
After shipping email and Slack notifications, we have to keep the momentum going! We're adding support for rolling back deployments. For all of us that have shipped some code that didn't quite go as planned, this new feature will make it easy for you to use your last known good build.
We're also getting the team together at the React Miami conference on April 20-21, 2023 in Miami Beach, Florida. If you are going to the conference, come find us and say hi! We'll have stickers to give away, and all of us like talking to our Flightcontrol users!
🐛 Fixed Bugs
Fixed a bug where it was possible to specify a non-existent database version for an RDS service
Fixed an issue where Flightcontrol would not clone Git submodules properly during a deployment,
Fixed a bug in deployments where the yarn install command failed with the error message "lockfile would have been modified"
Notifications Launch + Relaunch of Docs Site!
This week is a double launch for us at Flightcontrol! We're turning notifications on today (Monday, April 3, 2023). The first thing you will see is an email from us to all members of your organization if a build fails. You can customize the email notifications you get, as well as sending Flightcontrol notifications to a Slack channel on your Organization Settings page. Learn more about configuring notifications in our docs.
Speaking of docs - we redid our documentation site (https://www.flightcontrol.dev/docs)! We organized the docs with a new information architecture, added a full-text instant search, setup code highlighting, and made updates to every piece of content on the site. We used the Nextra site generator, and we hope you try out Nextra too! You'll see more improvements and additions to the docs, and we'll call attention to the big changes in these weekly changelogs.
To sum up this week:
🚀 New Features + Improvements
Email and Slack notifications for important events, like deployments failing
Relaunched the Docs web site (https://www.flightcontrol.dev/docs)
Added the ability to set the base path to the static site form when configuring a service in the dashboard
Preview environments are now a Team feature, and not part of the Hobby plan.
Fixed a bug in deployments where the error analyzing screen was being shown, even if the deployment was actually up and running fine. If there is an error, display more contextual information to explain why the error occurred.
In existing environments, the region is now locked down, and can not be edited. It's never been supported, but we erroneously let you try to change it.
Miscellaneous bug fixes
Rolling Out Notifications Later This Week!
We'll be launching Notifications at the end of this week. Now you'll get email and Slack alerts for your important deployment events. No more wondering whether a deployment failed or keeping a browser tab open to your project page - Flightcontrol will send you an email to let you know! If you install our Slack integration, we'll also be able to update you there.
We're progressively rolling it out this week, and expecting it to be generally available for everyone at the end of the week.
Have any ideas about how else you'd like to get notifications? Let us know through the Roadmap (https://roadmap.flightcontrol.dev/roadmap).
All new Flightcontrol services (not just projects) will use Nixpacks 1.6.0 instead of an older version, if you use Nixpacks for deployment.
To use another version of Nixpacks, set the NIXPACKS_VERSION environment variable for your service. Existing services will continue to use whatever Nixpacks version you currently have.
Fixed an issue related to deleting a Flightcontrol service from the dashboard - if you have had services that you could not delete from your environment, this bug has been addressed.
Notifications Shipping Very Soon + Status Page
Last week, we accomplished a lot of our remaining work on Notifications. We are now polishing up our Notifications functionality so that you and your team get timely build and deployment events.
We've also added a status page (https://status.flightcontrol.dev/). You can see how the Flightcontrol Platform is performing, as well as the services and APIs (GitHub + AWS) we use to deploy your projects.
New Projects will use Nixpacks 1.5.0 instead of an older version, if you use Nixpacks for deployment. If you would like to use another version of Nixpacks, set the NIXPACKS_VERSION environment variable for your service. Existing projects will continue to use whatever Nixpacks version you currently have.
Updated the AWS Code Build base image to Ubuntu 22 so that we have Python 3.10 installed. This is important for the AWS Command Line Interface.
Added Destroy Service button to the Environment edit screen, so that you can remove services from an environment more easily.
Fixed an issue where it was not possible to change the size of your Relational Database Service (RDS) databases when editing a service.
Working Hard on our Notifications Project
The team at Flightcontrol is still working hard on our notifications project! We've heard from many of you about how important notifications are for your deployments, and we're committed to delivering this for you. In addition to the team effort towards notifications, we've made some other improvements to the platform and fixed a bug in the AWS cost estimations we show you.
🚀 New Features
Added the ability to leave single line (//) comments in your flightcontrol.json configuration files. Now you can document the reasoning behind your configuration. The comments can go on a new line, or at the end of a line. Although the // comment is not part of the JSON specification, Flightcontrol will be able to parse your configuration files.
Added a SENTRY_RELEASE environment variable which contains the Git commit hash for the deployment. This is useful when you integrate the Sentry error monitoring tool.
Added an in-app chat messaging window in the dashboard. Ask a friendly Flightcontroller your questions, or send us some feedback and we'll get right on it!
Added the error type to some of our error messages in the dashboard. We're hoping that this will give you more context when we detect a problem with your deployments.
Removed the legacy nodejs build type for new services. You can still build your existing services with the nodejs build type, but for new Node.js deployments, use nixpacks instead for a better developer experience.
Fixed the cost estimation for Fargate workers - removed a $17/month load balancer cost that isn't actually included with Fargate worker tasks. This should give you a better representation of your actual costs when using Fargate workers.
Ongoing Work on the Notifications Project
Another great week for development here at Flightcontrol! We're working hard on our notifications project, and can't wait to share it with all of you. We've also shipped several bug fixes and one improvement that should help clarify when we deploy pull requests.
Update our messaging on draft pull requests to make it more apparent that pull requests get deployed when they get marked "Ready for Review"
Fix issue with creating project using public GitHub repositories
Fixed a bug that wouldn't let you change the port number (such as 3000) on a new service. For already deployed services, you will still need to delete the service and recreate it to change the port number.
Fixed a bug that threw an unnecessary error when deploying a new environment - "Failed to find environment or project for this deploy hook"
Fixed a bug that led to degraded performance on some deploys
Auto-updating CodeBuild Environments and Starting Notifications Project
Hi everybody! We're working hard on Flightcontrol, we shipped a number of improvements, and are starting work on the notifications project. Once we're finished with this project, you'll be able to subscribe to important events from your deployments.
CodeBuild environments now use the latest AWS Linux builds, and will be auto-updated to the latest if necessary
For Hobby users, choosing a GitHub repository from an organization account will ask you if you want to become a Business account
The Custom Domains screen will show the app's CNAME Domain Status until it is actually routed, with support for zero downtime migration to your domain
🐛 Bug Fixes
Fixed a bug where a static build will fail when outputDirectory is a path
Fixed a bug where dotfolders and dotfiles weren't being watched with a watchPath
Miscellaneous bug fixes
Improve Repository Watch Path Logic, Other Improvements & Bug Fixes
Hello everyone. This week we made several user experience improvements and bug fixes for deployments.
Change watch path logic to be ignored (deploy everything) if git diff fails for any reason.
Documentation now shows a message saying no results found instead of a 404.
🐛 Bug Fixes
Fixed a bug where during onboarding flow gets to bad state if user goes back.
Fixed a bug where deployments are not cancelled during certain failures.
Fixed a bug where previous deployment errors were being overwritten.
Redis Encryption at Rest & Get Deployment Status API
Hello everyone. We're back to the office today after our week long retreat in Thailand. We were able to work on multiple improvements and bug fixes during our time together last week. Some of the improvements we shipped mono repository support, and provide more configuration options for preview environments.
🛫 New Features
Added the new supported field
basePathwhich indicates in which folder the
nixpacksbuild should run. See more in the docs.
Added a new configuration option called
encryptionAtRestto configure if Redis is encrypted at rest. This option is enabled by default. See the docs for more information.
Added new Flightcontrol API endpoint to get the status of a deployment. See more in the docs.
fromBranchesfilter for preview environments, used to specify which branches should be deployed to a preview environment. See more in the docs.
An environment's AWS account is now displayed next to the environment's region.
In dashboard, move the Install Command field out of advanced configuration up next to Build Command.
🐛 Bug Fixes
Fixed a bug where public API endpoints threw a CSRF error on POST requests
Fixed a bug where deleting a Redis cluster didn't delete correctly the first time.
Fixed delete certificate workflow to use
us-east-1in retry custom domains.
Changelog: Thailand Edition - UX & Bug Fixes
Hello everyone! I'm writing this from Thailand, where everyone but Kayla (passport troubles) has met up for a week-long retreat. We've spent a lot of time focused on reinforcing team values and refining our team processes, as well as working on a new feature to alleviate monorepo headaches.
Added framework presets to new environments. Previously, these were only available when creating a project for the first time.
Fixed a bug where projects would not show preview environments if it was in an error state.
Fixed a bug where users could not remove services in the project creation page
Increased a timeout for one of our temporal workflows to facilitate support for massive repos
Pre-built Image Support and Nixpacks Improvements
Hi everyone! This week, I'm excited to announce pre-built image support, which allows you to "bring-your-own-image" to Flightcontrol. This feature means instead of only using Flightcontrol as CI/CD, you can use it as primarily CI.
Added pre-built image support: see the docs for more information.
Added support to deploy public docker images without a Dockerfile: see the docs for more information.
💅🏼 UX Improvements
Change build auto cancellation to only cancel "pending" builds. This ensures new code is deployed even if you are git pushing faster than the build/deploy cycle time.
Improved Nixpacks caching
Fixed watch paths not working when the path starts with `/`
Nodejs builds for static sites are deprecated. We recommend using nixpacks instead because it will automatically determine node version & package manager type.
Update Build Cancel Behavior & Other UX Improvements and Bug Fixes
Everyone is back in the office now, and work on pre-built images has been moving steadily, with a release coming very soon. In the meantime, here are some bug fixes and UX improvements that we've shipped.
Changed how builds are canceled- now, only builds that have not been started will be canceled. In-progress builds will never be canceled
Fixed an issue where users could unintentionally create multiple Flightcontrol AWS accounts in the onboarding flow
Fixed the incorrect services being copied for preview environments when attempting to copy an environment config
Service's environment variable have unexpected numbers appended on project creation
Fixed CloudFront cache policies limit
Added missing build link for our Github preview environment comment
Add new FC_AWS_REGION environment variable
It was another quiet week as we had several engineers out of office, however, everyone is back for this coming week. During the past week, we have been working on pre-built image support as well as various UI/UX improvements.
Add FC_AWS_REGION as an automatically env variable
Add Nixpacks for Static Sites & Allow Deletion of AWS Accounts
It was a short week for us at Flightcontrol, with half of our team off for the holidays. Next week will also be a short week, with the other half of the team on holidays.
We have shipped a couple high priority features, and we are committed to continuing to work on UX improvements and bug smashing over the next two weeks.
Add NixPacks support for static sites
Allow deletion of AWS accounts
This includes an option to eject from Flightcontrol while maintaining your AWS infrastructure
Fix watch paths not working
Git LFS Support & Customize Fargate Task Storage
Add the ability to configure Fargate Task Storage. See the docs for more information.
Add Git LFS Support
Change custom domain connection to show details until traffic CNAME is connected
Add CAA record to the DNS values if needed
Fix disappearing cancel button when there is Redis service type with `success`
Fix an issue with custom domain verification
Kicking off Bug Smashing & UX Improvements Month
We're taking the next month to focus on fixing bugs and improving UX across the board. Please let us know if you come across any bugs or friction in your user experience, no matter how small it may seem, so that we can fix those issues and ensure you have an excellent experience using our product!
Allow users who haven't finished onboarding to return their previous page instead of restarting the onboarding process
Note: if you're currently stuck with the onboarding flow, please contact us in Discord.
Fix invoice calculation & description to round to nearest cent
Surface custom domain issues to the user
🐛 Bug Fixes
Sanitize input Github Repo URL to avoid unmatched projects
First time projects get stuck in "Hang tight..." if there is an invalid config
Improve displayed deployment & service deployment errors
Fix onboarding flow for users using a ref link
Fix error connecting Github account: `Both "code" & "state" parameters are required`
Allow GUI users to remove services from the environment edit page if they have not yet saved them to their environment configuration
Fix responsive UI in onboarding flow
Small Fixes & Improvements
Watch paths in GUI throws error if it has a single value
Improve build error UX slightly
Replace the clever RDS preset names like “bobcat” with small, medium, etc
Redis & RDS Preview Environments
🛫 New Features
RDS Preview Environments
You can setup your preview environments to include a preview database using AWS RDS.
How it works: You will have a clean database for each preview environment created from your pull request. On the AWS resource level, only 1 RDS instance will be used for all preview environments (unless you’ve configured more than one RDS for the preview environment).
How to configure it: You need to add a RDS service type to your preview environment.
You can check the docs for more info: https://www.flightcontrol.dev/docs/guides/config/preview-environment
You can now create a Redis instance using AWS Elasticache with Flightcontrol!
Not available in preview environments yet.
How to configure it: If you use flightcontrol.json you can add a new service to your environment using the type: "elasticache". If you use the UI, you'll see a new service type option to select.
Check the docs for more details: https://www.flightcontrol.dev/docs/guides/config/using-code
Watch Paths / Next.js ISR Manual Revalidation / Multi-stage Docker Caching
🛫 New Features
Watch paths feature
Git Submodule support
Next.js ISR manual revalidation support — `req.revalidate()`
Build caching for multi-stage dockerfiles
Sort env variables in GUI so it's easier to find what you are looking for
Enable AWS Origin Shield for new services, resulting in faster app performance
(huge improvement in first load time for static sites after new deploys)
Add configured port to failed healthcheck error message
Stop hiding BUILD_ERROR messages in deployment list
🐛 Bug Fixes
Two services with the same given ID cause issues when destroying the service
Add 404 status code in static sites when file not found
Static site fixes
Click to Copy doesn't work on firefox
Fix environment name not updating
Fix all links to flightcontrol.notion.site to point to our new docs