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.
Now, the workflow is something like this:
Open a terminal and run `squarespace setup`
The setup command handles authentication, website creation, and developer mode setup for the developer. This makes it easier for new developers to get up and running quickly, and for existing ones to streamline their workflow
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.
The last large project I worked on at Squarespace was an integration with Unsplash. Previously, the only photo integration Squarespace had was with Getty Images, which made sense when the partnership was launched. Since then sites like Unsplash have made a surplus of high quality, royalty free images, easily accessible. Thus many users were going to Unsplash, downloading the photos, and uploading them to Squarespace. Towards this end, I built a full stack integration with Unsplash that allowed users to query for photos and with one click add them to their websites. While at Squarespace I presented the feature to both internal stakeholders and the Unsplash team while, talk of an integration was in the air.