AWS CodeStar in 2021
                  AWS CodeStar blew up briefly in 2017, with a lot of interest in
                        its streamlined aggregation of developer tools in AWS, but new development has petered out
                        throughout the years. This, unfortunately, is something AWS has done with quite a few of its
                        services. They have a big launch with big plans, but it doesn’t really go
                        anywhere. 
While CodeStar falls under this
                        pattern, there have been some new changes since I did an original review back in
                          2017. In that video I explain what CodeStar is and
                        what types of applications it would be good for. Since that video was recorded, many things have
                        changed in AWS and with CodeStar, so I wanted to revisit the material.
In this article, let’s take a look at some of the updates and
                        then see if AWS CodeStar is a good option for your application.
 You can also watch my video on AWS CodeStar here: 
The More CodeStar Changes, The More it Stays the Same
One of the most visible changes in CodeStar is that the UI has
                        been updated to match the new AWS UI. In my previous review, I showed
                        the original CodeStar UI, which used the old AWS styling. I actually liked the old look. It had
                        its own appeal. The new UI has been updated to match the current UI with all the other AWS
                        services. This actually isn’t something I’m fond of, but I’ll get to that
                        later. 
 Another change, which is maybe
                        more important, is that the services that CodeStar utilizes have become more mature. One of the
                        downsides I noted in my previous review was that many of the services that CodeStar utilized
                        weren’t worth using yet. Services such as CodeCommit needed to add features and to generally
                        become more mature. This is exactly what the services CodeStar works with have done; just not
                        CodeStar. I’ll also talk about that more later.
The AWS CodeStar Dashboard

One of the first pros I brought up in my original review was the
                        dashboard. I really liked the CodeStar dashboard. You had access to a lot of different features,
                        metrics, and data points to help you understand the health of your project. It also had a style
                        and layout that matched the service perfectly, even if it didn’t quite vibe with what else was
                        going on in AWS.
With the new update, while there
                        is still a dashboard, it uses the bland, normal AWS service UI that everything else has. It
                        doesn’t differentiate itself or really display information quite as well. Let me show you what
                        that looks like.
                    
Here’s the CodeStar service dashboard for a project I built to try CodeStar out. If you’ve been using AWS recently, you can see the dashboard looks like every other service using the updated UI. As you can see, it’s almost not like a dashboard. It looks more like the details panel for an RDS database.
Some of the good information points included in the dashboard are the status of the project and CloudWatch metrics.

This is the
                        CloudWatch CPU utilization metric for my project. You can also add other CloudWatch metrics or
                        CloudWatch dashboards here by editing this Project Activity section. Honestly, if you took the time to build out a CloudWatch dashboard for
                        your CodeStar project, it would probably look a lot better than having just one single metric.
                        Unless I really only care about the CPU usage of my application, this doesn’t tell me nearly
                        enough. 

 
Below the Project Activity
                        section, there is a Project Resources section on the dashboard. I’m not sure why this needs to
                        be here. It would make a lot more sense to have it in a details panel or on another tab like
                        CloudFormation does. 
At the bottom of the dashboard is the README for the project, which is pulled from the GitHub repository or CodeCommit repository. Again, this just seems out-of-place on the dashboard for a CodeStar project. It’s not that the README is specifically not appropriate for this dashboard, but more that there are way more important data points that are missing while this has been included.
What’s disappointing with the CodeStar dashboard is that you can only customize one part of it.
You can modify the single CloudWatch metric:
Or you can import
                        CloudWatch dashboard JSON to have a more built-out dashboard:
 
But this gives me no
                        additional customization or data beyond what a basic CloudWatch dashboard would provide. The
                        dashboard isn’t what it used to be.
CodeStar is all about combining different developer tool services, like CodePipeline, CodeCommit, and CodeDeploy. A better use of this dashboard would be to combine data points from those CI/CD tools instead of focusing only on the current state of your running application. Again, if I wanted that I'd just go to CloudWatch. I go to CodeStar to see the progress of my CI/CD.
A better unified dashboard in AWS is the Amplify project dashboard, which combines CI/CD and current application state data in an elegant way.
CodeStar Integrates with What?
When CodeStar launched, there were very few integrations,
                        although more were promised. At the time of my original review, there was only a JIRA
                        integration available. I realized that if they started adding these integrations, CodeStar could
                        really become a valuable service. 
Unfortunately, since that time, the only integration addition has been
                        the ability to integrate GitHub repositories with CodeStar. This is pretty essential for any
                        CI/CD tool, of course, but there haven’t been any other source code repositories or issue
                        trackers added. Even though GitHub and JIRA are some of the biggest in the industry, there are
                        so many other options out there that could be integrated. 
