Description
Today I joined the open hours discord call to talk about this topic and they pointed me here to give the feedback.
I used to be a kb admin for over 7 years and wrote a lot of docs in my time. One thing that I struggle with regarding the AWS docs is that the audience they are speaking to seems to be pointed at a high level developer. For people like myself learning Amplify I find it really hard to find the information I need in a language that I can understand at a lower level. In addition visual aids are supposed to help fill in gaps if you have to speak to a higher level audience for the lower level audience. I found that the visual aids dont provide enough information to fill in the gaps.
To resolve this issue it would be nice to have access to the full code of a template project that illustrates whatever subject is being talked about. That way even if the language is complicated a person can reverse engineer the full code example stored in some git repo to get a complete view of how to do something. I find myself wishing many times that if their was a repo of the whole topic then I could figure it out faster.
Take for instance Amplify VTL resolvers. It is such a complicated thing to do that it took me way to long how to figure out how to do the following.
- How to make a extend a VTL resolver
- The limitations of a req and res resolver function IE only 1 DynamoDB action per req or res.
- How to debug a VTL resolver via the $util.log function.
- How to override the data source of the resolver function so that it points to the right table <--- This is not in your docs and is a common thing people want to do.
- How to test the pipeline via AppSync Queries
Some of this is documented but its not all in a centralized place to put it together quickly. And some information is only available on the old docs. I get the impression that the people writing these docs either has a very surface level of what these systems do and possibly getting the bullet points from a high level developer and just building the doc from that or is the high developer that assumes the reader knows a lot more about all the products and thus leaves out a lot of lower level information. Thus entry level devs or devs new to the products are going to spend way more time trying to figure out how to do stuff. In my case I struggle to read docs and lean on the visual aid or code source to fill in the gaps and that visual aid aka a repo of a project that implements the subject matter doesn't really exist. Then I have to lean on an outdated ChatGPT data model which is in 2021 to sometimes have some knowledge of what to do or to better explain parts of what I am trying to do.
To summarize
- The resolvers section could be better organized and have more information and more examples on how to set them up.
- Write part of the docs to lover level developers
- Provide better visual aids and access to full project examples of how something is done.
- A lot the docs are very singular in how to do something but its rare that there are example of how to do real world common problems like. How to do minor validation for a creation mutation resolver. Such as query a table of users, check if the data to save has an email address and if so check if any users from the query have the same email address, if so error out. Or in a delete mutation resolver, when deleting a user who has a 1 to many relationship with a phone numbers table. If you delete the user and need to update the phone number in the phone numbers table attribute from assigned to unassigned. Simply how to do basic chained real world back end actions.