title: Creating a local dev environment for appsync
body: <p>We have a react mobile frontend and an AWS appsync backend (DynamoDB, step functions, lambdas, graphql, auth)</p>
  
  <p>Is there an easy way to do this? We have an application and backend in production, and now want to make some changes to our GraphQL components (e.g. schema). Ideally, I would like to have an offline environment which mimics that deployed on AWS.</p>
  
  <p>I found this <a href="https://stackoverflow.com/questions/51776064/is-there-a-way-to-test-appsync-code-locally-and-or-in-ci-cd">Is there a way to test AppSync code locally and/or in CI/CD?</a>, which didn't really have any clear answers. It seems setting up a duplicate environment on AWS (pretty much a staging envirFor lambdas, we have played around with Serverless a little.</p>
  
  <p>We don't use CloudFormation today (maybe we should?), for lambdas, we have played around with Serverless a little, but had issues testing locally with authentication and I think DynamoDB. Ultimately, we just ended up using the AWS console to create components, and then something like Cloud9's IDE to build and debug before deploying to production. I don't like the fragmented dev experience. Lambdas weren't too bad because of Cloud9, but as for GraphQL doesn't seem to have the equivalent.</p>
  
  <p>Eager to learn what the best practices are, and how best (and easy) it is to setup a good dev environment.</p>
  
  <p>Thanks</p>