The Future of Websites
@webcampzagreb
•
@swisswebmiss
Introduction
Solution Architecting
Decoupling Systems
How to Implement
Questions?
American from Portland, OR.
Senior Front End Engineer @Bumped
@swisswebmiss
Finding the Right Fit
We need to integrate into our order management system
We want to build the frontend in React
We want to build the backend in Ruby.
In the future we would like to create a progressive web app.
We want to include User-Generated
Content
MVP
Phase II?
Tethered to
system roadmap
Custom layer
of code
Less control of
source code
of internet users expect the mobile version of the website to be faster than the desktop
Source: sitecore.com/resources/index/infographics/go-beyond-the-web
Unoptimized media
and scripts
Resource-intensive
plugins
Heavy load time
on the front end
Median Time to Interact
Source: sitecore.com/resources/index/infographics/go-beyond-the-web
of consumers want to learn more about a place they are visiting through use of AR/VR.
Source: sitecore.com/resources/index/infographics/go-beyond-the-web
of millennials said they would not buy from a brand that published irrelevant, badly written, poorly designed content.
More work for
content creators
Inconsistencies in
content
Data stored in
different databases
Going Beyond the Browser
INFRASTRUCTURE
WEBSERVER
DATABASE
BACK-END UI
API
YOUR CODE
WEBSERVER
INFRASTRUCTURE
WEBSERVER
DATABASE
BACK-END UI
YOUR CODE
INFRASTRUCTURE
WEBSERVER
DATABASE
BACK-END UI
API
YOUR CODE
WEBSERVER
Process
APIs
System
APIs
Payment Processing
Tax
Service
Order Processing
Shipping
Status
Payment
Address
Customer
Inventory
Tax
Shipment
Promos
Orders
Fulfillment
Experience
APIs
Content Management
Allows each team to focus on what they are good at.
Backend and frontend systems are swappable.
Leverage static-site generators
Query the services you need,
when you need them.
{
user(id: 123) {
friends {
friends(job: "engineer") {
name
}
}
}
}
Test and deploy component by component.
"Now
Boarding"
"Check in for your flight"
"Price drop on flight"
"Flights to Zagreb"
Airline: | Flight: | Departure City: | Arrival City: |
KLM | 1234 | AMS | ZAG |
Departure Time: | Arrival Time: | Duration: | Price: |
11:20 | 13:10 | 110 minutes | € 499 |
Title
Hello!
Subtitle
Welcome to WebCamp.
English - UK
Title
Zdravo!
Subtitle
Dobrodošli u WebCamp.
Croatian
Further reach
Restricted editor
No robust
dashboards
No WYSIWYG editor
No built-in
plugins
Scalable
Larger tech stack
Further reach
Restricted editor
Different
technologies
Separate containers
Version
control
Scalable
Larger tech stack
Further reach
Restricted editor
Performance
Costly
No open source
codebase
Additional hosting for presentation layer
Subscription-based
API services
Think Content First
Who is my audience?
What is their customer journey and
what content do they need in each step?
Which channels do we need to
communicate through?
How do I structure the content so that I can reuse it across different places and channels?
Draft
Preview
Publish
Status:
Staging Site
Draft
Preview
Publish
Status:
Live Site
Data architecture
Type of API and language bindings
Average downtime and availability
Request limits and cost
Documentation + support
¯\_(ツ)_/¯
“One of the natural wonders of this area [Australia] is the huge strangler vines. They seed in the upper branches of a fig tree and gradually work their way down the tree until they root in the soil. Over many years they grow into fantastic and beautiful shapes, meanwhile strangling and killing the tree that was their host.”
Source: martinfowler.com/bliki/StranglerApplication.html
Martin Fowler
Plan
Identify boundaries
Plan
Identify boundaries
Plan
Refactor both backend and frontend
Refactor page by page
Be mindful of scope creep
Refactor page by page
Adoption
Coexist
Sunset
Long-term Process
Headless architecture can provide a more scalable, performant and personalized approach to your web applications and beyond.
Slides will be available on Twitter:
@swisswebmiss
https://joind.in/talk/137e5