Serverless framework definitely does make it easy to deploy infrastructure to AWS, there are some specific challenges when working in local and dev environments.
In order to test locally, we use SAM and specify configuration in a yml file. But this has limitations because in some case we need to actions with 'live' interaction with our dev slack api endpoint. For example it is not easily possible to test the OAuth flow (sign in with Slack, add to Slack) locally. In this case we must rely on deploying to AWS from a local laptop.
The issue with this however, is that if you deploy to dev you will overwrite the current dev deployment, and in many cases this is necessary. So it can add complexity as team members work on the project synchronously.
The overall flow of the software factory is facilitated by CircleCI. Configuration for endpoints, database names and redirect URIs are stored in a set of config files while all sensitive secrets for accessing Slack or Google are accessed via environment variables which are provided by CircleCI during the build and deploy process.
Conclusion
The most complex development part was to deal with Slack and Gdrive credentials to save and secure them, how to deal with it and how it works especially Gdrive.
When you create a public application there is a lot of things you need to take care like legal usage or images, the condition of use etc.
It was a lot of fun developing a small project that can be useful for others to use.
Want to try it out? Here’s our Slack app: https://photostashbot.com/