The Edge. The final…frontier? What even is “the edge” beyond just another tech buzzword? And how can I actually use the edge for something actually useful for my site and visitors?
In this talk, I will answer all of these questions and talk about how we at Pantheon have built a software development kit for Drupal and WordPress to enable personalized content by integrating with our edge layer.
We’ll talk about what personalization means for site owners, and get into some of the technical implementation details of how we’ve built our SDKs and how they can be used for personalized content creation.
Docker Meetup Mannheim: Multiarch docker images for cross-platform appsStefan Scherer
Docker now supports both Linux and Windows. With Windows Server 2016 you can use Docker and Windows Containers. See how Docker supports you to ship your cross-platform software as multi-arch Container images.
Example repo https://github.com/StefanScherer/whoami
SUGCON ANZ 2022 Sitecore Personalize Technical.pptxJitendra Soni
Headless Implementation
Overview of Sitecore CDP & Personalize and Sitecore Send
Integration of CDP & Personalize & Sitecore Send
Pray to the Demo Gods
Hands on walkthrough of our problem solution
Frontend Development vs Backend Development | Detailed ComparisonMariya James
Frontend Development vs Backend Development is a topic worth discussing. These two are equally important for web development. Know the advantages and differences between these web development modules.
World Festival - Reimagining web development in your browser.pdfAbati Adewale
Web development is a fast changing ecosystem with new technologies and libraries being created on the go. To stay on top of everything, we have to make it as easy and accessible as possible to experiment and use these technologies with little to no setup. In this talk, we'd be exploring the world of Browser-based IDEs and how they are changing the ecosystem - improving collaboration, streamlined experiences and preconfigured development environments.
Azure Saturday - Build and Deploy multi-arch Docker ImagesStefan Scherer
Window Server 2016 brings Docker and Windows containers built-in.
Let’s adopt this new way to deploy applications on Windows. You will learn how to unify your deployment for both Linux and Windows platforms.
Key takeaways:
* Learn how to build and release an application with GitHub
* Build a Linux application with Travis CI
* Build a Windows application with AppVeyor CI
* Push both platform specific Docker images
* Draft a multiarch Docker image
* Push your images to Docker Hub
Docker Meetup Mannheim: Multiarch docker images for cross-platform appsStefan Scherer
Docker now supports both Linux and Windows. With Windows Server 2016 you can use Docker and Windows Containers. See how Docker supports you to ship your cross-platform software as multi-arch Container images.
Example repo https://github.com/StefanScherer/whoami
SUGCON ANZ 2022 Sitecore Personalize Technical.pptxJitendra Soni
Headless Implementation
Overview of Sitecore CDP & Personalize and Sitecore Send
Integration of CDP & Personalize & Sitecore Send
Pray to the Demo Gods
Hands on walkthrough of our problem solution
Frontend Development vs Backend Development | Detailed ComparisonMariya James
Frontend Development vs Backend Development is a topic worth discussing. These two are equally important for web development. Know the advantages and differences between these web development modules.
World Festival - Reimagining web development in your browser.pdfAbati Adewale
Web development is a fast changing ecosystem with new technologies and libraries being created on the go. To stay on top of everything, we have to make it as easy and accessible as possible to experiment and use these technologies with little to no setup. In this talk, we'd be exploring the world of Browser-based IDEs and how they are changing the ecosystem - improving collaboration, streamlined experiences and preconfigured development environments.
Azure Saturday - Build and Deploy multi-arch Docker ImagesStefan Scherer
Window Server 2016 brings Docker and Windows containers built-in.
Let’s adopt this new way to deploy applications on Windows. You will learn how to unify your deployment for both Linux and Windows platforms.
Key takeaways:
* Learn how to build and release an application with GitHub
* Build a Linux application with Travis CI
* Build a Windows application with AppVeyor CI
* Push both platform specific Docker images
* Draft a multiarch Docker image
* Push your images to Docker Hub
Docker on a laptop is easy, but Docker in the cloud is hard. Networking, scaling, and security are very different problems at cloud scale than on a laptop, and they can combine to sink a project before it ships What makes that transition so hard, and what can we do about it? How does this challenge affect hosting infrastructure and application design?
Casey will share lessons learned, open-source solutions, and working patterns for building and scaling applications to production.
Presented at:
http://www.meetup.com/Docker-Austin/events/223284441/
http://www.meetup.com/Docker-Philadelphia/events/223290624/
Reimagining web development in your browser.pdfAbati Adewale
Web development is a fast changing ecosystem with new technologies and libraries being created on the go. To stay on top of everything, we have to make it as easy and accessible as possible to experiment and use these technologies with little to no setup. In this talk, we'd be exploring the world of Browser-based IDEs and how they are changing the ecosystem - improving collaboration, streamlined experiences and preconfigured development environments.
Techentry is a software training institute in Bangalore that offers Offline training with Zero theory classes, mentored by industry professionals with guaranteed placement assistance.
For more information, please visit our website
https://techentry.in/
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLars Trieloff
Lars Trieloff's presentation at Web 2.0 Expo Berlin covers the why and how-to of internationalization for web 2.0, consolidating i18n technology and enabling user-contributed translations.
Summary of fast development and cloud native architecture along with cost optimization techniques. Presented as opening keynote at the Utility and Cloud Computing 2014 as part of the Cloud Control Workshop.
London IoT Meetup Sep 2022 - End to end encrypted IoTChris Swan
Your thing, your data.
An overview of why end-end encryption is desirable for the Internet of Things (IoT), and how it can be done using personal data stores such as atSigns on the atPlatform.
Sydney Identity Summit: Addressing the New Threat Landscape with Continuous S...ForgeRock
Sydney Identity Summit presentation by Andrew Latham, Director, Customer Engineering, ForgeRock and Warren Strange, Director, Customer Engineering, ForgeRock
Keynote at Dockercon Europe Amsterdam Dec 4th, 2014.
Speeding up development with Docker.
Summary of some interesting web scale microservice architectures.
Please send me updates and corrections to the architecture summaries @adrianco
Thanks Adrian
From Idea to App (or “How we roll at Small Town Heroes”)Bramus Van Damme
Guestlecture I gave to the students ICT at Odisee, explaining the app development process, how we do certain things at Small Town Heroes, and how we implement QA throughout our process.
Lorin Beer's presentation from the SF PhoneGap Meetup on November 28, 2012. Pender is a cross platform library which offers hardware accelerated graphics through a Canvas API on mobile devices.
Morden F2E Education - Think of Progressive Web AppsCaesar Chi
We focus on newbie front end / JavaScript full-stack engineer training, we will tell training evolution.
And we well tell you how PWA works in training process.
In dieser Präsentation werden BootsFaces und AngularFaces näher vorgestellt. Bei der DOAG 2016 in Nürberg zeigten die Referenten zudem ein paar Tricks, die man einfach braucht, um ein großes Framework über Jahre frisch zu halten. Refactoring und Toolunterstützung sind wichtige Stichworte. Als Bonus gab es eine kleine Live-Demo.
Die Java-Experten Stephan Rauh und Riccardo Massera hielten diesen Vortrag am 17.11.2016 bei der DOAG Konferenz in Nürnberg.
Thanks to an innovative and fiercely open community, WordPress users are constantly finding new ways to build breakthrough digital experiences. Headless WordPress architectures use modern JavaScript frameworks like React to create experiences that push the envelope of what's possible with WordPress. It's a technology here to stay. Are you up to speed? In this video, hear from Matt Landers, Technical Architect at WP Engine, about why WordPress is a great choice for a headless CMS, and how WP Engine is helping shape the future of headless WordPress.
Outcomes vs Outputs: How Outcome Driven Development Planning Changes EverythingChris Reynolds
As freelancers, developers and project managers working on a project, it’s easy to get blinded by outcomes. Tasks on a project are often defined by the specific thing that we expect to build or present to the client or customer. But what if our assumptions are wrong? Or the scope changes along the way? What if there was an easier way to produce a desirable, user-friendly end-product without specifically defining what that end-product is? (Spoiler: There is!) This talk will discuss how to shift your focus from outputs to outcomes and how that little mental shift, changes everything. Really!
How the WordPress Block Editor Changes the Conversation for Content Editors a...Chris Reynolds
Everyone in the WordPress community is talking about the new editing experience in WordPress. Wherever you fall in defense of or against the new editor, it changes how we interact with WordPress from a content editing and a development perspective. In this talk I will explore some of the ways Gutenberg changes how we build things as well as the types of things we can build to enhance and improve the WordPress editing experience.
More Related Content
Similar to Developing an SDK for Personalization at the Edge
Docker on a laptop is easy, but Docker in the cloud is hard. Networking, scaling, and security are very different problems at cloud scale than on a laptop, and they can combine to sink a project before it ships What makes that transition so hard, and what can we do about it? How does this challenge affect hosting infrastructure and application design?
Casey will share lessons learned, open-source solutions, and working patterns for building and scaling applications to production.
Presented at:
http://www.meetup.com/Docker-Austin/events/223284441/
http://www.meetup.com/Docker-Philadelphia/events/223290624/
Reimagining web development in your browser.pdfAbati Adewale
Web development is a fast changing ecosystem with new technologies and libraries being created on the go. To stay on top of everything, we have to make it as easy and accessible as possible to experiment and use these technologies with little to no setup. In this talk, we'd be exploring the world of Browser-based IDEs and how they are changing the ecosystem - improving collaboration, streamlined experiences and preconfigured development environments.
Techentry is a software training institute in Bangalore that offers Offline training with Zero theory classes, mentored by industry professionals with guaranteed placement assistance.
For more information, please visit our website
https://techentry.in/
Living in a multiligual world: Internationalization for Web 2.0 ApplicationsLars Trieloff
Lars Trieloff's presentation at Web 2.0 Expo Berlin covers the why and how-to of internationalization for web 2.0, consolidating i18n technology and enabling user-contributed translations.
Summary of fast development and cloud native architecture along with cost optimization techniques. Presented as opening keynote at the Utility and Cloud Computing 2014 as part of the Cloud Control Workshop.
London IoT Meetup Sep 2022 - End to end encrypted IoTChris Swan
Your thing, your data.
An overview of why end-end encryption is desirable for the Internet of Things (IoT), and how it can be done using personal data stores such as atSigns on the atPlatform.
Sydney Identity Summit: Addressing the New Threat Landscape with Continuous S...ForgeRock
Sydney Identity Summit presentation by Andrew Latham, Director, Customer Engineering, ForgeRock and Warren Strange, Director, Customer Engineering, ForgeRock
Keynote at Dockercon Europe Amsterdam Dec 4th, 2014.
Speeding up development with Docker.
Summary of some interesting web scale microservice architectures.
Please send me updates and corrections to the architecture summaries @adrianco
Thanks Adrian
From Idea to App (or “How we roll at Small Town Heroes”)Bramus Van Damme
Guestlecture I gave to the students ICT at Odisee, explaining the app development process, how we do certain things at Small Town Heroes, and how we implement QA throughout our process.
Lorin Beer's presentation from the SF PhoneGap Meetup on November 28, 2012. Pender is a cross platform library which offers hardware accelerated graphics through a Canvas API on mobile devices.
Morden F2E Education - Think of Progressive Web AppsCaesar Chi
We focus on newbie front end / JavaScript full-stack engineer training, we will tell training evolution.
And we well tell you how PWA works in training process.
In dieser Präsentation werden BootsFaces und AngularFaces näher vorgestellt. Bei der DOAG 2016 in Nürberg zeigten die Referenten zudem ein paar Tricks, die man einfach braucht, um ein großes Framework über Jahre frisch zu halten. Refactoring und Toolunterstützung sind wichtige Stichworte. Als Bonus gab es eine kleine Live-Demo.
Die Java-Experten Stephan Rauh und Riccardo Massera hielten diesen Vortrag am 17.11.2016 bei der DOAG Konferenz in Nürnberg.
Thanks to an innovative and fiercely open community, WordPress users are constantly finding new ways to build breakthrough digital experiences. Headless WordPress architectures use modern JavaScript frameworks like React to create experiences that push the envelope of what's possible with WordPress. It's a technology here to stay. Are you up to speed? In this video, hear from Matt Landers, Technical Architect at WP Engine, about why WordPress is a great choice for a headless CMS, and how WP Engine is helping shape the future of headless WordPress.
Similar to Developing an SDK for Personalization at the Edge (20)
Outcomes vs Outputs: How Outcome Driven Development Planning Changes EverythingChris Reynolds
As freelancers, developers and project managers working on a project, it’s easy to get blinded by outcomes. Tasks on a project are often defined by the specific thing that we expect to build or present to the client or customer. But what if our assumptions are wrong? Or the scope changes along the way? What if there was an easier way to produce a desirable, user-friendly end-product without specifically defining what that end-product is? (Spoiler: There is!) This talk will discuss how to shift your focus from outputs to outcomes and how that little mental shift, changes everything. Really!
How the WordPress Block Editor Changes the Conversation for Content Editors a...Chris Reynolds
Everyone in the WordPress community is talking about the new editing experience in WordPress. Wherever you fall in defense of or against the new editor, it changes how we interact with WordPress from a content editing and a development perspective. In this talk I will explore some of the ways Gutenberg changes how we build things as well as the types of things we can build to enhance and improve the WordPress editing experience.
How the WordPress Block Editor Changes the Conversation for Content Editors a...Chris Reynolds
Everyone in the WordPress community is talking about the new editing experience in WordPress. Wherever you fall in defense of or against the new editor, it changes how we interact with WordPress from a content editing and a development perspective. In this talk I will explore some of the ways Gutenberg changes how we build things as well as the types of things we can build to enhance and improve the WordPress editing experience.
WordPress is powered by magic and jazz music. This talk demystifies one of the fundamental components of the WordPress software, WP_Query and the Loop. We’ll talk about URL query strings, how they are used in WordPress and how to manipulate them to control the behavior and output of your site. We’ll also talk about the Loop, what it does, how it works and how to create custom Loops specific to the needs of your project.
The open source community is vast. The greater tech community is even bigger. In the last year, we’ve watched reports about how bad our treatment is of women and marginalized groups within the tech community...it doesn’t take long to find pages and pages of stories. I am a white male from a middle class family and I am well aware of my privilege that other people within our community don’t share due to their gender identity, sexual orientation, mental or physical health, the color of their skin, what part of the world they were born in, etc, etc, etc. This talk will address the problems that exist and how those of us who have privilege can use our powers for good to make the community a better and more inclusive place for everyone.
Presenter notes available at http://s3q.us/ally-notes/
I started, like a lot of developers, from ground zero. I taught myself HTML in the GeoCities days and, when I discovered open source software, the first thing I did was started ripping apart code to customize it for my site and my own personal use. I now write code for global enterprise businesses with thousands of users and millions of visitors. In the intervening time, I’ve had plenty of opportunities to confront feelings of inadequacy, of feeling like I’m not actually that good and that no one would ever listen to me. Everyone suffers from imposter syndrome at some point, for a variety of reasons. The key to overcoming imposter syndrome is understanding your own skills and what you’re fantastic at. Learning how to manage imposter syndrome could be the difference between taking the skills and knowledge you’ve acquired through years of experience and training and applying to that awesome job, or being too afraid to hit the apply button because you don’t believe you actually have enough experience, recognition or some other artificial excuse. This talk will share some of my personal experiences and how I tamed my own imposter syndrome and will suggest some strategies for overcoming yours.
Awesome Git Workflow for Agencies and TeamsChris Reynolds
We all know that Git > SVN, right? But maybe you haven’t had time yet to fully grasp the awesome power of a perfect Git workflow. Chris Reynolds is a developer for WebDevStudios and is here to share how WDS uses Git on projects for clients like Microsoft and the United States’ National Park Service as well as collaborative development on plugins on GitHub and the WordPress Plugins repository.
Why Hacking WordPress Search Isn't Some Big Scary ThingChris Reynolds
Developers can be a stubborn lot. We like to focus on the things we know really well, and things we don’t deal with as often can be seen as “hard”. Search is one of those things that gets written off a lot, few devs I know will deal with it (voluntarily), and almost everyone will tell you “WordPress search sucks.” In this presentation you will learn that not only do you know more about how search works than you thought you did, but maybe give you a better understanding of how WordPress works as a whole, as well as showing you some cool tricks that you can do with WordPress search.
Instagram has become one of the most popular social media platforms, allowing people to share photos, videos, and stories with their followers. Sometimes, though, you might want to view someone's story without them knowing.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
Thanks, Brian
As Brian said, my name is Chris Reynolds and I’m going to be talking about Developing a software development kit for personalization at the edge
So a quick intro to me
I work at Pantheon and I am the technical lead on the Edge Integrations project
Prior to Pantheon I worked at Human Made and spent much of my last year there working on their Altis Digital Experience Platform
Before that I worked at WebDevStudios, so I’ve been working in agency environments on large enterprise-level projects for a while
When I’m not working, I’m probably planning the next session in an ongoing D&D campaign I’ve been running for the past couple years
You can find me online, I’m jazzsequence most places – sometimes with a 3 and sometimes without depending on the platform
What is “the Edge”?
Short version:
The edge refers to the layer between the application server and the user consuming a web site, e.g. a CDN.
Generally speaking, the edge layer is located geographically close to the web user to minimize download times.
Sometimes, CDNs – like Fastly, which is what we use at Pantheon – are able to run logical operations or surface data about the user from the GET request that was sent that can be acted upon. This is what edge computing is.
What is “Personalization”?
You’re probably familiar with the concept of content personalization.
Basically, because I am interested in and run an ongoing Dungeons & Dragons campaign, I am frequently consuming information about Dungeons & Dragons.
Instagram and other vendors might see my behavior data and what things I click on or spend more time on, and put me in a bucket of D&D-interested-users which advertisers might subscribe to.
Because I’m flagged as a D&D-interested-user, I will see ads specifically targeting people interested in Dungeons and Dragons and roleplaying which means that I get a lot of stuff about roleplaying Kickstarter campaigns, D&D loot crates, dice making companies – it’s really on point, tbh
This is all powered by a personalized profile derived from my behavior that is able to make decisions and assumptions based on what I interact with
So far, not much of this is likely to be new information.
What is “Personalization at the Edge”?
Personalization is the hot new buzzword. Everyone wants it, not many people know how to execute it.
Personalization is hard. Website owners interested in pxn have to develop a strategy about what they want to do with the personalized information, how to deliver personalized content and how to measure that the personalized content is having a measurable impact.
Marketers tasked with creating personalized content are faced with the daunting task of having to create exponentially more content for each audience group they are trying to reach.
Engineers need to figure out how to implement personalization in a sort of wild west, with very little regulation, few working use cases to base their work on, and potentially very little direction.
Because pxn is hard – but is often in demand – services exist to offload your pxn work to a third party. All you need to do is add a bit of Javascript code and all your pxn is handled.
There are a number of problems with this model:
Most of these services require you to build and add your personalized content in the service itself, rather than in your CMS. This can create a “shadow CMS” – where some content lives in the pxn service and other content lives in the CMS, and it may not always be clear which is which.
Taken to a far enough extent, this could end up in a situation where none of the content served on your site actually lives inside WordPress anymore and, instead, the marketing team only uses the third-party service to manage content.
If you ever want to disentangle yourself from the third-party, your content would need to be migrated away, and it’s likely that this process would need to be manual.
Because you’re entering all your content into a third-party, you no longer own your own content, you don’t have access to it, and you can’t move it elsewhere at will.
In addition to this, frequently you will end up with a “flash of unpersonalized content”. It takes time for the browser to load all the content and scripts on a page, and there is probably going to be at least some amount of time where the page will render before the third-party script is executed, resulting in generic or unpersonalized content rendering in the initial page load and then quickly swapped out by the personalization javascript.
Finally, one more script is one more script and anyone who’s worked with multiple third party scripts knows that adding in more external resources is not often a recipe for success.
What if we could serve personalized content at the edge?
What does that look like?
I am vegan and I live in the united states.
I visit a food magazine website and I am immediately presented with a hero at the top of the page that recognizes where I am visiting from.
If I’m visiting from the US, maybe it shows me a burger recipe
If i’m visiting from Canada, maybe it shows me a poutine recipe
I don’t necessarily notice this, but I continue on, navigating to the recipes site.
As a vegan, I’m not interested in the featured recipe I’m immediately presented with, something meat-based.
But, there are some interesting vegan recipes further below.
As I click multiple vegan recipes, a profile starts to build and an interest is stored for me so that, eventually, the featured recipe that’s shown to me is a vegan recipe.
This is an actual working use case we have on a Proof-of-Concept site at p13n.me
What’s actually going on?
Using Varnish Configuration Language (VCL) combined with data-handling variables provided by our edge CDN, we’re able to identify where geographically a user is visiting the site from.
We can process and send this data back as response headers to the browser.
Meanwhile, if we get multiple requests that match the same key generated by their location, we’re able to cache a variant of the page.
This means that when I visit from the US, I might be presented with a cached version of the US homepage showing a burger, whereas if I am visiting from Canada, I might be presented with the cached version of the Canadian homepage showing poutine.
As I click through different recipes, my specific interest in vegan food flags a “vegan” taxonomy term as an interest. This is stored in the browser as a cookie.
The cookie is sent to the server with the request.
The CDN is able to read the cookie and it checks to see if a cached version of a page exists that is relevant to my interest in vegan food.
If a cached version does exist, I get the cached vegan recipes page.
If a cached version doesn’t exist, a new cached version is created
The magic here is in the headers we send via the code to the server – specifically Vary.
Vary is a complicated subject but the basic idea is illustrated in this infographic
The main idea is that there’s a URL and based on the vary headers that are requested, the content – or in this example, the accepted format of the content – might have variations for that URL.
In our case, we’re varying on Geolocation – identified at the CDN layer – and interest – which is sent to the CDN via the interest cookie
So, what’s the SDK?
Because Pantheon owns the stack, we can come at the idea of Personalization from a different angle, specifically using our edge layer and VCL through Fastly to deliver cached variations of pages provided the CDN knows what to vary on and it knows how to send data back to the application server.
The CMS needs to know how to ingest this data being passed back via headers and how to send data to the CDN to create variants. That’s where the SDKs come in.
Pantheon supports both Drupal and WordPress sites, so a core component of our approach should address both CMSes in a system-agnostic way, while CMS-specific integrations can be built separately.
In both cases, the CMS needs to be able to inform the CDN of any identified interests based on behavior.
In the end, we built two SDKs – the Pantheon Edge Integrations Drupal SDK and the Pantheon Edge Integrations WordPress SDK.
Each package was built as a metapackage
There’s not much to the SDK in itself but some functional documentation
Each SDK uses a composer-based dependency tree that calls in the appropriate external repositories based on the CMS
Foundational to both SDKs is the Pantheon Edge Integrations global library. This is the “glue” that handles interacting with the headers sent to and received from the CDN.
For the WordPress side, there’s a plugin that was designed to be immediately extensible.
We specifically built in opinionated functions like get_interest and get_geo that wrapped around the core functionality in the global library so WordPress developers would have an easier time implementing personalization functions.
There is no built-in admin UI. As an SDK (and an MVP at that), we wanted to focus on allowing development teams to build out the interfaces that made the most sense to them.
However, proof of concepts have been built to show how one might display personalized content using CMB2 and Advanced Custom Fields.
Analytics are core to understanding how your personalized content is performing, so integrating with Google Analytics and Google Tag Manager was an easy early requirement. We’ve built an option in the admin to add your GTM code, but this can be completely disabled if you’re using an existing plugin or solution for Google Analytics.
When I polled a couple former colleagues of mine about how they typically handle adding GA, the consensus was that sometimes they add a setting, sometimes they hard-code the code, and sometimes they use a plugin, so I wanted to make sure we supported any of those options.
Working with our professional services team, I was able to request a specific shape for the data to come back to the server in from the CDN that aligned with how we’d architected the code. The VCL rules are fairly simple and the headers we get back are formatted in a way that’s easy to read and parse.
Geo data is determined by where you are located in the world and what your connection is. We can vary down to the city level and we include things like connection speed and connection type, as these might be useful in some use cases.
Interests are categories by default, but any taxonomy can be used. An interest threshold is set to 3 by default, and when you hit three pages that are tagged with a specific category, a cookie is stored in your browser that defines that term as an interest.
A running count is being stored to localStorage to keep track of all the terms on pages you visit, so if a term takes the lead, that becomes your interest. Right now, only one interest at a time is supported, but we are thinking about how we might support multiple interests in the future.
Composer as a foundational technology
From the beginning, I knew I wanted to use Composer as a core component of what these SDKs would become.
Part of this was informed by my previous experience with Altis, which itself is a metapackage composed of multiple other packages, which themselves are metapackages of the different modules and features of the platform.
While Composer hasn’t been embraced in core within WordPress the way it has in the Drupal community, being able to link everything together into a single `composer require` despite them potentially being located in different repositories was a key feature.
However, for WordPress, the plan is and always has been to provide a plugin for the WordPress plugin repository – so we spent a fair amount of time developing a build process which compiles all the dependencies and assets into a single zip file that you can download and get everything already packaged. When we’re ready to launch, we’ll be pushing a version of this to WordPress.org, but for now, those packaged releases live on the Releases page of our WordPress plugin.
Documentation is the product
From the beginning, we were very opinionated that documentation was the product. The code was nice, but great code without documentation is virtually useless. Especially in a complex and confusing environment like content personalization. All of the functional code is documented in the SDK, and we have a detailed guide on Pantheon.io/docs about Edge Integrations, how it works and how to set it up.
Test all the things
We use three different kinds of test suites for different things
PHPUnit
Does not use WP_Unit but does pull in a WordPress instance to run various tests that use WP functions
Robo
Task runner to run e2e tests using Terminus commands and curl requests
TestCafe
Javascript-based e2e testing similar to Cypress to test user interaction and experience things
Gather feedback
This is where we are now
We’re working primarily with partner agencies that are interested in personalization and encouraging them to use our SDKs and give us feedback so we can continue to build this out and expand our product offering
Some future things that I’m particularly interested in are
integrations with CDPs (customer data platform) like Segment to offload the segmentation and user profiling to a system that is built for that to reduce some of the granularity of the variants we get, particularly with geo
Along the same lines, work at the CDN layer to possibly have more advanced VCL rules that are smart enough to use fallback rules to reduce granularity – e.g. I might be the only visitor from Salt Lake City, but I live in Utah, which could be a regional grouping, or fall back to the country if a cached variant for utah doesn’t exist
Insights metrics
Your “interest” page is doing particularly well in “geolocation”
Integrating with the Pantheon decoupled solution that’s currently in development
All our tools are open source, we use Fastly, so this isn’t meant to specifically sell you on a Pantheon product, specifically, but I think it’s interesting the angle from which we’re looking at personalization in contrast to what’s out there today and I’d love to chat more about it!
And that’s it! Thanks again for letting me share this stuff that I’ve been working on and back to you, Brian!