How ReSnap uses DeployBot to deploy a Polymer project to S3

Loek Dieben from ReSnap

One of the most exciting moments for our Customer Success team is when they hear from a customer who is using DeployBot to completely change their workflow. Recently we heard from the team at ReSnap with this exact story.

Loek Dieben is a front-end developer at ReSnap, and I recently sat down with him to talk about ReSnap and how they use DeployBot.

Shane: Hi Loek. Can you tell me a bit about ReSnap?

Loek: Sure. ReSnap creates beautiful photo books in one minute. Our users can connect to their social media accounts, or upload their photos directly, and our platform goes to work selecting the best photos and laying them out in the format they’ve chosen.

Our team has built everything to work on Amazon Web Services, and our front-end is running on S3.

S: Got it. Can you tell me a little bit about how you were deploying to S3 before you started using DeployBot?

L: Before we started using DeployBot, whenever I was ready to deploy my work to our staging environment I had to ask another developer to move everything for me.

We knew we could make this process better, but didn’t want to spend time we could use to improve our app to research and implement an upgraded deployment process for our entire team. When I read about DeployBot on TheNextWeb it led me to research how it could help solve this problem for us. I saw DeployBot connects to S3 and I wanted to see if we could make it work for us.

S: Can you tell us more about the tools you’re using to build the front-end experience for ReSnap?

L: We use Polymer from Google, and need to minify and concatenate our files before they reach our staging environments. Before DeployBot we were running gulp after each commit, but Build Tools has changed all this completely.

Now it’s easy to deploy our ‘develop’ branch every time a commit is pushed with the auto deploy function from DeployBot. We use our staging server to let people in our office continually test our application, so it is very useful to be able to do quick deploys.

We were hitting one snag, because our gulp file was set to re-deploying all of our files with every commit and our deployments were taking longer than we wanted. To fix this we made an update to our gulp file. Instead of emptying the complete /dist folder, we added an extra function to only deploy the files changed after each commit.

Editor’s note: Loek later shared this code with me.

if [ "%AUTO?%" == "1" ]; then
    gulp dist --essentials --version="%RELEASE_ID% - %TIMESTAMP_UTC%"
    rm -rf bower_components
    bower install
    gulp dist --version="%RELEASE_ID% - %TIMESTAMP_UTC%"
echo "-- DONE --"

Once we reach a point where we are happy with the development branch, we manually deploy it to our staging server. This triggers a full deploy and the whole S3 bucket gets emptied with a fresh reupload from DeployBot.

Then everyone tests the whole application again, and if everything is ok, we run a manual deploy to our production environment. This can only be triggered manually, and we can easily see our entire deployment history in DeployBot.

One other thing I’ve really loved about DeployBot, your entire team has been really responsive and helped us out whenever we had a question.

The entire process is more efficient for me and for our entire team. On top of being able to deploy my work independently, the rest of the team loves being kept up to date on our deployments in Slack. This simple integration has really sped up our testing process.

One other thing I’ve really loved about DeployBot, your entire team has been really responsive and helped us out whenever we had a question. I’ve talked to customer success and developers on your team in chat, and they were able to help me resolve any issues very quickly.

S: This makes me really happy Loek. Thanks for taking the time to sit down and chat with me.

It was fun talking to Loek and hearing how ReSnap uses DeployBot. Be on the look out for a new guide from Loek on using DeployBot to deploy to S3. You can subscribe to our guides, and you’ll be notified when Loek’s guide is available.

If you're interested in using DeployBot to manage your Grunt or Gulp workflow, be sure to check out our guide on deploying with Grunt or Gulp.