'We want to try and remove tools rather than add more...' Netlify founder on simplifying the feedback loop and more
You've heard of Continuous Integration – how about Continuous Review for your Jamstack?
Interview Netlify has acquired FeaturePeek, a system for simplifying the flow of feedback on web application previews and prototypes.
The idea of FeaturePeek is to short-circuit the path between developers or designers trying out a code fix or new feature for a web site or application, and reviewers or testers giving feedback. Users can open an overlay in the browser, from which they can make comments and take screenshots. The system integrates with GitHub and other issue-tracking services including Trello, Linear and Clubhouse, so that the feedback is immediately surfaced in the issue tracker.
The platform already offered a feature called Deploy Preview, where a pull request (a submission of code for consideration for merging into production) automatically triggers a build, which is published as a preview.
Following the acquisition, the FeaturePeek system has become part of Deploy Preview. "We want to try and remove tools rather than add more," Netlify founder Matt Biilmann told The Register.
In a traditional workflow, as a tester of a new feature, he might "take my screenshots, annotate them, then put them into a PowerPoint presentation, then I add that in a Jira ticket, or send it in an email. We want to short-circuit all of that complexity and just tie into the existing tools."
- Website maker Wix embarks on weird WordPress-trashing campaign, sends 'influencer' users headphones from 'WP'
- Microsoft aims to spread JAMstack through Azure App Service via GitHub and Visual Studio Code
"Now you can go directly to a Deploy Preview URL, press a button there to take a screenshot, annotate it, and then directly from that view, create a ticket in Trello, for example. And attach the screenshot and send it back to a developer.
"That ticket will have the link to the actual pull request that the developers are working on in GitHub, the context of the browser and operating system and what resolution you were in, and it will have the URL of the Deploy Preview that you were actually using so everyone can go see," he said.
If automating the process from code commit to deployment is Continuous Integration, perhaps this can be called Continuous Review.
Another feature is a BrowserStack integration, so that "if you get a comment back in a pull request from a user that says this looks weird on my device, the developer can click to open up the same device with the same resolution in a BrowserStack instance and troubleshoot the issue there."
The integration with GitHub means that this now provides the code, the issues and the feedback in one tool, as well as being the system that triggers the Deploy Preview when a pull request is received.
Other code management systems are not yet supported, though Netlify said that there are "more integrations to follow."
Biilmann told us that FeaturePeek and Netlify had been approaching the same problem from different ends. "FeaturePeek had started to build out their own system for a staging environment," he said, but "if that staging environment is not really the same as your production environment, a big part of the whole idea of Deploy Preview goes away."
On Netlify's side, "If we just added a layer on top of Deploy Preview, like added commenting and so on, then that would be like just one more tool in a tool that was already confusing."
Merging the two teams therefore made sense, though note that this is a tool which requires use of Netlify for hosting.
Biilmann was an early advocate of what is now called Jamstack. FeaturePeek used to support other types of hosting such as Docker containers, does the acquisition mean that some features are now lost?
"In reality, FeaturePeek's Deploy Preview functionality was not really viable without this decoupling of the UI from the backend," he told us. "That's still the case. You will need to use Netlify and you will need an approach that at least broadly follows the architectural principles of the Jamstack. We see the experience that we are building today similar to what Figma did for design and prototyping where you went from sending PSD [Photoshop] documents back and forth, to a process where designers will now give me a URL and I'll go and see directly what they are working on.
"This is exactly the same that we're doing now; developers can just send a secure URL, we can see directly what they're working on [and] they have all the context from the pull request to give feedback, take screenshots and even record video snippets and send them back.
"It's already been a change to how we collaborate internally and I think from our use case it will be a huge change," he said, though with web applications rather than design documents.
Microsoft has introduced its own Jamstack platform with Azure Static Web Apps – is that a threat to Netlify?
Biilmann gave the answer specialist companies always give when an industry giant comes up with an offering in the same niche. "It's a huge validation that the fundamental idea that the modern web is going to be decoupled, that the modern web is going to work around these four primitives of edge-based hosting, serverless functions, edge routing, APIs and services, have been proven right," he said.
"Of course competition is healthy, it forces all of us to build better products. For us the key is to differentiate in terms of the developer productivity we can offer, to be a bit more opinionated, we really believe in this architecture and it's not just a gateway to ending up in the full AWS console or Azure resources pane."
Netlify is actually an AWS customer itself, offering a Netlify Functions service that runs on the AWS serverless platform, Lambda. Smaller customers may build all the dynamic content on Functions, Biilmann said, and are also useful for larger businesses.
"If you're an enterprise company you already have a large set of APIs and services and big teams working across all of that. Functions serve as an important layer in building the glue code between the UI layer and all these back-end layers."
How does the Jamstack approach affect the security of web applications?
"There's a huge benefit in the idea of decoupling the build process from the runtime process," Biilmann claimed. "When you were working with live systems like WordPress or Rails or Drupal or anything like that, you had this additional complexity that every tool that you would use in a production website would somewhat be available though the request/response cycle and every plug-in you installed would have full access to your production database and your server codebase and so on."
Even if there are flaws in the dependencies used by a static site generator like Gatsby, "decoupling the build step means that most of those dependencies are never exposed in a request/response cycle to a user," Biilmann told us.
That still leaves the API or microservices as a potential vulnerability, but Biilmann claimed that "if you have this decoupled architecture, you have a well-defined API layer, each of those serverless functions have inherently much less access to your infrastructure than you would traditionally have in a big monolithic system. As a general rule, this is a big step forward in how we can make security easier to reason about."
FeaturePeek, now part of what is called Collaborative Deploy Preview, looks promising, but still perhaps needs some work. "This looks great and all but the new drawer icon covers up a key button on our app... ironically the person who noticed took a regular screenshot and shared it in Slack," said a user on Hacker News. ®