[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-article-the-dangers-of-relying-too-much-on-frontend-frameworks-a-short-story":3},{"meta":4,"html":24,"authorName":25,"authorFacebookUrl":26,"authorProfileImage":27,"authorWebsite":28,"authorJobTitle":29,"authorTwitterUrl":30,"wordCount":31,"recommended":32},{"id":5,"slug":6,"type":7,"title":8,"excerpt":9,"metaTitle":10,"metaDescription":10,"canonicalUrl":10,"featureImage":11,"publishedAt":17,"createdAt":18,"updatedAt":19,"featured":20,"readingTime":21,"tags":22,"author":23,"recommendedSlugs":10},"64dc757c98bc6005dc1798f7","the-dangers-of-relying-too-much-on-frontend-frameworks-a-short-story","post","The Dangers of Relying Too Much on Frontend Frameworks -  A Short Story","Frontend Frameworks can be powerful tools, but the balance between innovation and established web standards like Web Components is key for staying competitive.",null,{"url":12,"alt":13,"caption":14,"width":15,"height":16},"\u002Fblog\u002Fcontent\u002Fimages\u002F2023\u002F08\u002F1_Z3PVTv7bSMnaMl4zPHrTsA--1-.png","Peter, an ambitious startup founder: \"That's Peter\": The Dangers of Relying Too Much on Frontend Frameworks -  A Short Story","Peter, an ambitious startup founder",1600,1075,"2023-08-16T07:46:02.000+00:00","2023-08-16T07:06:36.000+00:00","2024-07-23T13:28:21.000+00:00",false,6,[],"marius-bongarts","\u003Ch4 id=\"caught-in-the-framework-trap-peter%E2%80%99s-story\">Caught in the Framework Trap: Peter’s Story\u003C\u002Fh4>\n\u003Cp>\n  Meet Peter, an enterprising startup founder who in 2016 was driven by the ambition to develop a groundbreaking web\n  application that could change the world.\n\u003C\u002Fp>\n\u003Cp>\n  Peter, like many of us, believed that the latest frontend frameworks held the key to unlocking innovation and\n  efficiency.\n\u003C\u002Fp>\n\u003Cp>\n  He comes across Ember.js, a frontend framework that gained significant traction from 2012 to 2018, renowned for its\n  established conventions and robust viewpoints. He thinks:\n\u003C\u002Fp>\n\u003Cblockquote>\n  “Wow, Ember.js looks great. Let’s build our complete frontend architecture around it. We can even hire many aspiring\n  developers, eager to learn this fancy innovative technology”\n\u003C\u002Fblockquote>\n\u003Cp>\n  Things started great. Thanks to the new technology, his vision was brought to life rapidly. His dedicated team of ten\n  skilled developers, now well-versed in Ember.js, was highly motivated and was able to build a feature for feature in\n  no time.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*rxRpyzSHuoqXL1hqtNFs9g.png\"\n    class=\"kg-image\"\n    alt=\"Peter believes frameworks are key to innovation.\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>Peter believes frameworks are key to innovation.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>\n  But, as time passed, Peter began to notice that his developers were losing motivation. The popularity of Ember.js was\n  declining, and new technologies like Svelte.js, Solid, and Qwik were getting involved.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*cwVWg8SB4Mcy6ZWLu0lskg.png\"\n    class=\"kg-image\"\n    alt=\"State of JS 2022: Developers’ interest in Ember.js declines\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>\n    \u003Ca\n      href=\"https:\u002F\u002F2022.stateofjs.com\u002Fen-US\u002Flibraries\u002Ffront-end-frameworks\u002F\"\n      data-href=\"https:\u002F\u002F2022.stateofjs.com\u002Fen-US\u002Flibraries\u002Ffront-end-frameworks\u002F\"\n      class=\"markup--anchor markup--figure-anchor\"\n      rel=\"noopener\"\n      target=\"_blank\"\n    >\n      State of JS 2022\n    \u003C\u002Fa>\n    : Developers’ interest in Ember.js&nbsp;declines\n  \u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>\n  Meanwhile, developers frequently proposed a full application overhaul to transition to well-established technologies\n  like React, Vue.js, or Angular. Yet, the application’s size and intricacy have grown to a point where this option is\n  almost unfeasible for Peter.\n\u003C\u002Fp>\n\u003Cp>\n  Completely rebuilding the application would result in halting the current product development as all developers would\n  be tied up for a long time in migrating the existing shop. Additionally, Peter would have to train his entire staff\n  anew and hire new qualified employees with new skills.\n\u003C\u002Fp>\n\u003Cp>\n  In addition, some developers have already left the company, and it has become extremely difficult to find good people\n  who know Ember.js.\n\u003C\u002Fp>\n\u003Cp>\n  Peter and his team were caught in\n  \u003Cstrong>Vendor lock-in\u003C\u002Fstrong>\n  :\n\u003C\u002Fp>\n\u003Cblockquote>\n  \"Vendor lock-in is when someone is essentially forced to continue using a product or service regardless of quality\" -\n  \u003Ca\n    href=\"https:\u002F\u002Fwww.cloudflare.com\u002Flearning\u002Fcloud\u002Fwhat-is-vendor-lock-in\"\n    rel=\"noopener ugc nofollow noopener noopener noopener noopener\"\n  >\n    cloudflare.com\n  \u003C\u002Fa>\n\u003C\u002Fblockquote>\n\u003Cp>\n  Peter and his team stuck with Ember.js for a long time due to financial limitations that prevented a complete frontend\n  overhaul. As more developers left, Peter eventually realized the need for a rebuild. This time, he decided to go for\n  React to choose a well-established library.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*RRYQN0UwtL8mOTPD7XJneA.png\"\n    class=\"kg-image\"\n    alt=\"Peter gets caught in Vendor Lock In and becomes uncompetitive.\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>Peter is trapped in Vendor&nbsp;Lock-In\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>\n  The transition took a considerable amount of time and incurred substantial expenses. Meanwhile, competitors were\n  enhancing their products significantly, rendering Peter’s offering less competitive and ultimately leading to a halt\n  in its development.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*eJQJ-JpCLzXKz9w7ZMiEow.png\"\n    class=\"kg-image\"\n    alt=\"Peter was naive. Don’t be like Peter.\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>Peter was naive. Don’t be like&nbsp;Peter.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Chr \u002F>\n\u003Ch3 id=\"innovator-hans-standards-as-the-bridge-to-freedom\">Innovator, Hans: Standards as the Bridge to Freedom\u003C\u002Fh3>\n\u003Cp>Meanwhile, another visionary named Hans embarked on his startup journey during the same period.\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*7sHsB_qN54rss7eRmyA9Hg.png\"\n    class=\"kg-image\"\n    alt=\"Hans, a determined and thoughtful startup founder\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>Hans, a determined and thoughtful startup&nbsp;founder\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>\n  Like Peter, he chose Ember.js to build his ambitious project in 2016. However, Hans was determined to safeguard his\n  project against the potential pitfalls of frontend framework dependency.\n\u003C\u002Fp>\n\u003Cp>\n  Embracing Ember.js’s potential, Hans realized the importance of adaptability. He observed that although frameworks can\n  offer a solid basis, relying on them too much could create limitations in the future.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*YOrReJ8BWrydFYMELR8jqA.png\"\n    class=\"kg-image\"\n    alt=\"Hans knows that a blend of innovative technologies and established standards is important\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>Hans knows about the importance of standards\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>\n  He also knows that using\n  \u003Cstrong>standards\u003C\u002Fstrong>\n  makes systems more tolerant to change. He reads about web standards and comes across\n  \u003Cstrong>Web Components\u003C\u002Fstrong>\n  .\n\u003C\u002Fp>\n\u003Cp>\n  He learns that\n  \u003Ca href=\"https:\u002F\u002Fmedium.com\u002F@mariusbongarts\u002Fthe-complete-web-component-guide-part-1-custom-elements-a627af805df8\">\n    Web Components\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cul>\n  \u003Cli>\n    are reusable client-side components based on official\n    \u003Cstrong>web standards\u003C\u002Fstrong>\n    .\n  \u003C\u002Fli>\n  \u003Cli>\n    enable us to develop entirely\n    \u003Cstrong>independently\u003C\u002Fstrong>\n    of frontend frameworks\n  \u003C\u002Fli>\n  \u003Cli>\n    are an excellent way of\n    \u003Cstrong>encapsulating\u003C\u002Fstrong>\n    functionality\n    \u003Cstrong>\u003C\u002Fstrong>\n    from the rest of our code.\n  \u003C\u002Fli>\n  \u003Cli>\n    are\n    \u003Cstrong>self-contained\u003C\u002Fstrong>\n    components that you can use all over the web.\n  \u003C\u002Fli>\n  \u003Cli>\n    are\n    \u003Cstrong>supported\u003C\u002Fstrong>\n    by all major browsers.\n  \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\n  Hans also understands that Web Components have not come to replace established frontend frameworks. Quite the\n  opposite: Even established Frontend Frameworks recommend using. As he goes through the React.js documentation, he\n  notices that they too recommend their use:\n\u003C\u002Fp>\n\u003Cblockquote>\n  Most people who use React don’t use Web Components, but you may want to, especially if you are using third-party UI\n  components that are written using Web Components. -\n  \u003Ca href=\"https:\u002F\u002Freactjs.org\u002Fdocs\u002Fweb-components.html\" rel=\"noopener ugc nofollow noopener noopener noopener\">\n    https:\u002F\u002Freactjs.org\n  \u003C\u002Fa>\n\u003C\u002Fblockquote>\n\u003Cp>\n  He understands that, although Frontend Frameworks play a crucial role in managing an application’s\n  \u003Cstrong>data layer\u003C\u002Fstrong>\n  , the\n  \u003Cstrong>component layer\u003C\u002Fstrong>\n  can often be substituted with Web Components, offering a consistent and native solution aligned with web standards.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-bookmark-card\">\n  \u003Ca\n    class=\"kg-bookmark-container\"\n    href=\"https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Fwill-web-components-replace-frontend-frameworks-they-are-built-to-solve-different-problems\u002F\"\n  >\n    \u003Cdiv class=\"kg-bookmark-content\">\n      \u003Cdiv class=\"kg-bookmark-title\">Will Web Components Replace Frontend Frameworks?\u003C\u002Fdiv>\n      \u003Cdiv class=\"kg-bookmark-description\">\n        Web Components will not replace frontend frameworks but they can enhance those frameworks by replacing their\n        component layer with a native solution.\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"kg-bookmark-metadata\">\n        \u003Cimg class=\"kg-bookmark-icon\" src=\"https:\u002F\u002Fweb-highlights.com\u002Ffavicon.ico\" alt=\"\" \u002F>\n        \u003Cspan class=\"kg-bookmark-author\">Web Highlights Blog\u003C\u002Fspan>\n        \u003Cspan class=\"kg-bookmark-publisher\">Marius Bongarts\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"kg-bookmark-thumbnail\">\n      \u003Cimg src=\"\u002Fblog\u002Fcontent\u002Fimages\u002F2022\u002F10\u002Fwebcomponents.webp\" alt=\"\" \u002F>\n    \u003C\u002Fdiv>\n  \u003C\u002Fa>\n\u003C\u002Ffigure>\n\u003Cp>Driven by this insight, he took a strategic approach:\u003C\u002Fp>\n\u003Cp>\n  Hans encapsulated the majority of his frontend components into Web Components. These versatile building blocks\n  operated independently of the chosen frontend framework, allowing for seamless migration when necessary. This decision\n  gave Hans a significant edge.\n\u003C\u002Fp>\n\u003Cp>\n  Just like Peter, Hans and his team recognized a shift in technology after a few years — The interest and usage of\n  Ember.js was declining, but Hans was already a step ahead.\n\u003C\u002Fp>\n\u003Cp>\n  While starting with Ember.js had its benefits, allowing efficient development and motivating the team, they sensed the\n  need for something different.\n\u003C\u002Fp>\n\u003Cp>\n  As React has shown itself to be an established pioneer and industry standard over the years, they decide to migrate\n  their application.\n\u003C\u002Fp>\n\u003Cp>\n  Recognizing React’s established leadership and industry-wide adoption, they opted to migrate their application. In\n  contrast to Peter’s experience, Hans’s team faced minimal disruptions during this technological transition.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*wpwDkS-tFUDyiRPNL5CyzQ.png\"\n    class=\"kg-image\"\n    alt=\"Hans seamlessly moves between frontend frameworks, staying competitive.\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>Hans and his team effortlessly shifts between frontend frameworks\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>\n  Unlike Peter’s difficult choice between a complete overhaul or wrestling with a monolithic framework, Hans’s\n  developers smoothly migrated their existing Web Components into the React application. By focusing on changing only\n  the data layer, the shift to React became seamless, a task that might have seemed daunting otherwise.\n\u003C\u002Fp>\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Fmedium.com\u002F@mariusbongarts\u002Freact-vs-web-components-80d754f74811\">\n    https:\u002F\u002Fmedium.com\u002F@mariusbongarts\u002Freact-vs-web-components-80d754f74811\n  \u003C\u002Fa>\n  \u003Cbr \u002F>\n  \u003Cbr \u002F>\n\u003C\u002Fp>\n\u003Cp>\n  The migration to this modern approach not only pleased all developers but also attracted new talent to the team. By\n  smoothly combining their existing Web Components with React, they found a powerful combination.\n\u003C\u002Fp>\n\u003Cfigure class=\"kg-card kg-image-card kg-card-hascaption\">\n  \u003Cimg\n    src=\"https:\u002F\u002Fcdn-images-1.medium.com\u002Fmax\u002F1600\u002F1*FIEL_NzfTJzWbx4OjVm9kQ.png\"\n    class=\"kg-image\"\n    alt=\"Hans is clever and foresighted\n Be like Hans.\"\n    loading=\"lazy\"\n  \u002F>\n  \u003Cfigcaption>Be like Hans — clever and foresighted\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\u003Cp>\n  Importantly, they didn’t have to spend too much time on a massive migration, enabling them to focus more on staying\n  competitive and less on dealing with complex changes.\n\u003C\u002Fp>\n\u003Ch2 id=\"final-thoughts\">Final Thoughts\u003C\u002Fh2>\n\u003Cp>\n  In the end, the tales of Peter and Hans reveal a valuable lesson: while frontend frameworks can be powerful tools,\n  balance is key. Peter’s struggles show the risks of becoming too dependent on a single framework, while Hans’s success\n  proves the benefits of adaptability through standards like Web Components. Finding the right mix of frameworks and\n  standards can lead to a more competitive and future-proof web development journey.\n\u003C\u002Fp>\n\u003Cp>\n  I am always happy to answer questions and am open to criticism. Feel free to contact me at any time! Get in touch with\n  me via\n  \u003Cstrong>\u003C\u002Fstrong>\n  \u003Ca\n    href=\"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmarius-bongarts-6b3638171\u002F\"\n    rel=\"noopener ugc nofollow noopener noopener noopener noopener noopener noopener noopener noopener noopener\"\n  >\n    \u003Cstrong>LinkedIn\u003C\u002Fstrong>\n  \u003C\u002Fa>\n  ,\n  \u003Ca\n    href=\"https:\u002F\u002Ftwitter.com\u002FMariusBongarts\"\n    rel=\"noopener ugc nofollow noopener noopener noopener noopener noopener noopener noopener noopener noopener\"\n  >\n    \u003Cstrong>Twitter\u003C\u002Fstrong>\n  \u003C\u002Fa>\n  , or leave a comment.\n\u003C\u002Fp>\n\u003Ch2 id=\"related-articles\">Related Articles\u003C\u002Fh2>\n\u003Cfigure class=\"kg-card kg-bookmark-card\">\n  \u003Ca\n    class=\"kg-bookmark-container\"\n    href=\"https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Fwill-web-components-replace-frontend-frameworks-they-are-built-to-solve-different-problems\u002F\"\n  >\n    \u003Cdiv class=\"kg-bookmark-content\">\n      \u003Cdiv class=\"kg-bookmark-title\">Will Web Components Replace Frontend Frameworks?\u003C\u002Fdiv>\n      \u003Cdiv class=\"kg-bookmark-description\">\n        Web Components will not replace frontend frameworks but they can enhance those frameworks by replacing their\n        component layer with a native solution.\n      \u003C\u002Fdiv>\n      \u003Cdiv class=\"kg-bookmark-metadata\">\n        \u003Cimg class=\"kg-bookmark-icon\" src=\"https:\u002F\u002Fweb-highlights.com\u002Ffavicon.ico\" alt=\"\" \u002F>\n        \u003Cspan class=\"kg-bookmark-author\">Web Highlights Blog\u003C\u002Fspan>\n        \u003Cspan class=\"kg-bookmark-publisher\">Marius Bongarts\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"kg-bookmark-thumbnail\">\n      \u003Cimg src=\"\u002Fblog\u002Fcontent\u002Fimages\u002F2022\u002F10\u002Fwebcomponents.webp\" alt=\"\" \u002F>\n    \u003C\u002Fdiv>\n  \u003C\u002Fa>\n\u003C\u002Ffigure>\n\u003Cfigure class=\"kg-card kg-bookmark-card\">\n  \u003Ca class=\"kg-bookmark-container\" href=\"https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Fare-web-components-dead\u002F\">\n    \u003Cdiv class=\"kg-bookmark-content\">\n      \u003Cdiv class=\"kg-bookmark-title\">Are Web Components Dead?\u003C\u002Fdiv>\n      \u003Cdiv class=\"kg-bookmark-description\">Web Components: Prospects and Challenges in Modern Web Dev.\u003C\u002Fdiv>\n      \u003Cdiv class=\"kg-bookmark-metadata\">\n        \u003Cimg class=\"kg-bookmark-icon\" src=\"https:\u002F\u002Fweb-highlights.com\u002Ffavicon.ico\" alt=\"\" \u002F>\n        \u003Cspan class=\"kg-bookmark-author\">Web Highlights Blog\u003C\u002Fspan>\n        \u003Cspan class=\"kg-bookmark-publisher\">Marius Bongarts\u003C\u002Fspan>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n    \u003Cdiv class=\"kg-bookmark-thumbnail\">\n      \u003Cimg src=\"\u002Fblog\u002Fcontent\u002Fimages\u002F2023\u002F08\u002F1_g-iH_T_gw-LQ7cmxoyoONA.jpg\" alt=\"\" \u002F>\n    \u003C\u002Fdiv>\n  \u003C\u002Fa>\n\u003C\u002Ffigure>\n","Marius Bongarts","https:\u002F\u002Fwww.facebook.com\u002FMariusBongartsWeb","\u002Fblog\u002Fcontent\u002Fimages\u002F2022\u002F08\u002FIMG_7861_Square.jpeg","https:\u002F\u002Fmarius-bongarts.de\u002F","Founder & Software Engineer","https:\u002F\u002Ftwitter.com\u002FMariusBongarts",1152,[33,69,86],{"id":34,"slug":35,"title":36,"description":37,"url":38,"publishedAt":39,"createdAt":40,"updatedAt":41,"featured":20,"readingTime":21,"tags":42,"imageUrl":47,"imageAlt":48,"faviconUrl":49,"publishedAtString":39,"category":50,"readTimeString":68},"688719cf8b4b770aa39407fc","my-simple-strategy-for-3-268-5-star-chrome-extension-reviews","My Simple Strategy for 3,268 5‑Star Chrome Extension Reviews","Get 37x more reviews than Grammarly with this simple strategy. Learn the Win-Ask Method to boost your Chrome extension ratings and user engagement.","https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Fmy-simple-strategy-for-3-268-5-star-chrome-extension-reviews\u002F","2025-07-28T06:48:26.000+00:00","2025-07-28T06:33:51.000+00:00","2025-07-28T07:04:33.000+00:00",[43,44,45,46],"Marketing","Side Projects","Side Hustle","Chrome Extension","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1633613286991-611fe299c4be?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fHJhdGluZ3xlbnwwfHx8fDE3NTM2ODQ0MzR8MA&ixlib=rb-4.1.0&q=80&w=2000","Five yellow star-shaped objects placed diagonally on a pink and blue background.","https:\u002F\u002Fweb-highlights.com\u002Ffavicon.ico",[51,61],{"type":52,"title":53,"shortTitle":54,"icon":55,"description":56,"excerpt":57,"thumbnail":58},"my-journey","Behind the Scenes of Web Highlights","My Journey","rocket","Hey 👋 I am Marius. I started Web Highlights in 2019 as a tool just for myself and have been working on it alone since then. Learn from my mistakes and stories right from the beginning how I grew the Chrome Extension to 250K users without any marketing costs.","These posts are the honest build log of Web Highlights: what worked, what hurt, and what I’d do again. If you care about indie products, Chrome extensions, or SEO-led growth, you’ll find practical lessons alongside the personal story.",{"url":59,"alt":60},"https:\u002F\u002Fweb-highlights.com\u002Fimages\u002Fme.png","Me, Marius Bongarts, in front of sea in Portugal, Algarve",{"type":62,"title":63,"shortTitle":64,"icon":65,"description":66,"excerpt":67},"productivity","Browser Productivity & Chrome Extensions","Productivity","command","Curated extension lists, focus workflows, and tips for getting more from Chrome—always with an eye toward reading, capture, and learning.","Productivity isn’t only task managers. These articles cover the browser layer: extensions that protect focus, comparisons that save you from dead-end tools, and setup tips that keep your reading and capture stack lightweight but powerful.","6 min read",{"id":70,"slug":71,"title":72,"description":73,"url":74,"publishedAt":75,"createdAt":76,"updatedAt":75,"featured":20,"readingTime":21,"tags":77,"imageUrl":80,"imageAlt":81,"faviconUrl":49,"publishedAtString":75,"category":82,"readTimeString":68},"671f386db98706751d677b5f","how-to-show-a-link-preview-on-any-website","How To Show A Beautiful Link Preview On Any Website","Easily add link previews to any website using the open-source Previewbox library. Works with any framework, fetching Open Graph data automatically.","https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Fhow-to-show-a-link-preview-on-any-website\u002F","2024-10-29T20:25:55.000+00:00","2024-10-28T07:08:29.000+00:00",[78,79],"Web Development","SEO","https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Fcontent\u002Fimages\u002F2024\u002F10\u002F0_dkKw8Q1T3dUhNBo7.jpg","Lake with mountains in background",[83,85],{"type":52,"title":53,"shortTitle":54,"icon":55,"description":56,"excerpt":57,"thumbnail":84},{"url":59,"alt":60},{"type":62,"title":63,"shortTitle":64,"icon":65,"description":66,"excerpt":67},{"id":87,"slug":88,"title":89,"description":90,"url":91,"publishedAt":92,"createdAt":93,"updatedAt":94,"featured":20,"readingTime":95,"tags":96,"imageUrl":98,"imageAlt":99,"faviconUrl":49,"publishedAtString":92,"category":100,"readTimeString":103},"66ed6878e07b961e2f231a8f","lessons-from-a-bamboo-tree-staying-motivated-on-my-side-project","Five Years to 100K Users: The Bamboo Tree Story for Side Project Growth","Discover how a bamboo tree can inspire solopreneurs to stay motivated on side projects. Learn the value of delayed gratification on the journey to success.","https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Flessons-from-a-bamboo-tree-staying-motivated-on-my-side-project\u002F","2024-09-22T20:17:54.000+00:00","2024-09-20T12:20:08.000+00:00","2024-09-24T07:00:43.000+00:00",7,[54,97,44,45],"Story","https:\u002F\u002Fweb-highlights.com\u002Fblog\u002Fcontent\u002Fimages\u002F2024\u002F09\u002F0_JjFAqJ78cyJMViqZ.webp","Tall Bamboo Tree",[101],{"type":52,"title":53,"shortTitle":54,"icon":55,"description":56,"excerpt":57,"thumbnail":102},{"url":59,"alt":60},"7 min read"]