Hi 👋🏻
AWS App Studio is the Low-code application build service.
I was a beta tester for AWS App Studio (and maybe I still am), I would like to share my experience of making application with AWS App Studio.
Following my blog post on “Pros” of AWS App Studio, I’m doing a series of blog posts on “Cons” of AWS App Studio.
Cons of using AWS App Studio
Initial Setup Hurdles
- Activating AWS IAM Identity Center
AWS App Studio integrates with AWS IAM Identity Center, making it easy to securely manage access by integrating with existing Single Sign-On (SSO) and Lightweight Directory Access Protocol (LDAP) setups.
👆 This image explains that I should have "Administrator permissions to manage AWS IAM Identity Center" to create AWS App Studio instance
👆 This image explains that the configuration already exists at "N. Virginia" region should be deleted
Setting up the IAM Identity Center was essential for configuring the App Studio environment. However, as someone who had little prior knowledge of IAM Identity Center, the setup process was challenging.
Since IAM Identity Center can only be configured in one region, I had to set it up in the Oregon region, where App Studio is available. This required me to delete existing configurations in other regions.
I couldn’t easily determine which region or services were using IAM Identity Center in my account. As my AWS account had been inactive for over a year, I ended up deleting previous setups in other regions and successfully configured IAM Identity Center in the Oregon region.
Completing the setup without fully understanding IAM Identity Center wasn’t the most pleasant experience.
- Creating an App Studio Instance
👆 that saids "The setup may take up to 30 minutes. Please come back and check the setup status."
After completing the IAM Identity Center setup, I created an App Studio instance. I added the IAM Group and User created in AWS IAM Identity Center to the "Administrator Group" and initiated instance creation. However, the process of creating the App Studio instance took a very long time.
It took almost half a day to see the completed instance. I began the process at 7:30 PM, and after waiting 30 minutes with no response, I had to check back the next day. This process occurred in mid-September 2024, so I hope the time required has since been reduced.
During the instance creation process, I also received an email from notifications@codecatalyst.aws at 12:30 AM, titled "Increased error rates and latencies for Workflows," which I still remember.
Disappointing contents of manual document
Personally, I prefer documents with attached screenshots or videos, but App Studio's documents are all text. So I had a hard time learning about parameters, JS expressions types, etc.
It was regrettable that even the instructions to follow the menu button were only in text.
I made a suggestion to the App Studio team in Slack, thinking that it would have been better if at least screenshots were included, but the team responded that they were intentionally cautious because the maintenance costs would be significant if the UI of the service were changed in the future, and the contents such as screenshots and videos would have to be changed together.
DynamoDB
Join disappears when mapping DynamoDB
In the App Studio itself, there was a Join feature, which was convenient for connecting with other Entities.
However, I only realized after changing the Data Connection to DynamoDB
that it does not support the Join feature.
If I had known this in advance, I wouldn't have used Join, and I wouldn't have had to go through the trouble of modifying the Entity connection method, resulting in both emotional energy and time being wasted.
The moment I figred out that DynamoDB does not support JOIN.
DynamoDB Connector Setup
It was very cumbersome to have to go to the main page to update the Connector settings every time the column type of the DynamoDB table changed.
Unknown Warning about field setting
I suspect that if the DynamoDB table has Partition Key and Sort Key at the same time, App Studio’s Entity showed Warning “Entity field constraints must match the constraints of the mapped data source column.”
I cannot match the constraints at App Studio.
I wish S3 upload component has option for don’t upload directly
When selecting an image file locally with the S3 upload component, I would like to have an option to upload it to the S3 bucket only when the user clicks the Confirm button, rather than uploading it directly to the S3 bucket.
When creating a page where the user selects a photo to upload from the photo gallery and enters other data, if the user suddenly changes their mind and cancels the image posting, the S3 image that has already been uploaded must be deleted again, which is very inefficient.
Generated by AI
Undo the Javascript code generated by AI
Sometimes, when entering a prompt in Generate JavaScript, it completely deletes the already entered code.
When this happened, I thought that closing the window would prevent saving, so I closed it and opened the window again to check the code, only to find that the AI-generated code had already been saved, making it impossible to recover the original code.
At that time, there was no undo function, which was really frustrating.
I wish there was a button for undo.
Inconvenience of AI chat UI
When selecting the Gen AI component, the AI chat screen should ideally expand, but it didn't.
I spent quite a while figuring out what I could do in the Properties screen on the right sidebar.
Only after expanding the closed Build with AI
chat on the lower left did I realize that this is where I should be working.
Users who are not sensitive to such things might not use the Gen AI component features at all.
And one more thing,
And if you just move to another tab within the same page, all the chatbot content will disappear.
This is a very fatal and bad experience. So, you need to be very careful when using it.
The generative AI make disappointing results
I wanted to create the customized Loader component, so I asked to the AI how to make it.
I expected it to automatically create “Expression” and insert it into the new component, but I received disappointing results as it only created the UI component.
The component doesn’t include the condition what I want to put.
I wish the JavaScript variable type definition system would stabilize
I want to properly define the types for each variable to fully utilize the auto-completion feature for variable types when entering values in components within the Page tab.
Currently, there are too many cases where the type is shown as undefined, leading to uncertainty about whether I'm entering the correct values.
There are frequent red underlines for JavaScript code that works normally within Automation, and even when defining types for variables, there are many cases where the definition does not work properly.
And sometimes IntelliSense didn't work in the input fields because there was a red underline, but often it worked fine.
Slow Page Loading Speed
I implemented a photo gallery, but it takes about 10 seconds to load the photo list data from DynamoDB and then load the images from S3.
There's no caching feature on the webpage, so when I go to the next page and then return to the previous page in the image gallery component with pagination, I have to wait over 5 seconds to load the data again, which is very inconvenient.
I understand that the backend logic runs on Lambda, so I wish there were options to either set Provisioned throughputs directly or take actions for warming the App Studio Lambda function created in my account.
so I think at least app studio team provide some Loader component to show the loading status gracefully.
So, I think the App Studio team should at least provide a Loader component to display the loading status more gracefully.
Limited Customization
Unfortunately, App Studio currently allows only limited UI layouts.
Without CSS support, it is impossible to use flexible layouts like flexbox.
A particularly critical issue for me was the lack of proper support for responsive mobile views.
However, it seems that CSS support will soon be added. Discussions about this are reportedly ongoing within the App Studio team!
Future Expectations
When I first created my project in October 2024, App Studio was still in its preview stage. Now, it has become a generally available (GA) service.
Communicating with the development team on Slack and seeing my feedback reflected in improvements was fascinating. I see great potential in App Studio.
Here are some areas in which I hope App Studio will improve:
- Enhanced DynamoDB Integration: Support for JSON data types and Join clauses.
- Performance Optimization: Improve page loading speeds.
- Increased UI Component Variety: Add more customizable UI tools.
- Improved Developer Documentation: Provide more comprehensive guides with visual aids.
Conclusion
This experience allowed me to truly feel how much AWS values feedback from the developer community. Being a beta tester and participating in the service’s development process was an incredibly unique and rewarding experience.
I hope that this positive culture of the service team actively accepting and incorporating feedback continues in the future.
Top comments (0)