During the Fall and Winter of 2016, and Summer of 2017, I worked at Squarespace, Inc on a variety of projects. Much of my work took the form of independent projects where I designed and developed solutions to a problem affecting some subset of users. I also worked on a myriad of bug fixes and small improvements in the main editing interface. These are the larger of the projects that I worked on that have been released.
Squarespace Toolbelt is a set of command line tools that ease the process of developing a Squarespace template. My work on toolbelt was focused primarily on the setup and deploy commands.
The old workflow for building a developer template looked like this:
- Go to the Squarespace website
- Sign up for a new account or log in to an existing one
- Create a new website
- Navigate deep in settings to Developer Mode
- Enable Developer Mode
- Copy the url for the git repo
- Go to a terminal and clone the repo.
- Start coding
Now, the workflow is something like this:
- Open a terminal and run `squarespace setup`
- Start coding
The setup command handles all of the authentication, website creation, and developer mode steps for the developer. This makes it easier for new developers to get up and running quickly, and for existing ones to streamline their workflow
Squarespace x reCaptcha
One of Squarespace's most powerful features is that it allows users to create an arbitrary number of forms on their website to collect data from visitors. People use these forms on contact pages, checkout flows, newsletter sign ups, and more. This is great when the thing completing the form is a person, but terribly if it's a machine.
The form system is configured to send out an email or input the response in a spreadsheet anytime a submission is processed. This means that if someone were to build a bot that spammed a form with bogus responses, the website owner would receive a barage of unwanted messages. Customers frequently wrote in to customer support asking to block those senders, but due to technical limitations, that wasn't a viable action.
Instead, we decided to add an integration with Google reCaptcha to provide automated spam bot deterrence. This allows customers to have fine grained control over their website's security and spam protection.