AWS Amplify Studio: Figma design to full-stack apps
aws.amazon.com
aws.amazon.com
Common use cases weren’t handled well, deployment failures were common, overall architecture was actually less coherent when using amplify than just the constituent AWS services directly, etc…
It felt like a kitchen sink of functionality that no one was incentivized to actually make work well together.
Have things improved?
Coincidentally, 2 hours ago I submitted Molecule.dev right here to HN (an hour before this AWS submission), a full-stack solution which aims to address all of the time consuming pain points of building (common functionality), maintaining, and releasing cross-platform apps.
It isn't a UI builder like AWS Amplify Studio, but I think we can do it better. We cover all of the most common use cases and are planning on adding more, all without any vendor lock-in or unnecessary convoluted abstractions.
We'll also soon be rereleasing an email app using the Ionic option.
Netlify and Vercel read directly from your repo. I left them because they did not have pg npm and build failed. I also had to open up the database to the public.
I've found if there was an easier way to do it, the original software would be written to do it that way, and the fundamental unavoidable unit commodity will always be a server you ssh into it.
I wonder how fast 1,000 components render? And if effectful components that call network requests create race conditions?
I recommend it, especially if you just wanna knock out a project without wasting time with ops
Not only were all the issues you mentioned common, but the quality of their libraries(JS in my case) were just horrendous. At one point there was a run time crash in their blob storage library whenever you listed an empty bucket. I tracked the root cause down to one of their devs intentionally casting away type information(`as any` in typescript) and thus not realizing there were more cases than they were handling. This somehow passed code review and testing and was published.
It was absolutely horrendous. We barely moved a millimeter because we were constantly slowed down by their tooling. I wrote a very long issue about this and just got some community representative who assured me who would do <a series of vague, non-committal promises>.
Shortly thereafter we changed to GCP and Firebase and we were at feature parity in no time and moving fast after that.
I had bad experiences with both Amplify and Figma. Figma banned my account because they didn't like the email domain. I sent all the info they asked for to reinstate it and they stopped replying without unbanning the account. I definitely wouldn't base the core of a project on either service.
Can you point me to the "good stuff" in their docs? A brief Google search quest revealed several things that all seemed to be GraphQL to CloudFormation/Dynamo/.. Which one do you use and trust?
Is it this thing? https://docs.amplify.aws/cli-legacy/graphql-transformer/over...
you create a graphql API spec and amplify builds all of the appsync resolvers and dynamo tables for you. Pretty good support for different auth methods and table schemas.
Looking at the newest version of the docs it seems they are indeed deprecating some of the weird niche features and doubling down on the things that already work well.
So far no challenges.
IMO if we don't use too many features of Amplify and use it as a pure frontend build + deploy + host then we could extract good value out of it. An alternative is Cloudfront + S3 in which case you need to maintain a deploy script.
I'm fairly confident Amplify is in fact a wrapper over Route 53, Cloudfront and S3 plus a few lambda functions to take care of build+deploy.
Other than that, using AWS services directly is always a much better experience. In my opinion amplify is like a dumbed down version of that.
It feels like the whole project is written by a junior.
Every time it’s been faster to use Amazon-cognito-identity-js and roll my own forms instead of bashing my head against the wall trying to customise their weird needless shadow DOM implementation.
I built a SaaS tool (https://tenably.app) to handle the automatic remediation of web accessibility issues currently focused on headless e-commerce platforms. With Shopify being the current offering with plans to address more platforms.
Maybe I should look at offering API's to address the needs of these no-code platforms so they have a way of solving the issues while building.
I'm not sure how much I'm saving over just using the CDK and a lighter weight set of libraries. Maybe nothing.
But for a larger project, it would be an absolutely nightmare to use. Even on my small projects I'm constantly fighting it to play nice with modern JS infrastructure. Want to run Vite + Svelte + Amplify? Get ready for some headaches (or at the very least, tons of compiler warnings and huge bundle sizes.)
The documentation is strongly, strongly geared towards the happy path experience, and if you aren't using React + the blessed service infra, you are going to hit sharp edges and lack of documentation immediately.
Their official tutorial (something a long the line of "how to run a web app in hour") has several mistakes that cost me a whole day. It is very unprofessional that such an important document was not proofread properly.
I don't know when this was, but I'm just starting learning it now and the "Getting Started" tutorial seems to be 2+ revisions behind the current CLI, which is their main product.
And UI components moved to v2 with a new doc site, but all the main docs/tutorials still refer to v1. There are breaking changes.
I'd also expect to pull up docs on any class or function in my IDE (IntelliJ), but there is nothing for Amplify. Just type definitions, no explanations.
Really rough developer experience.
2. Once you have more than 3,000 or so rows in a workbook, everything grinds to a crawl. It can literally take over a minute for any kind of data mutation in the administration user interface or in the app interface to be reflected in the display. This means that doing anything on the app becomes literally slower than if you were to do it with paper and pencil. And this is despite paying $20/month for the Plus tier, which purportedly allows 10,000 rows per workbook.
3. The project lacks polish and user-friendliness throughout.
4. It is buggy throughout, and developer updates have introduced new bugs multiple times. For example, recently the last record in a table started getting displayed in my app view even though it is excluded by the list filter in that view.
5. The bug reporting process is difficult to the point that I don't even bother anymore.
6. The first time you try to open an old workbook, it will error out. Presumably they are using serverless and the Lambda function is cold.
This is almost always a good thing.
There are of course centralizations and standardizations - the AWS SDK, Console UX, API guarantees, etc.
But Honeycode has almost no relationship to the rest of AWS, technically, or organizationally.
The last time I dealt with AWS and amplify, this was glaringly obvious in several places. Settings pages where one tab looked and behaved radically different from the other. A seeming total lack of communication between teams resulting in badly synced package released with bugs due to version differences. Also frequent omissions in documentation requiring you to hunt it down in github repos or in totally different places(Say Amplify uses X to do something, you might have to find info for using X in an Amplify context in the X docs).
Amplify's been one of those things that worked amazing for demos and POCs, but was super frustrating to tune for actual production needs. One magical moment for me was the way it would spin up a copy of the entire stack (frontend and backend) for each pull request and tear it down on close, all with basically zero configuration needed. Of course, if you had OAuth or other things that required certain domains and whatnot, it broke, but the promise was there.
However, this past month had a lot of interesting launches from the Amplify org. You can now use Amplify from CDK, override the settings on the resources it generates, and even tie it into a CDK pipeline. There's a streamlined GraphQL transformer so that you can just write a GraphQL schema and get a Rails-like experience that generates a full working app for it, with integrations on DynamoDB and OpenSearch.
https://aws.amazon.com/amplify/blog/?awsf.blog-post-types-fi...
There's a lot to like here. I don't know if any of this would live up to the potential, but at least you can see that AWS is investing pretty heavily in it. I think Amplify has a real future as an alternative universe way of working with AWS for app building. I could see this studio launch being a quick way to prototype/iterate/experiment with designs before giving feedback back to a design team.
It's 10 miles each way but yeah
Things we would specifically miss:
- integration with Cognito and Authentication
- schema to DyamoDB generation (tables, indexes etc)
- generation of CloudFront templates
- generation of AppSync resolvers
Also curious about using SAM / serverless framework vs Amplify functions.