• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Dion Almaer

Software, Development, Products

  • @dalmaer
  • LinkedIn
  • Medium
  • RSS
  • Show Search
Hide Search

Horizertical: Should you focus horizontally or vertically as a platform?

February 25, 2021

Drawing of where to focus
I should have drawn it the other way so you can “Take the L!”

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.

This means:

  1. You acknowledge what your platform is uniquely good at, and you focus on horizontal functionality that grows your distinctiveness
  2. 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
  3. 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.

Taste and Nutrition on the Web

January 24, 2021

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.

Gary Taubes helped educate here many years ago with his books on Good Calories, Bad Calories, and he has a new one that hit home once again: The Case For Keto.

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.

It’s a mind shift. Instead of “Eek, I can only use Xk of JavaScript, and I should keep the experience simple!”, think “I have some constraints, but I want to use all the tools and ingredients I have to deliver something tasty!”. Sure, maybe don’t shove a few MB of JavaScript and have it run on the main thread, but how about thinking about other loading strategies?

  • Do work in a worker thread that isn’t as expensive for the UI (allulose bypasses the liver!)
  • Delay loading some of that JavaScript (preload, prefetch, tree shaking, etc)
  • 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!

Almond Flour Crepes… don’t look too bad, right?

Working on our Web Vitals together

May 5, 2020

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.”

How are your vitals?

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?

Why Vitals?

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
  • The small web-vitals JavaScript library is available for you to send metrics to your analytics provider of choice
  • 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!
  • Integration is coming to all of our tools: Lighthouse, Chrome DevTools, PageSpeed Insights, Search Console’s Speed Report

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.

If you (human) asked your computer you would be a centaur that would have gotten the answer!

Centaurs FTW!https://t.co/eZjx73bbJn https://t.co/AAUtAtFUCJ

— Dion Almaer (@dalmaer) April 19, 2020

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!

« Previous Page
Next Page »

Primary Sidebar

Twitter

My Tweets

Recent Posts

  • Stitching with the new Jules API
  • Pools of Extraction: How I Hack on Software Projects with LLMs
  • Stitch Design Variants: A Picture Really Is Worth a Thousand Words?
  • Stitch Prompt: A CLI for Design Variety
  • Stitch: A Tasteful Idea

Follow

  • LinkedIn
  • Medium
  • RSS
  • Twitter

Tags

3d Touch 2016 Active Recall Adaptive Design Agile AI Native Dev AI Software Design AI Software Development Amazon Echo Android Android Development Apple Application Apps Artificial Intelligence Autocorrect blog Bots Brain Calendar Career Advice Cloud Computing Coding Cognitive Bias Commerce Communication Companies Conference Consciousness Cooking Cricket Cross Platform Deadline Delivery Design Design Systems Desktop Developer Advocacy Developer Experience Developer Platform Developer Productivity Developer Relations Developers Developer Tools Development Distributed Teams Documentation DX Ecosystem Education Energy Engineering Engineering Mangement Entrepreneurship Exercise Eyes Family Fitness Football Founders Future GenAI Gender Equality Google Google Developer Google IO Google Labs Habits Health Hill Climbing HR Integrations JavaScript Jobs Jquery Jules Kids Stories Kotlin Language LASIK Leadership Learning LLMs Lottery Machine Learning Management Messaging Metrics Micro Learning Microservices Microsoft Mobile Mobile App Development Mobile Apps Mobile Web Moving On NPM Open Source Organization Organization Design Pair Programming Paren Parenting Path Performance Platform Platform Thinking Politics Product Design Product Development Productivity Product Management Product Metrics Programming Progress Progressive Enhancement Progressive Web App Project Management Psychology Push Notifications pwa QA Rails React Reactive Remix Remote Working Resilience Ruby on Rails Screentime Self Improvement Service Worker Sharing Economy Shipping Shopify Short Story Silicon Valley Slack Soccer Software Software Development Spaced Repetition Speaking Startup Steve Jobs Stitch Study Teaching Team Building Tech Tech Ecosystems Technical Writing Technology Tools Transportation TV Series Twitter Typescript Uber UI Unknown User Experience User Testing UX vitals Voice Walmart Web Web Components Web Development Web Extensions Web Frameworks Web Performance Web Platform WWDC Yarn

Subscribe via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Archives

  • October 2025
  • September 2025
  • August 2025
  • January 2025
  • December 2024
  • November 2024
  • September 2024
  • May 2024
  • April 2024
  • December 2023
  • October 2023
  • August 2023
  • June 2023
  • May 2023
  • March 2023
  • February 2023
  • January 2023
  • September 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • November 2021
  • August 2021
  • July 2021
  • February 2021
  • January 2021
  • May 2020
  • April 2020
  • October 2019
  • August 2019
  • July 2019
  • June 2019
  • April 2019
  • March 2019
  • January 2019
  • October 2018
  • August 2018
  • July 2018
  • May 2018
  • February 2018
  • December 2017
  • November 2017
  • September 2017
  • August 2017
  • July 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012

Search

Subscribe

RSS feed RSS - Posts

The right thing to do, is the right thing to do.

The right thing to do, is the right thing to do.

Dion Almaer

Copyright © 2026 · Log in

Loading Comments...