I have seen a path walked repeatedly in platform land.
If you are fortunate enough to have a large spectrum of experiences running on top of your platform, you start to think about prioritization of the platform and you get caught.
Since you are a platform, it’s natural to focus on … you know… the platform! Isn’t it obvious that a platform is horizontal? Your levers are at that layer, and thus you should stick to it. Stay low. How low can you go?
But as experiences emerge that you hadn’t thought about in your wildest dreams, you start to wonder 🤔. You feel disconnected from the end users. There is a large gap, which is filled in by the experiences running on your platform, and you wish you had more influence.
I know, forget this horizontal jazz! It’s bloody hard to keep all of the plates spinning any way, and you have read enough Seth Godin to know to focus on your loyal die hard users…. it’s time to think vertical!
It feels good. A simple focus. Now….. which vertical do you pick? 🤔…. picking ONE is really hard, as there are several important verticals. You start to cross off a couple verticals that while interesting, aren’t the most aligned with the success of the platform and what you are great at enabling. It feels good to whittle it down a little, but then you get stuck.
You don’t want the future of your platform to just be a subset of these verticals. What do you do?
I’m sorry to say, that you need to do both. You need to think horizertically.
You acknowledge what your platform is uniquely good at, and you focus on horizontal functionality that grows your distinctiveness
You build out vertically in some key areas, working closer than ever with some key partners, using their needs and your joint experience to help prioritize some of the horizontal components
This is the work. No partner will hand it to you on a platter, and it’s unfair to expect that from them. They are naturally silo’d. You can learn from them and map solutions that work at a platform level to support them.
You end up doing less horizontal work, pack more into the needs of some of the verticals, and you differentiate your platform to boot.
We need to talk about taste on the Web. There has been a lot of talk about nutrition, and making sure that you have all of the tools you need to understand the nutritional content of your website, which we call Web Vitals.
Web Vitals numbers are certainly vital, but they don’t tell the full tale, just as a nutrition labels don’t tell the full story of the meal that a customer will consume.
These two extremes on the spectrum do not result in an appealing Web at all:
The Web is fast (nutritious), but bland.
The Web is tasty, but makes everyone sick.
I am excited about a fun, vibrant web that manages to offer a plethora of tastes, but takes users health seriously, too. I think that we have seen a Web that is fun and creative. Some of us even miss corners of the Web that were possible due to the ingredients of Flash and its editor tools. We don’t want a Web that is as bland as the constraints of some social networks (MySpace certainly had some crazy fun though! 🤪)
A tortured analogy of my health journey
I have had quite a journey with my health. I thought I had cracked it, but have continued to learn a lot more, especially with access to smart tools that give me access to data. For example, I use a continuous glucose monitor that tells me roughly how much glucose is in my system. This is like running Lighthouse CI for human vitals, and frees me to run experiments on my body.
I have been able to test the effects of almond flour (doesn’t spike me, whereas regular flour does), or replacing sugar with allulose (also doesn’t spike me), or how exercise (even a brisk 10-20 minute walk) right after eating brings down the post meal glucose.
I can use many other tools to take other vital measurements, such as tracking if I am in ketosis or not via a breath monitor, tracking my heart rate variability (HRV) when sleeping with an Oura, and with integrations that bring together all of the data via Levels.
Continuous measurement is key
I made some lifestyle choices, and the first one was to measure. If you aren’t tracking the health of your body or your website, you are destined for drift…. and trust me it can start slow and then you wake up having a large hill to climb again. I recently had to jump back and have lost 60 pounds with 10 more to go to reach my goal BMI (NOTE: BMI and weight aren’t great measurements, and I look at my blood work as the gold standard, but they are helpful proxies to progress).
Enjoy and live life!
I grew up seeing the Jane Fonda aerobics era, and seeing many people in my circle basically starving themselves and eating rice cakes that tasted like cardboard. This isn’t sustainable, so it doesn’t work, and it’s a really tough way to live. Crash diets don’t work in the long run, so you have to make a choice on what you want your long term sustainable lifestyle to be.
I want to enjoy food. I want to enjoy the taste of food. If I am hungry all the time this is the sign that there is a bug in the system. This all lead me down the path of acknowledging that I fatten easily, and carbs don’t work with my body. They flip a switch that has me go into fat storage mode, and also put me in hungry mode all the time. I can’t have one chip….. I scoff the entire bag. Moderation doesn’t work for me. I had to own it.
I am going to enjoy food, but use a well-lit path that helps me do that, and keeping out of a restrictive world of how much I can eat. I want to eat to satiety. This puts other constraints on me…. I can’t eat certain carb-heavy foods that I love. But then I remember that I CAN enjoy certain berries with heavy whipping cream. Not too shabby!
Once in mostly-ketosis, I am never hungry. This has enabled me to test out tactics such as time restrictive fasting (TRF). Keeping to 16:8 is simple, and I have also enjoyed simply one meal a day. I also kicked things into gear by taking on some prolonged fasting (3 to 4 day fasts) and was amazed with how, other than boredom, it wasn’t hard to do…. but it would be impossible for me to have done this in carb mode.
I mentioned almond flour earlier. Since I am tracking everything, it allows me the freedom to experiment and find the balance of: something enjoyable and tasty that contains the right nutritional profile. The Almond flour crepes and scones that I have had this weekend aren’t THE most yummy I have ever had, I will admit that, but they WERE enjoyable. That’s the bar for me…. get me 80% there. If the result isn’t enjoyable then why eat it? It’s off the list and I am on to the next experiment.
Back to the Tasty, Nutritious Web
Let’s bring this back to the Web 😅. I know that it sometimes feels like we are always talking about nutrition, and shoving the label in front of your faces. I apologize if it comes across like this at times.
What I ask of you is to consider the balance of taste and nutrition. You are the chefs of your experience, and you should feel the creativity of making amazing meals that acknowledge users needs the hidden costs.
Do work in a worker thread that isn’t as expensive for the UI (allulose bypasses the liver!)
Start fast (maybe server side render the initial payload), Stay Fast (using service workers and loading)
Constraints are always part of the creative process.
Now, what about the role of the Web Platform? We want to make our PLATFORM tasty and nutritious for you the developer! What does that look like?
Give you new ingredients that are performant, and you can wield in new ways (e.g. new declarative primitives such as constraint layout, various worklets)
Have some of the ingredients be low level (primitives) so you can put them together in new and interesting ways, but ALSO offer higher level ingredients (components) so it doesn’t feel like we are handing you a cow and saying “make a meal from that starting point… THANKS!”
This is where I am very interested in engaging as the broad and diverse web community that we are. We have a general purpose platform, but we have room in zooming in and delivering purpose-built solutions. You don’t need the same ingredients and tools to build a blog as you do building a rich productivity platform…. or a commerce experience…. or a game.
We have a broad tent on the Web… or maybe a broad kitchen. I am excited to see the tasty meals you build for users, and learn how you made them.
Have you seen or built something tasty recently? If so, please let me know… we want to highlight it!
tl;dr We need your help to improve the collective Web Vitals. We are putting as much weight as we can behind these vital metrics across our tooling, guidance, and much more.
I am really excited to see the introduction of the Web Vitals program today. The web community has seen the maturation of web performance metrics over the years, and this program brings clarity around the “unified guidance for quality signals that, we believe, are essential to delivering a great user experience on the web.”
We want to be able to give you the best possible metrics that you can use to measure your user experience and how it maps to your business. The set of core web vitals is a great step in showing measures that tie well to the initial steps of a web journey: do your users perceive a fast load? can they interact with it? is it stable, or jumping around?
We are used to certain metrics as markers for our health, such as resting heart rate, blood pressure, blood sugar, and BMI. Together, they can help tell a story around your health. You can experiment and see how they change. Over time we understand more about these metrics, some go out of fashion as we get new data, but we strive to find those that seem to have the best correlation to health.
All humans are not the same, and we add a layer of context on top of the metrics. A marathon runner will differ from a sprinter, just as a rich desktop web application that sits in the first tab differs from a piece of content that you tap to read and move on, but the metrics are useful to understand across the board, your weighting may vary.
Hitting the bar together
A good experience is the sum of the parts, and the entire ecosystem has a role to play in making sure the web performs great for all users. From hardware though OS, network. web platform, libraries and frameworks, and finally the application code… we all have a role to play.
At the end of the day, it’s the web developer and team who deploy their app, and understands the particular context, that have final control of the outcome.
We want to make sure that everyone along the stack has the best possible information, tools, and guidance, and while we are far from being done, I am glad to see the following launch with the program today:
The Chrome UX Report (CrUX) surfaces histograms for all of the vitals of real world usage from Chrome, and a REST API is in the works
A new Core Web Vitals extension will let you browse the web with a real-time view on vital results for your browsing, and will show the aggregate results from the CrUX Report in the future. This is a unified and much improved extension compared to my own!
I hope that the ecosystem makes sure to measure and understand their effect on these vitals, and share how best we can hit them.
I remember a developer at a Chrome DevSummit asking for us to fix the performance problem:
“The web feels too slow and janky at times, and why do browsers take so much memory?”
– Web E. Developer
While we have some levers to help for sure, and will be pushing on as many as we can, we need all of the brains in the community to solve this problem.
I admit that it is tempting to think “let’s fix it in the platform!” but that isn’t the area with most leverage for this one, and if you read Range you will see that it is when generalists with varied expertise and life experience come together that you see the most creative solutions and real impact.
So, we have huge datasets in the wild, richer tooling, and goals to hit for each metric. Let’s work together to make a dent and hit them!