By limiting CodeStar integrations to those two, the potential userbase for CodeStar is dramatically reduced.
New Project Creation Speedbumps
When CodeStar initially launched, creating a new project with CodeStar was unnecessarily complicated. More than anything else, creating a new project should have been effortless, since the whole point of CodeStar is that it is supposed to be easy and user-friendly. Luckily, they’ve finally solved a lot of those initial problems.
The main issue with project creation when CodeStar launched was
                        that when you created your first project with CodeStar, you had to go into IAM to create a
                        service role for CodeStar to use. For a service trying to lower the bar for users, this is an
                        exercise many will have trouble performing. They’ve changed that now. There is a button that
                        automates the creation of that IAM role, and you don’t even have to leave the main CodeStar
                        page. 
 Another issue with new project
                        creation was restrictions around Git credentials. Previously, CodeStar only worked with AWS
                        CodeCommit. When creating a new CodeCommit repository, you had to manually generate and
                        configure Git credentials, which was inconvenient. Again, something that could trip up new
                        users. 
Now, because you can use GitHub, you
                        can bypass new Git configuration. Once you set up the GitHub SSO connection with AWS, you don’t
                        have to set up any new Git credentials.
One Size Fits None
When CodeStar first launched in 2017, the lack of customization with integrations and tools you could use seemed like a huge hindrance to adoption. In 2021, the software world has only become more fragmented with the amount of CI/CD options and tools available. This really makes CodeStar dead in the water for most users.
Especially with existing projects and teams, the reluctance to change existing tools for a new aggregation resource is going to be a really hard sell.
Really!? Still No CloudFormation Support!?
Over the years, I’ve become a more ardent supporter of
                        infrastructure as code. It’s simply the best way we have to create and manage infrastructure in
                        the cloud. 
This is another way that CodeStar
                        is really failing. To create a CodeStar project with a CloudFormation template, you have to use
                        the CodeStar Transform. This is similar to the Serverless transform that the Serverless
                        Application Model (SAM) is built on. These transforms allow you to supply a small amount of
                        information that CloudFormation then uses to create more robust
                        infrastructure.
The issue at hand with the
                        CodeStar Transform is that there is no documentation for it. Occasionally this happens when a
                        service is new. Honestly, AWS does have some struggles with documentation, but there is no
                        excuse for not having documentation four years later.
Due to the non-documented CodeStar Transform for CloudFormation
                        templates, using it seriously in 2021 is not a good idea. 
AWS Developer Tools are Growing Up
One of the major issues I had with CodeStar in 2017 is that the
                        underlying services weren’t very mature, specifically CodeCommit and CodePipeline. Things have
                        changed quite a bit for those services, and I’ve actually been using both in isolation with
                        projects in production to good effect.
CodeCommit
                        is now a good option for managing your source code. It’s not public, like GitHub or GitLab, but
                        it finally has all of the necessary features to work collaboratively in a team, most notably
                        Pull Requests. Altogether, except for perhaps some kind of price benefit or data storage
                        preference, I wouldn’t really recommend CodeCommit over any of the other popular code
                        repositories.
I’ve also been using CodePipeline
                        for production applications at my job for several years. It works well in pretty much all cases.
                        It can’t do as many non-AWS things as other CI/CD options, but if you’re working in AWS or
                        deploying to AWS, CodePipeline probably has all the features you need. 
CodeStar Hates Existing Projects
Unless I’m doing something wrong, you cannot use CodeStar with existing projects. When you create a new CodeStar project, it creates a new repository. When I tried connecting to an existing repository in GitHub, it would throw an error and wouldn’t create the CodeStar project, saying the repo already existed. So, I take it that existing projects are a no-go with CodeStar.
Again, this is a big miss, as most teams and people won’t be creating new projects as frequently as they’ll be working on existing projects. CodeStar is never going to have the same appeal as services like Heroku or Vercel, so ignoring enterprise teams and legacy projects is a bad idea.
Is CodeStar for you?
So who is CodeStar really for?
If you’re brand new to CI/CD, CodeStar might be a good option to
                        easily create a new project, play around with it, and to see how CI/CD works using all of AWS’s
                        native services. However, there isn’t a lot of customization, and there are plenty of
                        unavailable tools you’ll want to use in your CI/CD. So in that case, CodeStar would be somewhat
                        limiting.
If you have a Serverless app, I would
                        recommend using AWS Amplify instead of CodeStar. AWS Amplify is a newer service and has already
                        fixed a lot of the cons I’ve mentioned with CodeStar. 
If you already understand CI/CD and CodePipeline, the only benefit that CodeStar brings that I can see is the ability to create all those resources at once. Basically, the CodeStar wizard is the best part about it.
Final thoughts
I think CodeStar has mostly been abandoned by AWS. There doesn’t seem to be any new development with the service, and unless they significantly overhaul the service, I can’t see it providing many teams any value. It doesn’t do enough for small teams and lacks the customization needed for enterprise teams.
The lessons learned from attempting to create a service like
                        CodeStar seem to have been applied to the AWS Amplify service. Unfortunately, Amplify only
                        supports certain types of projects, like Serverless and Statically rendered
                        sites. 
Having a unifying service for the AWS
                        Developer Tools could be really useful if done well. Maybe CodeStar could have a second life at
                        some point!