{"componentChunkName":"component---src-templates-page-page-tsx","path":"/buy-vs-build-whitepaper/","result":{"data":{"contentfulPage":{"__typename":"ContentfulPage","id":"25fb8847-9f04-555c-8708-dc17ef17a2ae","metaTitle":{"metaTitle":"Buy v.s. Build Whitepaper for TinyMCE"},"metaDescription":{"metaDescription":"When considering whether to build or buy technology there are a lot of different implications. Find out more on how to make this decision for your Rich Text Editor. "},"canonicalTag":null,"pageSlug":"buy-vs-build-whitepaper","pageTitle":null,"pageDescription":null,"pageBody":[{"__typename":"ContentfulText","id":"d26ecf81-fd91-5970-bf92-1f56de663126","heading":null,"headingStyle":null,"spec":null,"content":null,"buttons":null}],"ogImage":null,"setkaCss":["https://www.tiny.cloud/setka/common_css_1634572086.css","https://www.tiny.cloud/setka/1YiOHqbj_57MVFG6SwCkoQ.css","https://www.tiny.cloud/setka/uXB0rAxnLoeISOGvnaaQLA.css"],"setkaHtml":{"body_html":"<div class=\"stk-post stk-layout_12col_36138 stk-theme_44603\" data-ui-id=\"post\" data-reset-type=\"class\" data-editor-version=\"3.2.5\" data-stk=\"{&quot;images&quot;:[{&quot;id&quot;:175790,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:129369,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:129006,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:129000,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128999,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128469,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128372,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128369,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128370,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128346,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128345,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128344,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128343,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128342,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128341,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128250,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128233,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128232,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128231,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128230,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128229,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128217,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128215,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128214,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128180,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128165,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128126,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128123,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128058,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128057,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:128056,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:127970,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:127969,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:127645,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:127643,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;}]}\" data-layout-type=\"limited\" data-ce-tag=\"post\"><div class=\"stk-layout__overhangs_both stk-grid stk-theme_44603__mb_0\" data-stk-css=\"stkfRNA-\" data-ce-tag=\"grid\" data-stk-css-m=\"stkR1Q-C\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_44603__pad_ver_3 stk-theme_44603__pad_ver_1-m\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h1 class=\"stk-reset stk-theme_44603__style_large_header align-center stk-theme_44603__mb_15\" data-ce-tag=\"paragraph\">The Great Debate Buy vs Build Rich Text Editors</h1><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset align-center stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\">Agile businesses combine buying, subscribing, or renting, with building, to iteratively reshape and assemble their software stack. That scales and produces results. Fast.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-layout__overhangs_both stk-grid\" data-stk-css=\"stkdWZkL\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid\" data-ce-tag=\"grid\" id=\"toc\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-stk-css=\"stk5pdeB\" data-ce-tag=\"grid\" data-stk-css-m=\"stkFkaNm\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"0\" data-anim-rotation=\"0\" data-anim-opacity=\"0\" data-anim-direction=\"right\" data-anim-duration=\"0.30000000000000016\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"nyxLA\" data-anim=\"true\"><div data-col-width=\"4\" class=\"stk-theme_44603__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">FOREWORD</p><p class=\"stk-theme_44603__color_44603_custom_color_2 ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-reset\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#stk-1\">Transformation Is Driving Big Change</a></p></div></div></div><div data-col-width=\"4\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-stk-css=\"stko_LSb\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"0\" data-anim-rotation=\"0\" data-anim-opacity=\"0\" data-anim-direction=\"right\" data-anim-duration=\"0.30000000000000016\" data-anim-delay=\"0.2\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"WMqzA\" data-anim=\"true\"><div data-col-width=\"4\" class=\"stk-theme_44603__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">THE GREAT DEBATE</p><p class=\"stk-theme_44603__color_44603_custom_color_2 stk-reset ce-element--empty stk-element_no-text\" data-ce-tag=\"paragraph\"></p><ul class=\"stk-theme_44603__style_font_style-1628585880816 stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__style_font_style-1628585880816\" data-ce-tag=\"list-item\"><a class=\"stk-reset\" href=\"#stk-2.1\">Buy vs Build, or Something Else?</a><br></li><li class=\"stk-list-item stk-reset stk-theme_44603__style_font_style-1628585880816\" data-ce-tag=\"list-item\"><a class=\"stk-reset\" href=\"#stk-2.2\">Complexities of Rich Text Editors</a> <br></li><li class=\"stk-list-item stk-reset stk-theme_44603__style_font_style-1628585880816\" data-ce-tag=\"list-item\"><a class=\"stk-reset\" href=\"#stk-2.3\">Developer Productivity Costs</a> <br></li><li class=\"stk-list-item stk-reset stk-theme_44603__style_font_style-1628585880816\" data-ce-tag=\"list-item\"><a class=\"stk-reset\" href=\"#stk-2.4\">Total Cost of Ownership (TCO)</a> <br></li><li class=\"stk-list-item stk-reset stk-theme_44603__style_font_style-1628585880816\" data-ce-tag=\"list-item\"><a class=\"stk-reset\" href=\"#stk-2.5\">Complex Questions are Hard</a></li></ul></div></div></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-stk-css=\"stkd1L2z\" data-ce-tag=\"grid\" data-stk-css-m=\"stkwCvFC\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"0\" data-anim-rotation=\"0\" data-anim-opacity=\"0\" data-anim-direction=\"right\" data-anim-duration=\"0.30000000000000016\" data-anim-delay=\"0.5\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"kJsom\" data-anim=\"true\"><div data-col-width=\"4\" class=\"stk-theme_44603__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">AFTERWORD</p><p class=\"stk-theme_44603__color_44603_custom_color_2 ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><p class=\"stk-reset stk-theme_44603__style_font_style-1628585880816\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#stk-3\">Remote Work is Driving Cloud</a></p></div></div></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-theme_44603__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_44603__style_font_style-1628517328397 stk-theme_44603__color_44603_custom_color_2\" data-ce-tag=\"paragraph\">Foreword</p><h3 class=\"stk-reset stk-theme_44603__style_medium_header\" data-ce-tag=\"paragraph\" id=\"stk-1\">Transformation Is Driving<br data-gtm-vis-has-fired-10171822_255=\"1\">Big Change</h3></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_44603__mb_4 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Business has changed. </strong>Historically, companies relied on people to get things done. Changes and growth gradually happened – as roles, hierarchies and skills evolved – but their progress was never a mission-critical impediment to business success.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Now, companies are equally composed of people and <em class=\"stk-reset\">digital </em>assets. Those assets are closely woven into the fabric of every company, and people are as reliant on them as themselves, to drive business growth.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Adaptability, agility and scalability are the valued skills – of both people and technology.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">According to a <a href=\"https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/developer-velocity-how-software-excellence-fuels-business-performance\" target=\"_blank\" class=\"stk-reset\">2020 McKinsey report</a>, “With technology powering everything from how a business runs to the products and services it sells, companies in industries ranging from retail to manufacturing to banking are having to develop a range of new skill sets and capabilities. In addition to mastering the nuances of their industry, they need to excel first and foremost at developing software.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Or do they? </strong>For most of those businesses, investments in developers and software, haven’t led to meaningful performance improvements. Instead, it’s become an uncomfortable ‘black box’ where money pours in, and results are slow to trickle out.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Leading digital organizations have found a new way. They’re shaping a new set of principles for scoping, procuring, renewing and operating their digital assets. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">By assembling a plastic, not static, tech stack.</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last valign-middle\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-ce-tag=\"grid\" data-anim-zoom=\"100\" data-anim-shift=\"50\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"left\" data-anim-duration=\"0.7000000000000001\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"gifCF\" data-anim=\"true\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\"><span class=\"stk-reset\" style=\"letter-spacing: 1px; text-transform: uppercase;\"><b class=\"stk-reset\"><strong class=\"stk-reset\">Gartner Report</strong></b></span></p><hr class=\"stk-reset stk-theme_44603__mb_05 stk-theme_44603__separator_divider-1634298883224\"/><p class=\"stk-theme_44603__style_small_text stk-reset\" data-ce-tag=\"paragraph\">Gartner projects worldwide IT spending to total<strong class=\"stk-reset\"> <a class=\"stk-reset\" href=\"https://www.gartner.com/en/newsroom/press-releases/2021-07-14-gartner-forecasts-worldwide-it-spending-to-grow-9-percent-2021\" target=\"_blank\">$4.2 trillion in 2021</a></strong> – an increase of 8.6% from 2020.</p></div></div></div></div><div class=\"stk-theme_44603__mb_4 stk-grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-slideInUp\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_44603__separator_divider-1498128612642 stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585803915 align-center stk-reset\" data-ce-tag=\"paragraph\">Download a PDF of this white paper<br>and save it for later</p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><a class=\"stk-theme_44603__stk-btn_1628586253530 stk-theme_44603__style_font_style-1628586133109 align-center stk-reset\" data-stk-css=\"stkFP-gt\" data-stk-button=\"1\" href=\"https://www.tiny.cloud/buy-vs-build-whitepaper-opt-in\" target=\"_blank\" data-ce-tag=\"button\">Download</a></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585803915 align-center ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_44603__separator_divider-1498128612642 stk-theme_44603__mb_4 stk-reset\"/></div></div><figure class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/cbb9a446-d5b7-4d64-b23f-81e667616056/\" data-image-id=\"129369\" data-image-name=\"build-back.svg\" class=\"stk-image stk-reset\" width=\"1440\" height=\"261\" loading=\"lazy\"/></div></figure><div class=\"stk-layout__overhangs_both stk-grid stk-theme_44603__mb_4\" data-stk-css=\"stkWMFxk\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_44603__pad_ver_2\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_44603__mb_15 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-stk-css-m=\"stkdahL6\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/9ad7ccbc-3ee7-4954-8f24-1db14624549f/\" data-image-id=\"127643\" data-image-name=\"01.svg\" width=\"101\" height=\"101\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_44603__style_medium_header stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-2.1\">The Great Debate: <br>Buy vs Build,<br>or Something Else?</h3><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s a familiar question. In almost every development project, no matter the size, the earliest question that arises is: <strong class=\"stk-reset\">“Do we buy, or do we build?”</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Digital transformation has forced a shift in that thinking.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The two-part question now arising is: “What out-of-the-box software components can we selectively buy, integrate, and assemble to create a flexible software stack? and “Where does our development expertise and true market need lie, to build the rest?”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Those questions flow from agile thinking – how to speed a company’s software development output, so they can focus on their core business capabilities and market opportunities.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">What’s changed? Transformation and speed-to-market have made the old belief, in wholly custom-building technology, redundant. Neither budget, nor developer resources, are elastic and it's impossible to match the ‘bleeding edge’ changes across every digital realm.</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-stk-css=\"stk7NMKU\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d0cfdb83-236b-44c4-9a21-fed79b8de1f6/\" data-image-id=\"128469\" data-image-name=\"up.svg\" width=\"100\" height=\"100\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_4\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#toc\" target=\"\">Back </a><a class=\"stk-reset\" href=\"#toc\">to the table of contents</a></p></div></div><div class=\"stk-theme_44603__mb_15 stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkXqtIX\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stkMpHl0\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">MULESOFT REPORT</strong></p><hr class=\"stk-theme_44603__separator_divider-1634299654732 stk-theme_44603__mb_05 stk-reset\"/><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The average enterprise spends approximately <strong class=\"stk-reset\">$3.5M per year</strong> on integration-related IT labor according to the Mulesoft <a class=\"stk-reset\" href=\"https://www.mulesoft.com/lp/reports/connectivity-benchmark\" target=\"_blank\">2021 Connectivity Benchmark Report</a>, yet just 37% of organizations say IT completed all their projects, with fewer than 4 in 10 teams fulfilling their project commitments to business stakeholders.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">So, what’s the answer?</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"https://www.forrester.com/report/Digital+Experience+Technology+Integration+Go+Beyond+Just+A+Basket+Of+Solutions/-/E-RES87841\" target=\"_blank\">Forrester</a> advises companies to move beyond all-in-one solutions-thinking. Leading digital organizations agree – they’re no longer buying monolithic suites or building custom software beyond their specializations.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Agile businesses take a plastic approach – combining buying, subscribing, or renting, with building – and iteratively reshape their software stack, to fit the company’s changing goals.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That means buying smaller specialised components – like a rich text editor – with APIs as building blocks, within the company’s larger IT/dev software toolkit. The APIs are stitched and restitched together, while other parts are developed inhouse.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Assembling reusable software tools, scales. And produces results.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">McKinsey has dubbed this tech assembly approach a ‘<a class=\"stk-reset\" href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/scaling-a-transformative-culture-through-a-digital-factory\" target=\"_blank\">digital factory’</a>, where a company “brings together the skills, processes, and inputs required to produce high-quality outputs. […] The best digital factories can put a new product or customer experience into production in as little as ten weeks. The innovation can then be introduced and scaled up across the business in eight to 12 months.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Why does it produce results? Assembling maximizes the horsepower behind third-party specialization, empowers developer expertise to focus on what they do best and delivers the nimbleness to move beyond productivity obstacles.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Ultimately, buy vs build isn’t the conundrum.</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s how do you agilely build everything you need… at scale?</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_44603__mb_4\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-layout__overhangs_both stk-theme_44603__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-stk-css-m=\"stkYyJ_C\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/fb7dc702-e5e1-47a0-9565-8d0fe82007ff/\" data-image-id=\"127645\" data-image-name=\"02.svg\" width=\"101\" height=\"101\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_44603__style_medium_header stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-2.2\">Complexities of<br>Rich Text Editors</h3></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-stk-css=\"stkS0STW\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d0cfdb83-236b-44c4-9a21-fed79b8de1f6/\" data-image-id=\"128469\" data-image-name=\"up.svg\" width=\"100\" height=\"100\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_4\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#toc\" target=\"\">Back </a><a class=\"stk-reset\" href=\"#toc\">to the table of contents</a></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Digital transformation is driving the need for a new set of tools.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">According to <a href=\"https://www.mulesoft.com/lp/whitepaper/api/digital-transformation-blueprint\" target=\"_blank\" class=\"stk-reset\">Mulesoft,</a> “the average business transaction now crosses 35 disparate systems. Digital transformation comes not from the implementation of any single technology, but from an architecture that is built for constant innovation, enabling companies to bring multiple technologies together again and again to create a compelling and consistent customer experience – quickly.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">But being on the ‘bleeding edge’ of every digital realm isn’t possible.</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Rich Text Editors (RTEs) are one of the highest-risk areas for both cost and development time overruns. Feature and system complexities are notoriously underestimated, iterative bugs demand constant attention, and remote working is forcing rapid evolutions and adaptations.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">A developer who’s inexperienced in developing RTEs generally underestimates the myriad of edge cases, across both browsers and functionality. Even things that are perceived to be basic, are hard. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">For example, in an average simple RTE, the ‘Enter’ key performs over 100 different actions depending on where you are and what you’re doing. That doesn’t take into consideration browser compatibility or other dependencies based on what you have built into your product.</p><p class=\"stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_44603__symbol_custom_image_3670098 stk-icon\" src=\"https://ucarecdn.com/18c91f88-b263-4eea-99b8-824604e15561/\">&nbsp;<strong class=\"stk-reset\">Is your development team expert enough in rich text editing, to build that?</strong> </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_44603__symbol_custom_image_3670098 stk-icon\" src=\"https://ucarecdn.com/18c91f88-b263-4eea-99b8-824604e15561/\">&nbsp;<strong class=\"stk-reset\">Is it a skill you want them to maintain moving forward?</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Building a rich text editor is way beyond what most developers initially consider, which is why most rich text editors have large teams of developers working on them year-round. Or, if you utilize an open source project that has some components that your team can use as a framework, there are still numerous considerations (and decisions) you have to make.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">When coding a RTE from scratch, these are the components you need to build, test and maintain:</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\" data-stk-css=\"\" data-stk-css-m=\"\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkYMndf\" data-anim-zoom=\"100\" data-anim-shift=\"40\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"left\" data-anim-duration=\"0.7000000000000001\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"gaZQa\" data-anim=\"true\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">STRIPE Forecast</strong></p><hr class=\"stk-reset stk-theme_44603__separator_divider-1634299654732 stk-theme_44603__mb_05\"/><p class=\"stk-theme_44603__style_small_text stk-reset\" data-ce-tag=\"paragraph\">The latest forecast by Gartner shows that the worldwide <a class=\"stk-reset\" href=\"https://www.gartner.com/en/newsroom/press-releases/2021-02-15-gartner-forecasts-worldwide-low-code-development-technologies-market-to-grow-23-percent-in-2021\" target=\"_blank\">low-code development technologies market</a> is projected to total <strong class=\"stk-reset\">$13.8 billion in 2021</strong>, an increase of 22.6% from 2020. The surge in remote development during the <a class=\"stk-reset\" href=\"https://www.gartner.com/en/insights/coronavirus\" target=\"_blank\">COVID-19</a> pandemic continues to boost low-code adoption, despite ongoing cost optimization efforts.</p></div></div></div></div><div class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-grid\" data-stk-css=\"stk2QfNj\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_44603__style_font_style-1634213619491 ce-element--empty stk-element_no-text\" data-ce-tag=\"paragraph\"></p><p class=\"stk-reset stk-theme_44603__style_font_style-1634213619491\" data-ce-tag=\"paragraph\">Common Rich Text Editor Requirements</p><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-reset stk-theme_44603__mb_05\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Core Components</strong></p><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">These are your no-frills core components – the absolute basic minimum expectations to get a rich text editor running</p><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\" data-stk-css=\"stklh1cI\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/7dfc8410-9189-493a-8620-02be1a0ca2bc/\" data-image-id=\"128123\" data-image-name=\"puzzle-side.svg\" width=\"491\" height=\"730\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_44603__mb_0\" data-stk-css=\"stkUgMVG\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col valign-top\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-stk-css=\"stkCpLxk\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"110\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"0.9\" data-anim-delay=\"0.1\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"PSxLR\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/924363d5-de67-4484-9900-c38f04c433cc/\" data-image-id=\"128231\" data-image-name=\"p-4.png\" width=\"305\" height=\"270\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-stk-css=\"stkVa0zJ\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"100\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"bottom\" data-anim-duration=\"0.9\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"ybonj\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/e948ec9a-f5a9-469d-ba8a-64225061c8a5/\" data-image-id=\"128233\" data-image-name=\"p-2.png\" width=\"385\" height=\"350\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"align-left stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"90\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0.2\" data-anim-scroll-start=\"20\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"IWZav\" data-anim=\"true\" data-stk-css=\"stkNt1r3\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/cd4b6b2c-dd17-4ea1-b291-c93fbdf85f5b/\" data-image-id=\"128229\" data-image-name=\"p-1.png\" class=\"stk-image stk-reset\" width=\"311\" height=\"312\" loading=\"lazy\"/></div></figure></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-anim-m=\"false\" data-stk-css=\"stk10r2f\" data-anim-zoom=\"100\" data-anim-shift=\"120\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"bottom\" data-anim-duration=\"1\" data-anim-delay=\"0.5\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"FuyHe\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/4bb94deb-7ceb-4ce3-b15d-6c3b60d3aaf9/\" data-image-id=\"128232\" data-image-name=\"p-3.png\" width=\"188\" height=\"314\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-anim-m=\"false\" data-stk-css=\"stkK5VGz\" data-anim-zoom=\"100\" data-anim-shift=\"120\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"bottom\" data-anim-duration=\"1\" data-anim-delay=\"0.1\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"kHGDH\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/924363d5-de67-4484-9900-c38f04c433cc/\" data-image-id=\"128231\" data-image-name=\"p-4.png\" width=\"305\" height=\"270\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-anim-m=\"false\" data-stk-css=\"stkwZ8SK\" data-anim-zoom=\"100\" data-anim-shift=\"90\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"0.8\" data-anim-delay=\"0\" data-anim-scroll-start=\"30\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"uommM\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d92f5fca-74d5-4fce-a62a-de69c4bc2e82/\" data-image-id=\"128230\" data-image-name=\"p-5.png\" width=\"373\" height=\"331\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-stk-css=\"stkOv3xi\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"120\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"bottom\" data-anim-duration=\"1.2000000000000002\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"pDqYQ\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/cd4b6b2c-dd17-4ea1-b291-c93fbdf85f5b/\" data-image-id=\"128229\" data-image-name=\"p-1.png\" width=\"311\" height=\"312\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-stk-css=\"stkcGUV5\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"110\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"bottom\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"BVceJ\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/e948ec9a-f5a9-469d-ba8a-64225061c8a5/\" data-image-id=\"128233\" data-image-name=\"p-2.png\" width=\"385\" height=\"350\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><div class=\"stk-grid stk-mobile-hidden\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-stk-css=\"stk9rsrK\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"100\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"WQaSP\" data-anim=\"true\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/924363d5-de67-4484-9900-c38f04c433cc/\" data-image-id=\"128231\" data-image-name=\"p-4.png\" width=\"305\" height=\"270\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Contenteditable</strong></p><p class=\"stk-reset stk-theme_44603__mb_2\" data-ce-tag=\"paragraph\">A contenteditable is a special HTML attribute that can turn any HTML div container into a basic text editor. There are no toolbars or menus. If you need to add any more functionality, Contenteditable becomes the base on which to build your features.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Basic Formatting</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Bold, italic and underline are the most basic types of formatting that can be leveraged from ContentEditable, which provides these basic features through the execComand API.</p><div class=\"stk-theme_44603__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-reset\" data-ce-tag=\"paragraph\">For example: <strong class=\"stk-reset\">\"Hello &lt;u&gt;world&lt;/u&gt;\"</strong></p></div></div><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-reset\" data-ce-tag=\"paragraph\">The rich text output will be <strong class=\"stk-reset\">\"Hello <u>world</u>\"</strong></p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">This does not include Advanced Formatting, where undesirable formats are stripped out, and rules can be added that conform with brand style guides.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">HTML Compliance</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">HTML is a structure that formats the text in the desired manner, otherwise the content is a wall of words without structures like paragraphs, formating or sections.</p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">If the HTML is incorrect, it confuses the browser and renders incorrectly on the screen. Developers and Product Managers have to decide, scope and develop the rules for each use case.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Colors</strong></p><p class=\"stk-reset stk-theme_44603__mb_2\" data-ce-tag=\"paragraph\">The ability to change text color or create features so it remembers what color was last selected, has to be custom coded within the editor itself.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Undo</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">When should we set an undo point? When you undo – does it do every character or every word? How does it deal with emoji shortcuts (if you’ve developed emjoi’s to work)? Is an undo point set on enter?</p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">There’s no right answer to any of these questions and the reality is the undo algorithm should take into account all of these approaches to provide the best experience for the end user. When developing new features, you should always consider how undo will work, and what the user would expect when they undo.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Focus</strong></p><p class=\" stk-reset\" data-ce-tag=\"paragraph\">One of the challenges working with ContentEditable is the browser focus. When you’re typing to create content, the browser's focus is in the content area. However, when your cursor is placed inside another editing field, that field assumes focus.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">When a web page has three editable text areas, this is where the browser’s focus and text selection work together to find out which text area and which word needs formatting applied. Once the UI is added to an editor, it can confuse focus – because when a toolbar button is clicked (to make a word bold), the focus shifts to the toolbar button. </p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">Therefore, focus needs to be normalised across all browsers, because you want the selected text inside the content to go bold when the toolbar bold button is clicked. On some browsers, you need to refocus the content then call the browser API to do bold, then refocus the toolbar button so users can keyboard navigate. Developers of rich text editors need to manage all aspects of what happens, to achieve a consistent editing experience, for every single feature created.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Selection</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">There are two kinds of selections to deal with, that tell the editor which text to apply a transformation, e.g. ‘make this selected word bold’:</p><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\"><strong class=\"stk-reset\">Collapsed,</strong> this is often denoted as a blinking cursor when you click on an editable text field.</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\"><strong class=\"stk-reset\">Ranged selection,</strong> is the blue highlight that can span across words, paragraphs, images, tables or the entire document.</li></ul><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Ranged selections are more complicated to normalise, because they select a start and end point and as you add more features to your editor, you need to consider managing selection. For example, when you add a toolbar that adds an interface to your editor, this introduces focus issues (see Focus section) which affects selection. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">When you click on a toolbar button, say italics, the browser focus is shifted to the italics button. In effect this revokes focus from the content, therefore losing its selection, so when you try to apply italic you’re applying it to nothing.</p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">Along with normalising selection, you also need to remember where selection was before it was lost, so you can apply italics to the previous selection in the content.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Loading Content</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">How do you actually get content into the editor itself? If someone's writing fresh content it’s fairly simple, but what happens when you want to add in images, what about styling, CSS and fonts? What happens when they begin trying to paste content over from MS Word or Google Docs – the underlying HTML isn’t clean, so it’s going to create formatting issues.</p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">You need to scope and determine every single use case for how people will get content into a document and create custom solutions for each browser type to support and manage this task.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Input Filtering</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">When content is loaded into the editor, is it guaranteed to be HTML compliant? Is the content older, or does it meet the modern HTML standards? Creating input filtering allows your editor to inspect the validity of the content being loaded, and the more advanced you make the filtering the cleaner the content inserted into the editor becomes.</p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">A more reliable way to do content input validation and filtration, is to use a schema. Compliant code means less confusion to the browser trying to work out what you want and it results in fewer bugs.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Exporting Content (output)</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Consider how your content will display on the screen when published. At its heart, this is the core of WYSIWYG editing experiences, so how do you ensure it translates what your author has built into what he (and the reader) actually sees on screen?</p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">How is the content hosted, and how will the web page recreate the contents that was created in the editor? In line with modern web development principles, content needs to be separated out into HTML file, CSS file, images stored separately and the published web page will pull all of these elements together to re-create the content. For all of this to come together, the editor needs to know where it needs to encode image links so images can be loaded, where the CSS files are, how to load custom fonts into the editor, and how to load those fonts on the published website.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Output Filtering</strong></p><p class=\"stk-reset stk-theme_44603__mb_2\" data-ce-tag=\"paragraph\">Output filtering exists to ensure published content looks and feels the same. During the editing session, the editor needs to make temporary markers in the content, to provide visual editing queues – like where spaces, line breaks or anchor links are located. Image drag handle resizers are also required for editing, but not when you’re publishing.</p><p class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Browser Differences</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Users of text editors expect consistency, although this can be hard to achieve when there are many browsers to support and each browser may yield a slightly different result.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Providing a consistent editing (writing) and reading experience (published) is where the complexities lay when developing an editor. When architecting an editor, an engineer needs to understand all of the minor differences between all supported browsers and have all their inputs and outputs produce the same or equivalent result for each browser. </p><p class=\"stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">Successful normalisation of browser behaviours occurs gradually over time, as developers find new inconsistencies to 'normalise'. This is where test automation can capture changes in browser behavior as soon as a new browser version is released.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The above requirements cover content and formatting. Next, your developers need to look deeper into what content is made of and how to render that within a rich text editing environment.</p><p class=\"stk-reset ce-element--empty stk-element_no-text\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-grid\" data-stk-css=\"stkr3QyH\" data-ce-tag=\"grid\"><div data-col-width=\"6\" class=\"stk-theme_44603__pad_ver_1 stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Handling Content Types</strong></p><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">These are the additional features that individually need to be created inline with the scope above (they’re not often in a core RTE experience) but are frequently requested by end users</p><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Links</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Embeds</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Lists</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Tables</li></ul></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Images</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Uploading</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Advanced Formatting</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Emoji</li></ul></div></div></div><div data-col-width=\"6\" class=\"stk-theme_44603__pad_ver_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">UI Interactions</strong></p><p class=\"stk-reset stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__color_44603_custom_color_2 stk-mobile-hidden\" data-ce-tag=\"paragraph\">Surfacing up UI components, how are people going to interact and work with your editor<br><br data-gtm-vis-has-fired-10171822_255=\"1\"></p><p class=\"stk-reset stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__color_44603_custom_color_2 stk-desktop-hidden\" data-ce-tag=\"paragraph\">Surfacing up UI components, how are people going to interact and work with your editor<br data-gtm-vis-has-fired-10171822_255=\"1\"></p><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">UI General</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">UI Toolbar</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">UI Buttons</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">UI Menu</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">UI Context Menu</li></ul></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">UI Dialogs</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Accessibility</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Touch Devices (mobile/tablets)</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Advanced Keyboard Interactions</li></ul></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_44603__mb_0\" data-stk-css=\"stk5AUsJ\" data-ce-tag=\"grid\"><div data-col-width=\"6\" class=\"stk-theme_44603__pad_ver_1 stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Look and Feel</strong></p><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">How the editor looks in your application and how you configure it to meet your product requirements<br><br></p><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Content Editing</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Content Published</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Skins and Customizations</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Configuration</li></ul></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div><div data-col-width=\"6\" class=\"stk-theme_44603__pad_ver_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Enterprise Grade Features</strong></p><p class=\"stk-reset stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__color_44603_custom_color_2\" data-ce-tag=\"paragraph\">The <strong class=\"stk-reset\">advanced</strong> <strong class=\"stk-reset\">features</strong> (over and above a core editing experience), that growing SaaS and established companies demand in order to compete</p><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Automated Testing</li><li class=\"stk-list-item stk-reset \" data-ce-tag=\"list-item\">Human Testing</li><li class=\"stk-list-item stk-reset \" data-ce-tag=\"list-item\">Localization</li><li class=\"stk-list-item stk-reset \" data-ce-tag=\"list-item\">Security</li></ul></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset \" data-ce-tag=\"list-item\">Spell Checking</li><li class=\"stk-list-item stk-reset \" data-ce-tag=\"list-item\">Integration</li><li class=\"stk-list-item stk-reset \" data-ce-tag=\"list-item\">Performance</li></ul></div></div></div></div><div class=\"stk-layout__overhangs_both stk-theme_44603__mb_2 stk-grid\" data-stk-css=\"stk2wP8T\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-theme_44603__pad_ver_2 stk-grid-col stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"align-left stk-reset\" data-ce-tag=\"paragraph\">A rich text editor is a complicated Swiss watch – with many unseen moving parts that work in synchrony. On the surface, an RTE should always be visually pleasing and comfortable to work with, and users demand that they should never need to learn how to use an editor – instead preferring to trust it with their fingers.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">A great editor experience must help users achieve an immersive state where they are fully focused on the content and not fighting against the editor to do a simple task.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">However, to achieve that goal, it’s never a once-and-done project.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">A trusted editing environment requires year-round ongoing maintenance – to keep up with browsers, technologies, changing technologies and how the content is displayed to its ultimate audience, your readers.</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid stk-theme_44603__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-stk-css-m=\"stkrpitB\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/a980365e-2528-4d8d-abce-0e4b07da79ce/\" data-image-id=\"127969\" data-image-name=\"03.svg\" width=\"100\" height=\"101\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_44603__style_medium_header stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-2.3\">Developer Productivity Cost</h3></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-stk-css=\"stkN5TsU\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d0cfdb83-236b-44c4-9a21-fed79b8de1f6/\" data-image-id=\"128469\" data-image-name=\"up.svg\" width=\"100\" height=\"100\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_4\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#toc\" target=\"\">Back </a><a class=\"stk-reset\" href=\"#toc\">to the table of contents</a></p></div></div><div class=\"stk-grid stk-theme_44603__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Cost drives much of today’s technology.</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In specialized fields like RTEs, an inexperienced in-house development approach often adds uncertainty to the scoping equation. Then costs increase when teams get side-tracked on building deep user features, or the requirements transform due to a market change and user preference. Scope creep continues. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In the end, time-to-market suffers. And time is money.</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_44603__mb_15 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-reset stk-theme_44603__separator_divider-1634298883224\"/><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">$75K (projected initial monthly revenue) x 6 (month delay)</strong><br><strong class=\"stk-reset\">= $450K (lost potential initial ARR)</strong></p><hr class=\"stk-reset stk-theme_44603__separator_divider-1634298883224\"/></div></div></div><div data-col-width=\"2\" class=\"valign-middle stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkomyJD\" data-anim-zoom=\"100\" data-anim-shift=\"0\" data-anim-rotation=\"0\" data-anim-opacity=\"30\" data-anim-direction=\"right\" data-anim-duration=\"0.5000000000000001\" data-anim-delay=\"0.30000000000000004\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"OjbMW\" data-anim=\"true\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_44603__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/bc2c8dae-b3da-442c-afed-c4f219cdfada/\" data-image-id=\"127970\" data-image-name=\"left.svg\" width=\"24\" height=\"27\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__color_44603_custom_color_2 stk-theme_44603__style_font_style-1628517714937\" data-ce-tag=\"paragraph\">Example cost of delayed time-to-market per project or initiative</p></div></div></div></div><div class=\"stk-grid stk-theme_44603__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Teams eventually do deliver, but only after blow-outs in both costs and hours, and sometimes only with the help of additional costly contract resources. Then, as projects and initiatives increase – each with its own custom-build development focus – there’s replication of effort and wastage of scarce talent resources.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">According to a recent report by <a href=\"https://stripe.com/files/reports/the-developer-coefficient.pdf\" target=\"_blank\" class=\"stk-reset\">payment platform Stripe</a>, “As technology fracks into every aspect of the world economy, software engineers are becoming one of the world’s most precious resources. While businesses today face myriad issues – security vulnerabilities, trade tariffs, complex government regulations, increased global competition – how they deploy their developers may be the most overlooked factor impacting their future success.”</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-layout__overhangs_both stk-theme_44603__mb_15\" data-ce-tag=\"grid\" data-stk-css=\"stkR3027\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_44603__pad_ver_2\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_44603__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">The survey questioned thousands of enterprise leaders and they learned:</strong></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__separator_divider-1498128612642\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\">81%</p><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-reset\" data-ce-tag=\"paragraph\">of C-level executives think software needs to become more of a core competency for their company in the next 10 years</p></div><div data-col-width=\"4\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__separator_divider-1498128612642\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\">40%</p><p class=\"stk-reset stk-theme_44603__style_font_style-1628517714937\" data-ce-tag=\"paragraph\">of developers say they’re hindered by custom technology</p></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__separator_divider-1498128612642\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\">81%</p><p class=\"stk-reset stk-theme_44603__style_font_style-1628517714937\" data-ce-tag=\"paragraph\">say they’re held back by legacy systems or technical debt</p></div></div></div></div><div class=\"stk-grid stk-theme_44603__mb_4\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The report goes on to name developers as the ‘force-multipliers’, who when deployed effectively, “have the collective potential to raise global GDP by $3 trillion over the next ten years.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">While a 2020 <a class=\"stk-reset\" href=\"https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/developer-velocity-how-software-excellence-fuels-business-performance\" target=\"_blank\">McKinsey report on developer velocity</a> noted that “Leading companies also use tools to unleash Developer Velocity by investing in low-code and no-code platforms. These platforms enable the average business user to develop applications without any software experience, freeing up seasoned developers to focus on the most challenging tasks.” </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In short, businesses must get better at leveraging their existing <a href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/seven-lessons-on-how-technology-transformations-can-deliver-value\" target=\"_blank\" class=\"stk-reset\">software engineering talent</a>, if they want to move faster, build new products, and tap into new and emerging trends. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Others believe that the true problem is not enough devs on their team. It’s not. It’s how they’re being leveraged.</strong> Failing to deploy the best talent, on the right project, is repeatedly becoming the biggest threat to a company’s digital transformation and market success. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s an even bigger threat than access to capital.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last valign-bottom\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkaCzwA\" data-anim-zoom=\"100\" data-anim-shift=\"40\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"left\" data-anim-duration=\"0.7000000000000001\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"CxyoJ\" data-anim=\"true\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">STRIPE SURVEY</strong></p><hr class=\"stk-reset stk-theme_44603__mb_05 stk-theme_44603__separator_divider-1634298883224\"/><p class=\"stk-theme_44603__style_small_text stk-reset\" data-ce-tag=\"paragraph\">The <a class=\"stk-reset\" href=\"https://stripe.com/files/reports/the-developer-coefficient.pdf\" target=\"_blank\">Stripe survey</a> identified that <strong class=\"stk-reset\">“</strong>the average developer spends more than <strong class=\"stk-reset\">17 hours a week dealing with maintenance issues</strong>, such as debugging and refactoring. In addition, they spend approximately <strong class=\"stk-reset\">four hours a week on “bad code”</strong> which equates to nearly <strong class=\"stk-reset\">$85 billion worldwide in opportunity cost lost annually</strong>, according to Stripe’s calculations on average developer salary by country.”</p></div></div></div></div><div class=\"stk-theme_44603__mb_4 stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkemQl3\" data-anim=\"true\" data-anim-name=\"preset-slideInUp\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_44603__separator_divider-1498128612642 stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585803915 align-center stk-reset\" data-ce-tag=\"paragraph\">Download a PDF of this white paper<br>and save it for later</p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><a class=\"stk-theme_44603__stk-btn_1628586253530 stk-theme_44603__style_font_style-1628586133109 align-center stk-reset\" data-stk-css=\"stkbZHcF\" data-stk-button=\"1\" href=\"https://www.tiny.cloud/buy-vs-build-whitepaper-opt-in\" target=\"_blank\" data-ce-tag=\"button\">Download</a></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585803915 align-center ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_44603__separator_divider-1498128612642 stk-theme_44603__mb_4 stk-reset\"/></div></div><div class=\"stk-theme_44603__mb_0 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/74f21e5f-1331-4c7f-afae-ee836e30a963/\" data-image-id=\"128058\" data-image-name=\"pipe-back-3.svg\" class=\"stk-image stk-reset\" width=\"1440\" height=\"460\" loading=\"lazy\"/></div></figure></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_44603__mb_4\" data-stk-css=\"stknIsKd\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_44603__pad_ver_3\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-stk-css-m=\"stkTPJ_c\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/a697804e-d4b2-4c73-a00d-f503af2ab6fd/\" data-image-id=\"128056\" data-image-name=\"04.svg\" width=\"100\" height=\"100\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><h3 class=\"stk-reset stk-theme_44603__style_medium_header stk-theme_44603__mb_2\" data-ce-tag=\"paragraph\" id=\"stk-2.4\">Total Cost of Ownership</h3><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Final decisions likely come back to cost.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">But to be a valid decision, all costs need to be included. When evaluating a buy vs build argument, it's critical to thoroughly understand total costs incurred during the software lifecycle – typically seven or eight years. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In an <a class=\"stk-reset\" href=\"https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/developer-velocity-how-software-excellence-fuels-business-performance\" target=\"_blank\">Infoworld article</a>, Mark Lutchen, former global CIO of PricewaterhouseCoopers, cites this step as being vitally important, “because 70% of software costs occur after implementation. A rigorous lifecycle analysis that realistically estimates ongoing maintenance by in-house developers often tips the balance in favor of buying.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">So, when the majority of costs happen <em class=\"stk-reset\">after</em> you've built and implemented, it can be difficult to quantify the total cost of ownership (TCO).</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">It gets worse.</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">When the software requires deep domain knowledge and is as specialized and complex as building, maintaining and extending an enterprise grade rich text editor, the challenge to definitively know the time, effort and costs that lay ahead, is an even greater challenge. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">However, some indicators are readily available.</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-stk-css=\"stkjjuNk\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d0cfdb83-236b-44c4-9a21-fed79b8de1f6/\" data-image-id=\"128469\" data-image-name=\"up.svg\" width=\"100\" height=\"100\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_4\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#toc\" target=\"\">Back </a><a class=\"stk-reset\" href=\"#toc\">to the table of contents</a></p></div></div><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p><figure class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkfOLa0\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/bd43a94f-2a15-4435-91ae-c311f3c6816e/\" data-image-id=\"128057\" data-image-name=\"wave-1.svg\" width=\"1440\" height=\"159\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><div class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-grid\" data-stk-css=\"stkDl1-0\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-theme_44603__color_44603_custom_color_0 stk-reset ce-element--empty stk-element_no-text\" data-ce-tag=\"paragraph\"></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-theme_44603__style_font_style-1634213619491 align-center\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Core Rich Text Editor – Build Cost Estimate</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">To build <strong class=\"stk-reset\">just the basic open source components</strong> of three leading rich text editors (excluding advanced features and plugins) <a class=\"stk-reset\" href=\"https://www.openhub.net/explore/projects\" target=\"_blank\">Open Hub</a> estimates it as:</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/><table class=\"stk-table stk-reset stk-table--zebra stk-theme_44603__var_44603_custom_color_0 stk-theme_44603__mb_15\" data-responsive-type=\"cards\" data-ce-tag=\"table\"><colgroup><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2591\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2592\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2593\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2594\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2595\"/></colgroup><thead class=\"stk-reset\"><tr class=\"stk-theme_44603__style_small_text stk-reset stk-table-row\"><th class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell stk-theme_44603__style_font_style-1628586133109\" data-ce-tag=\"th\"><strong class=\"stk-reset\">OPEN SOURCE CODE</strong></th><th class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell stk-theme_44603__style_font_style-1628586133109\" data-ce-tag=\"th\"><strong class=\"stk-reset\">CODEBASE SIZE</strong></th><th class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell stk-theme_44603__style_font_style-1628586133109\" data-ce-tag=\"th\"><strong class=\"stk-reset\">ESTIMATED EFFORT</strong></th><th class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell stk-theme_44603__style_font_style-1628586133109\" data-ce-tag=\"th\"><strong class=\"stk-reset\">AVERAGE SALARY P/YR<sup class=\"stk-reset\">*</sup></strong></th><th class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell stk-theme_44603__style_font_style-1628586133109\" data-ce-tag=\"th\"><strong class=\"stk-reset\">ESTIMATED BUILD COST<sup class=\"stk-reset\">*</sup></strong></th></tr></thead><tbody class=\"stk-reset\"><tr class=\"stk-theme_44603__style_small_text stk-reset stk-table-row\"><td class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1628586133109 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"OPEN SOURCE CODE\"><a class=\"stk-reset\" href=\"https://www.openhub.net/p/tinymce/estimated_cost\" target=\"_blank\"><strong class=\"stk-reset\">TinyMCE</strong></a></td><td class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1634297000331 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"CODEBASE SIZE\">270,122 lines</td><td class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1634297000331 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"ESTIMATED EFFORT\">115 person-years<br>(36.6 months using 46 developers)</td><td class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1634297000331 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"AVERAGE SALARY P/YR*\">US$128,749<sup class=\"stk-reset\">**</sup> p/yr<br data-gtm-vis-has-fired-10171822_255=\"1\"><a class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\" href=\"https://www.indeed.com/career/senior-software-engineer/salaries/Silicon-Valley--CA\" target=\"_blank\">Senior Software Engineer</a></td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"ESTIMATED BUILD COST*\"><strong class=\"stk-reset\">US$14,890,054</strong><strong class=\"stk-reset\"><sup class=\"stk-reset\">*</sup></strong></td></tr><tr class=\"stk-reset stk-table-row\"><td class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1628586133109 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"OPEN SOURCE CODE\"><a class=\"stk-reset\" href=\"https://www.openhub.net/p/ckeditor/estimated_cost\" target=\"_blank\"><strong class=\"stk-reset\">CKEditor</strong></a></td><td class=\"stk-theme_44603__style_font_style-1634297000331 stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"CODEBASE SIZE\">484,093 lines</td><td class=\"stk-theme_44603__style_font_style-1634297000331 stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"ESTIMATED EFFORT\">220 person-years<br>(44.9 months using 71 developers)</td><td class=\"stk-theme_44603__style_font_style-1634297000331 stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"AVERAGE SALARY P/YR*\">US$128,749<sup class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">**</sup> p/yr<br data-gtm-vis-has-fired-10171822_255=\"1\"><a class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\" href=\"https://www.indeed.com/career/senior-software-engineer/salaries/Silicon-Valley--CA\" target=\"_blank\">Senior Software Engineer</a></td><td class=\"stk-reset stk-table-cell stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"td\" data-cell-header=\"ESTIMATED BUILD COST*\"><strong class=\"stk-reset\">US$28,283,035</strong><strong class=\"stk-reset\"><sup class=\"stk-reset\">*</sup></strong></td></tr><tr class=\"stk-reset stk-table-row\"><td class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell stk-theme_44603__style_font_style-1628586133109\" data-ce-tag=\"td\" data-cell-header=\"OPEN SOURCE CODE\"><a class=\"stk-reset\" href=\"https://www.openhub.net/p/summernote/estimated_cost\" target=\"_blank\"><strong class=\"stk-reset\">Summernote</strong></a></td><td class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1634297000331 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"CODEBASE SIZE\">43,994 lines</td><td class=\"stk-theme_44603__style_font_style-1634297000331 stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"ESTIMATED EFFORT\">16 person-years<br>(19.4 months using 12 developers</td><td class=\"stk-theme_44603__style_font_style-1634297000331 stk-theme_44603__color_44603_custom_color_0 stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"AVERAGE SALARY P/YR*\">US$128,749<sup class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">**</sup> p/yr<br data-gtm-vis-has-fired-10171822_255=\"1\"><a class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\" href=\"https://www.indeed.com/career/senior-software-engineer/salaries/Silicon-Valley--CA\" target=\"_blank\">Senior Software Engineer</a></td><td class=\"stk-reset stk-table-cell stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text\" data-ce-tag=\"td\" data-cell-header=\"ESTIMATED BUILD COST*\"><strong class=\"stk-reset\">US$2,023,716</strong><strong class=\"stk-reset\"><sup class=\"stk-reset\">*</sup></strong></td></tr></tbody></table><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"6\" class=\"stk-grid-col align-left\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Note:</strong> Lines of code are indicative only. For RTEs, the quality of code also isn’t directly reflective of either hours spent, or codebase size.</p><p class=\" stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">* Using the <a href=\"http://softwarecost.org/tools/COCOMO/\" target=\"_blank\" class=\"stk-reset\">Basic COCOMO Model</a> (Accessed 1 July 2022)</p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">** Average base salary for a Senior Software Engineer is US$128,749 per year in Silicon Valley, CA </p></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">(Accessed 1 July 2022)</p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">A person-month is equivalent to approximately 160 hours of labor, and is the amount of work performed by a single average worker in one month (ie. 12 person-month project will take 4 developers 3 months work to finish). A person-year is the total effort in person-months divided by twelve, to estimate the project length in years. </p></div></div><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/><div class=\"stk-theme_44603__mb_3 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">It should be noted the <strong class=\"stk-reset\">above costs</strong> <strong class=\"stk-reset\">exclude the additional costs</strong> of <a href=\"https://www.indeed.com/career/senior-product-manager/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\" class=\"stk-reset\">Senior Product Manager</a>*** support (prior to the discovery/inception phases and also throughout the project) as well as <a href=\"https://www.indeed.com/career/senior-product-designer/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\" class=\"stk-reset\">Senior Product Designer</a>**** support, during the development of a rich text editor.</p><p class=\" stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">That said, it doesn’t just start-and-end there. For an enterprise grade RTE, more advanced features are also required. </p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><figure class=\"stk-layout__overhangs_both stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/07d87fec-7fd5-40fb-aa35-6f7ba9321133/\" data-image-id=\"128126\" data-image-name=\"very-bottom.svg\" width=\"1440\" height=\"159\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div></div><div class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-grid\" data-stk-css=\"stkCoWkx\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-theme_44603__pad_ver_2 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\" data-stk-css=\"\" data-stk-css-m=\"\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-theme_44603__style_font_style-1634213619491 align-left\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">An Advanced RTE Feature – Build Cost Estimate&nbsp;</strong><strong class=\"stk-reset\">(excl. core editor)</strong></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">One such advanced feature</strong> is a plugin that helps users cleanly transfer content from its source, to the rich text editor. Ideally, the plugin should automatically parse the content for security vulnerabilities, remove unnecessary style elements as well as generally clean up and modernise the HTML.</p><p class=\" stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">That's no short order.</p><p class=\" stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">Using a <a href=\"http://softwarecost.org/tools/COCOMO/\" target=\"_blank\" class=\"stk-reset\">normalised COCOMO Model,</a> the estimated engineering requirements for building that single feature, using:</p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-theme_44603__mb_0 stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">DEVELOPMENT COST</strong></p><hr class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__separator_basic_divider\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">$1,814,399</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1628517714937 stk-reset\" data-ce-tag=\"paragraph\">14.1 years, using one developer</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">A Senior Software Engineer</strong></p><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">A Senior Software Engineer</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">Average salary rate (<strong class=\"stk-reset\">US$128,749</strong>** p/yr excluding oncosts, RSUs and bonuses)</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\"><strong class=\"stk-reset\">39836 lines of code</strong><br>The total LOC includes 23085 LOC for the plugin itself, as well as 16751 LOC for the dependent libraries that are maintained ongoing, as part of the feature</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">169.1 person-months = <strong class=\"stk-reset\">14.1 person-years, using one developer</strong></li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">Excluding ongoing maintenance and extensibility work</li></ul><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset align-left\" data-ce-tag=\"paragraph\">Equals = $1,814,399 in development cost</p></div></div><div class=\"stk-grid stk-theme_44603__mb_3\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-theme_44603__mb_0 stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">DEVELOPMENT COST</strong></p><hr class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__separator_basic_divider\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">$1,814,399</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1628517714937 stk-reset\" data-ce-tag=\"paragraph\">18.8 months, using eleven developers</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">OR…</p><p class=\" stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">For more efficient production scheduling and quality outputs, as shown below: </p><ul class=\" stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">169.1 person-months = <strong class=\"stk-reset\">18.8 months, using eleven developers</strong></li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">Excluding ongoing maintenance and extensibility work</li></ul><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset align-left\" data-ce-tag=\"paragraph\">Equals = $1,814,399 in development cost</p></div></div><div class=\"stk-grid\" data-stk-css=\"stk2rZzX\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stkJaqvr\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"align-center stk-theme_44603__mb_2 stk-theme_44603__style_font_style-1634213619491 stk-theme_44603__color_44603_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\">Advanced RTE Feature COCOMO Modeling</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"align-center stk-theme_44603__mb_2 stk-theme_44603__color_44603_custom_color_3 stk-reset stk-theme_44603__style_font_style-1628517294418\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">Software Development&nbsp;</strong><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">(Elaboration and Construction)</strong></p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-theme_44603__style_font_style-1628517328397 stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">Effort</p><p class=\"stk-theme_44603__color_44603_custom_color_3 stk-reset stk-theme_44603__style_font_style-1634567191898\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">169.1 person-months</strong></p></div><div data-col-width=\"4\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-theme_44603__style_font_style-1628517328397 stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">Schedule</p><p class=\"stk-theme_44603__color_44603_custom_color_3 stk-reset stk-theme_44603__style_font_style-1634567191898\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">18.8 months</strong></p></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-theme_44603__style_font_style-1628517328397 stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\">Cost</p><p class=\"stk-theme_44603__color_44603_custom_color_3 stk-reset stk-theme_44603__style_font_style-1634567191898\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">$1,814,399</strong></p></div></div><hr class=\"stk-theme_44603__separator_basic_divider stk-reset stk-mobile-hidden\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-theme_44603__style_font_style-1628517328397 stk-reset stk-theme_44603__color_44603_custom_color_2\" data-ce-tag=\"paragraph\">total equivalent size</p><p class=\"stk-theme_44603__color_44603_custom_color_3 stk-reset stk-theme_44603__style_font_style-1634567191898\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">39836 SLOC</strong></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-theme_44603__style_font_style-1628517328397 stk-reset stk-theme_44603__color_44603_custom_color_2\" data-ce-tag=\"paragraph\">effort adjustment factor (EAF)</p><p class=\"stk-theme_44603__color_44603_custom_color_3 stk-reset stk-theme_44603__style_font_style-1634567191898\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">1.00</strong></p></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_2 stk-reset\"/><div class=\"stk-theme_44603__mb_15 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"7\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517294418 stk-theme_44603__color_44603_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Acquisition Phase Distribution</strong></p><table class=\"stk-table stk-reset stk-theme_44603__style_small_text stk-table--bordered_hv stk-theme_44603__var_44603_custom_color_3\" data-responsive-type=\"list\" data-ce-tag=\"table\"><colgroup><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2725\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2726\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2727\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2728\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"2729\"/></colgroup><thead class=\"stk-reset\"><tr class=\"stk-theme_44603__style_small_text stk-reset stk-table-row\"><th class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_2 stk-reset stk-table-cell\" data-stk-css=\"stkikf1L\" data-ce-tag=\"th\">Phase</th><th class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_2 stk-reset stk-table-cell\" data-stk-css=\"stkIIQ4X\" data-ce-tag=\"th\">Effort</th><th class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_2 stk-reset stk-table-cell\" data-stk-css=\"stkBfjGs\" data-ce-tag=\"th\">Schedule</th><th class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_2 stk-reset stk-table-cell\" data-stk-css=\"stk0Dom4\" data-ce-tag=\"th\">Average Staff</th><th class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_2 stk-reset stk-table-cell\" data-stk-css=\"stkEgTiO\" data-ce-tag=\"th\">Cost</th></tr></thead><tbody class=\"stk-reset\"><tr class=\"stk-reset stk-table-row\"><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkGWQkd\" data-ce-tag=\"td\" data-cell-header=\"Phase\"><strong class=\"stk-reset\">Inception</strong></td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkH3Ix6\" data-ce-tag=\"td\" data-cell-header=\"Effort\">10.1</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkByBvj\" data-ce-tag=\"td\" data-cell-header=\"Schedule\">2.3</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkUH1nA\" data-ce-tag=\"td\" data-cell-header=\"Average Staff\">4.3</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkzFZi3\" data-ce-tag=\"td\" data-cell-header=\"Cost\">$108864</td></tr><tr class=\"stk-reset stk-table-row\"><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkYHfi9\" data-ce-tag=\"td\" data-cell-header=\"Phase\"><strong class=\"stk-reset\">Elaboration</strong></td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stk_8nZR\" data-ce-tag=\"td\" data-cell-header=\"Effort\">40.6</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkU9VII\" data-ce-tag=\"td\" data-cell-header=\"Schedule\">7.0</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkDR1HR\" data-ce-tag=\"td\" data-cell-header=\"Average Staff\">5.8</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stk6tigd\" data-ce-tag=\"td\" data-cell-header=\"Cost\">$435456</td></tr><tr class=\"stk-reset stk-table-row\"><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkUB8wU\" data-ce-tag=\"td\" data-cell-header=\"Phase\"><strong class=\"stk-reset\">Construction</strong></td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkGtdaP\" data-ce-tag=\"td\" data-cell-header=\"Effort\">128.5</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkj3XOc\" data-ce-tag=\"td\" data-cell-header=\"Schedule\">11.7</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkUWCre\" data-ce-tag=\"td\" data-cell-header=\"Average Staff\">11.0</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkWBB95\" data-ce-tag=\"td\" data-cell-header=\"Cost\">$1378944</td></tr><tr class=\"stk-reset stk-table-row\"><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkUx58G\" data-ce-tag=\"td\" data-cell-header=\"Phase\"><strong class=\"stk-reset\">Transition</strong></td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkMZqn4\" data-ce-tag=\"td\" data-cell-header=\"Effort\">20.3</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkqKsBH\" data-ce-tag=\"td\" data-cell-header=\"Schedule\">2.3</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkuuPgV\" data-ce-tag=\"td\" data-cell-header=\"Average Staff\">8.7</td><td class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_3 stk-reset stk-table-cell\" data-stk-css=\"stkvEL1p\" data-ce-tag=\"td\" data-cell-header=\"Cost\">$217728</td></tr></tbody></table></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/41bba677-82a7-4ed7-ba8b-e07e0cc32877/\" data-image-id=\"175790\" data-image-name=\"BvB-general.svg\" class=\"stk-image stk-reset\" width=\"563\" height=\"400\" loading=\"lazy\"/></div><div class=\"stk-hotspots\" style=\"--stk-image-width:563px\"><div data-stk-top=\"57.134278539780176\" data-stk-left=\"12.978208192126917\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot--anim_pulse stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-ce-tag=\"hotspot\" data-stk-show=\"mouseover\" data-stk-id=\"2762\" data-stk-footnote-link=\"2762\" style=\"top:57.134278539780176%;left:12.978208192126917%\"><div style=\"display:none\" data-stk-footnote-body=\"2762\" data-hotspot-footnote-id=\"2762\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Inception Phase&nbsp;</strong></p><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_05 stk-reset\"/><p class=\"stk-theme_44603__style_small_text stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\">Total cost: $108,864</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">Average staff: 4.3 people</p></div></div></div><div data-stk-top=\"47.25999310100466\" data-stk-left=\"30.12686484350069\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot--anim_pulse stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-stk-show=\"mouseover\" data-ce-tag=\"hotspot\" data-stk-id=\"2767\" data-stk-footnote-link=\"2767\" style=\"top:47.25999310100466%;left:30.12686484350069%\"><div style=\"display:none\" data-stk-footnote-body=\"2767\" data-hotspot-footnote-id=\"2767\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_44603__style_small_text stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Elaboration Phase</strong></p><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_05 stk-reset\"/><p class=\"stk-theme_44603__style_small_text stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\">Total cost: $435,456</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">Average staff: 5.8 people</p></div></div></div><div data-stk-top=\"7.488565639269932\" data-stk-left=\"66.56776022766996\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot--anim_pulse stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-stk-show=\"mouseover\" data-ce-tag=\"hotspot\" data-stk-id=\"2772\" data-stk-footnote-link=\"2772\" style=\"top:7.488565639269932%;left:66.56776022766996%\"><div style=\"display:none\" data-stk-footnote-body=\"2772\" data-hotspot-footnote-id=\"2772\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_44603__style_small_text stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Construction Phase</strong></p><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_05 stk-reset\"/><p class=\"stk-theme_44603__style_small_text stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\">Total cost: $1,378,944</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">Average staff: 11.0 people</p></div></div></div><div data-stk-top=\"17.0885653714128\" data-stk-left=\"92.29074520473063\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot--anim_pulse stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-stk-show=\"mouseover\" data-ce-tag=\"hotspot\" data-stk-id=\"2777\" data-stk-footnote-link=\"2777\" style=\"top:17.0885653714128%;left:92.29074520473063%\"><div style=\"display:none\" data-stk-footnote-body=\"2777\" data-hotspot-footnote-id=\"2777\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_44603__style_small_text stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Transition Phase</strong></p><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_05 stk-reset\"/><p class=\"stk-theme_44603__style_small_text stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\">Total cost: $217,728</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">Average staff: 8.7 people</p></div></div></div></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_3 align-left stk-reset\" data-ce-tag=\"paragraph\">It should be noted that the <strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">above $1.8M estimate for a single advanced feature,</strong> <strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">also</strong> <strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">excludes the additional support costs</strong> required for the development of a product ready feature:</p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_3\" data-ce-tag=\"paragraph\">A full time <a class=\"stk-reset\" href=\"https://www.indeed.com/career/senior-product-manager/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\">Senior Product Manager</a><sup class=\"stk-reset\">***</sup> for:</p></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><ul class=\" stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_3\" data-ce-tag=\"list-item\">6-10 months prior to the Inception/Discovery Phase</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_3\" data-ce-tag=\"list-item\">107.0 person-months throughout the project</li></ul></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_3\" data-ce-tag=\"paragraph\">A full time <a class=\"stk-reset\" href=\"https://www.indeed.com/career/senior-product-designer/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\">Senior Product Designer</a><sup class=\"stk-reset\">****</sup> for:</p></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><ul class=\" stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_3\" data-ce-tag=\"list-item\">1 week during the project</li></ul></div></div></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">Given the nature of this particular advanced feature, it’s definitely not a build-and-forget project.</p><p class=\" stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">An engineering team would be required to constantly monitor changes to both MS Word and Google Docs, and play catch up with those developments. Demands also change and evolve over time, after the initial feature has been developed and launched.</p><p class=\" stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">Therefore, extensive engineering time and resources would be required to both maintain and evolve the feature to keep pace with market changes. </p></div></div></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_44603__mb_3\" data-stk-css=\"stkyNn6q\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-theme_44603__pad_ver_2 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_44603__mb_3 stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkIwLCm\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">MAINTENANCE COST</strong></p><hr class=\"stk-theme_44603__mb_05 stk-theme_44603__separator_divider-1634298883224 stk-reset\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">$21,458</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1628517714937 stk-reset\" data-ce-tag=\"paragraph\">yearly for a single feature, ongoing</p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1634213619491 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Ongoing Maintenance – 1 x RTE Feature Cost Estimate</strong> <strong class=\"stk-reset\">(excl. core editor)</strong></p><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">Expect to dedicate a minimum 2 person-months full time per year, every year of the RTEs life, of <a class=\"stk-reset\" href=\"https://www.indeed.com/career/senior-software-engineer/salaries/Silicon-Valley--CA\" target=\"_blank\">Senior Software Engineer</a><sup class=\"stk-reset\">**</sup> resources, to keep the feature afloat.</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">This work would include browser changes and various edge cases that emerge.</li></ul><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-reset stk-theme_44603__mb_15\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">EQUALS =</strong> <strong class=\"stk-reset\">$21,458** yearly in development cost for a single feature, ongoing</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">PLUS</strong></p><ul class=\" stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">A full time <a class=\"stk-reset\" href=\"https://www.indeed.com/career/senior-product-manager/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\">Senior Product Manager</a><sup class=\"stk-reset\">***</sup> throughout any maintenance work.</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">A full time <a class=\"stk-reset\" href=\"https://www.indeed.com/career/senior-product-designer/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\">Senior Product Designer</a><sup class=\"stk-reset\">****</sup> sporadically during maintenance work.</li></ul></div></div><div class=\"stk-grid stk-theme_44603__mb_15 stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkj-B0b\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">EXTENSIBILITY COST<br></strong></p><hr class=\"stk-theme_44603__mb_05 stk-reset stk-theme_44603__separator_divider-1634298883224\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">$64,374</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_font_style-1628517714937 stk-reset\" data-ce-tag=\"paragraph\">for a single feature, biannually ongoing</p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1634213619491 stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Long-term Extensibility – 1 x RTE Feature Cost Estimate</strong> <strong class=\"stk-reset\">(excl. core editor)</strong></p><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">Every other year at a minimum, expect to dedicate at least 6 person-months of full time <a class=\"stk-reset\" href=\"https://www.indeed.com/career/senior-software-engineer/salaries/Silicon-Valley--CA\" target=\"_blank\">Senior Software Engineer</a><sup class=\"stk-reset\">**</sup> resources, to account for larger changes in MS Word and Google Docs.</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">This is required due to Microsoft, Google and Apple regularly changing their apps, which frequently breaks the paste feature, and the dev team must be able to react quickly to keep pace.</li></ul><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_15 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">EQUALS =</strong> <strong class=\"stk-reset\">$64,374** in development cost for a single feature, biannually ongoing</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">PLUS</strong></p><ul class=\" stk-theme_44603__mb_15 stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">A full time <a href=\"https://www.indeed.com/career/senior-product-manager/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\" class=\"stk-reset\">Senior Product Manager</a>*** throughout any extensibility work.</li><li class=\"stk-list-item stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"list-item\">A full time <a href=\"https://www.indeed.com/career/senior-product-designer/salaries/Silicon-Valley--CA?from=top_sb\" target=\"_blank\" class=\"stk-reset\">Senior Product Designer</a>**** sporadically during extensibility work.</li></ul></div></div><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_15 stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Note:</strong> All estimates exclude on-costs, RSUs and bonuses</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">* Using the <a href=\"http://softwarecost.org/tools/COCOMO/\" target=\"_blank\" class=\"stk-reset\">Basic COCOMO Model</a> (Accessed 1 July 2022)</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">** Average base salary for a Senior Software Engineer is US$128,749 per year in Silicon Valley, CA </p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">*** Estimated base salary for a Senior Product Manager is US$157,340 per year in Silicon Valley, CA </p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">**** Estimated base salary for a Senior Product Designer is US$145,700 per year in Silicon Valley, CA</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">(Accessed 1 July 2022)</p><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\">A person-month is equivalent to approximately 160 hours of labor, and is the amount of work performed by a single average worker in one month (ie. 12 person-month project will take 4 developers 3 months work to finish). A person-year is the total effort in person-months divided by twelve, to estimate the project length in years. </p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As this shows, the typical cost of building even just a single feature of an RTE, isn’t small.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">An in-house build approach may deliver customisations. But for RTEs, it definitely adds greater uncertainty into a TCO equation that’s already fraught with technical complexities and unknowns – RTEs are in a state of constant evolution.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Assembling reusable software tools that scale, is the solution.</strong></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last valign-top\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkdmrk_\" data-anim-zoom=\"100\" data-anim-shift=\"40\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"left\" data-anim-duration=\"0.7000000000000001\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"QtyXr\" data-anim=\"true\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-reset stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\"><b class=\"stk-reset\"><strong class=\"stk-reset\">The Harvard BR</strong></b></p><hr class=\"stk-reset stk-theme_44603__mb_05 stk-theme_44603__separator_divider-1498128612642\"/><p class=\"stk-theme_44603__style_small_text stk-reset\" data-ce-tag=\"paragraph\">The Harvard Business Review examined 1,471 projects and reported that one in six IT projects had an <a class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\" href=\"https://hbr.org/2011/09/why-your-it-project-may-be-riskier-than-you-think\" target=\"_blank\">average cost overrun of 200%</a> and a schedule overrun of almost 70%.</p></div></div></div></div></div></div><div class=\"stk-grid stk-theme_44603__mb_4\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_44603__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-stk-css-m=\"stk25GzD\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f3a7c9d2-7d39-48a1-afa1-95637e8ddcea/\" data-image-id=\"128180\" data-image-name=\"05.svg\" width=\"101\" height=\"101\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_44603__style_medium_header stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-2.5\">Complex Questions are Hard</h3></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-stk-css=\"stkW02Jd\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d0cfdb83-236b-44c4-9a21-fed79b8de1f6/\" data-image-id=\"128469\" data-image-name=\"up.svg\" width=\"100\" height=\"100\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_4\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#toc\" target=\"\">Back </a><a class=\"stk-reset\" href=\"#toc\">to the table of contents</a></p></div></div><div class=\"stk-theme_44603__mb_15 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Companies are under pressure. There simply isn’t enough time to build everything their users need. However, a buy vs build decision (or any other approach) is never orderly, neat, or simple. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Hard choices are never easy. The companies focused on rapid transformation, have already made the move. They’ve gone from slow, project-focused iteration to swift innovation and continuous deployment. And they’re growing. Fast.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">They’re leveraging the velocity of dev team talent focused on company differentiation, not projects outside their specialization. They’ve taken a plastic ‘digital factory’ approach and assembled an agile software stack, instead of custom-building. According to <a href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/saas-open-source-and-serverless-a-winning-combination-to-build-and-scale-new-businesses\" target=\"_blank\" class=\"stk-reset\">McKinsey,</a> “the core principle of these approaches is to both maximize the value of what already exists and reduce the burdens of development and maintenance.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The same report notes “This tech fusion enables companies to radically simplify and accelerate the development process for both launching and scaling new businesses.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">It’s producing scalability, savings, and speed-to-market.</strong></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"3\" class=\"valign-middle stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkAEo-y\" data-anim-zoom=\"100\" data-anim-shift=\"40\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"left\" data-anim-duration=\"0.7000000000000001\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"MrEHP\" data-anim=\"true\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_44603__mb_05 stk-theme_44603__separator_divider-1498128612642 stk-reset\"/><p class=\"stk-theme_44603__style_font_style-1629952134752 stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\">80%</p><p class=\"stk-theme_44603__style_font_style-1628517714937 stk-reset\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"https://www.gartner.com/en/newsroom/press-releases/2021-06-10-gartner-says-the-majority-of-technology-products-and-services-will-be-built-by-professionals-outside-of-it-by-2024\" target=\"_blank\">of technology products</a> and services will be built by professionals outside<br>technology by 2024</p></div></div></div></div><div class=\"stk-theme_44603__mb_15 stk-grid stk-layout__overhangs_both\" data-stk-css=\"stkf3F2K\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_44603__pad_ver_2\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"align-center stk-reset stk-theme_44603__style_font_style-1634213619491\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">For rich text editors,</strong><br data-gtm-vis-has-fired-10171822_255=\"1\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">the buy vs build debate encapsulates</strong></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"6\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Burdens of RTE Custom-Build</strong></p><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_05 stk-reset\"/><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Complexity of build + maintenance + cost</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Slower time-to-market </li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Stretches dev resources</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Lacks scalability + agility</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">In-house maintenance of risk </li></ul></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Benefits of RTE Buy + Assemble</strong></p><hr class=\"stk-theme_44603__separator_basic_divider stk-theme_44603__mb_05 stk-reset\"/><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Simplification of installation + maintenance </li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Accelerates time to market </li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Focuses dev resources</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Delivers scalability and agility</li><li class=\"stk-list-item stk-reset\" data-ce-tag=\"list-item\">Specialist maintenance of risks</li></ul></div></div></div></div><div class=\"stk-grid stk-theme_44603__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">For RTEs, a buy-and-assemble component approach minimises custom-build outside a company’s expertise, facilitates continuous deployment of software from a reusable stack and maximises dev talent, who pick the exact tools they need for every project.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Then when a market opportunity opens, the decision is easy. It’s not whether to build the feature or product. It’s not whether to buy. Instead, the decision focuses on what aligns with the company’s market strategies. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">By buying proven components, it scales a new way of working. </strong></p><p class=\"stk-reset stk-theme_44603__mb_2\" data-ce-tag=\"paragraph\">That incubates a democratized digital culture.</p></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkKTLaR\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/9a98a148-6e9c-43e1-85ef-97873497eccc/\" data-image-id=\"128214\" data-image-name=\"“.svg\" width=\"27\" height=\"21\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__style_font_style-1634566200202 stk-theme_44603__mb_05\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stk5nEgK\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">Growth in digital data, <a class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\" href=\"https://www.gartner.com/en/newsroom/press-releases/2021-02-15-gartner-forecasts-worldwide-low-code-development-technologies-market-to-grow-23-percent-in-2021\" target=\"_blank\">low-code development tools</a> and artificial intelligence (AI)-assisted development are among the many factors that enable the democratization of technology development beyond IT professionals.</p><p class=\"stk-reset stk-theme_44603__style_small_text stk-theme_44603__mb_0\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stk7Zwti\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">- Rajesh Kandaswamy</p><p class=\"stk-reset stk-theme_44603__style_font_style-1628517714937 stk-theme_44603__color_44603_custom_color_2\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkQ9tqp\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">Gartner’s Research Vice President</p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628517328397 stk-theme_44603__color_44603_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-3\">Afterword</p><h3 class=\"stk-theme_44603__style_medium_header stk-theme_44603__mb_2 stk-reset\" data-ce-tag=\"paragraph\">Remote Work is Driving Cloud</h3><p class=\"stk-reset\" data-ce-tag=\"paragraph\">There’s never a single decision. It’s always many.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Technically not part of the buy/build choice, the decision <em class=\"stk-reset\">afterwards is</em> equally contentious – Cloud (shared or owned) vs Self-Hosted (virtual or physical). It relates to how you’ll consume and use a rich text editor. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Digital transformation is forcing hard decisions based on having an agile, scalable tech stack that’s accessible from anywhere. Remote work is here to stay – so every organization is reassessing its IT infrastructure, to satisfy work-anywhere, sell-anywhere and learn-anywhere capabilities. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In a <a href=\"https://www.gartner.com/en/newsroom/press-releases/2021-06-22-gartner-forecasts-51-percent-of-global-knowledge-workers-will-be-remote-by-2021\" target=\"_blank\" class=\"stk-reset\">recent Gartner report</a> their Senior Research Director, Ranjit Atwal, said “Through 2024, organizations will be forced to bring forward digital business transformation plans by at least five years. Those plans will have to adapt to a post-COVID-19 world that involves permanently higher adoption of remote work and digital touchpoints.” </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Given such momentous changes, it’s fair to say Cloud is the future.</strong> If your tech stack doesn’t keep up, you risk becoming redundant.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">While G Suite (Google Docs, Sheet, Slides) and MS Office 365 are killing the offline Office Suites, equally Google Drive, One Drive, and Photos are affecting the sales of external hard drives. Traditional software and hardware setups are dying. Fast.</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_44603__mb_0 stk-reset stk-image-figure\" data-stk-css=\"stkBQ4gO\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d0cfdb83-236b-44c4-9a21-fed79b8de1f6/\" data-image-id=\"128469\" data-image-name=\"up.svg\" width=\"100\" height=\"100\" class=\"stk-image stk-reset\" loading=\"lazy\"/></div></figure><p class=\"stk-reset stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_4\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#toc\" target=\"\">Back </a><a class=\"stk-reset\" href=\"#toc\">to the table of contents</a></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_44603__mb_15 stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stktog-F\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stk6JCiu\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585880816 stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">GARTNER REPORT</strong></p><hr class=\"stk-theme_44603__separator_divider-1634299654732 stk-theme_44603__mb_05 stk-reset\"/><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Gartner estimates remote working <a href=\"https://www.gartner.com/en/newsroom/press-releases/2021-06-22-gartner-forecasts-51-percent-of-global-knowledge-workers-will-be-remote-by-2021\" target=\"_blank\" class=\"stk-reset\">knowledge workers to be 51%</a> of the worldwide workforce by the end of 2021 – up from 27% in 2019, while <a href=\"https://www.gartner.com/en/newsroom/press-releases/2021-06-22-gartner-forecasts-51-percent-of-global-knowledge-workers-will-be-remote-by-2021\" target=\"_blank\" class=\"stk-reset\">remote workers will represent 32%</a> of all employees worldwide – up from 17% in 2019.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid stk-theme_44603__mb_3\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">According to the ResearchGate “<a href=\"https://www.researchgate.net/publication/228800453_Self_Hosting_vs_Cloud_Hosting_Accounting_for_the_security_impact_of_hosting_in_the_cloud\" target=\"_blank\" class=\"stk-reset\">Self-Hosting vs Cloud Hosting</a>” report, “The resource-elasticity offered by cloud providers eliminates the up-front costs of building a self-hosted infrastructure and removes delays by allowing tenants to scale up their resources on demand.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">For rich text editors, Cloud offers a level of scalability that Self-Hosting can’t. </strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s easier to set up and requires no actual installation of code – APIs do everything. Updates automatically deploy, it’s accessible anywhere, extra resources can be added as needed, in seconds, and scaling up is fast – as and when growth happens.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Fundamentally, Self-Hosting is the opposite. However, there’s 100% control of when and what’s deployed, developer resources do the work of deploying code to servers and updating it when they’re released. The balls are all in your court, all the time.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The decision splits between agile growth, or control.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Which are you choosing?</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_44603__mb_4 stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkZgzRN\" data-anim=\"true\" data-anim-name=\"preset-slideInUp\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_44603__separator_divider-1498128612642 stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585803915 align-center stk-reset\" data-ce-tag=\"paragraph\">Download a PDF of this white paper<br>and save it for later</p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><a class=\"stk-theme_44603__stk-btn_1628586253530 stk-theme_44603__style_font_style-1628586133109 align-center stk-reset\" data-stk-css=\"stkUE7TX\" data-stk-button=\"1\" href=\"https://www.tiny.cloud/buy-vs-build-whitepaper-opt-in\" target=\"_blank\" data-ce-tag=\"button\">Download</a></div><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_font_style-1628585803915 align-center ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_44603__separator_divider-1498128612642 stk-theme_44603__mb_4 stk-reset\"/></div></div><div class=\"stk-layout__overhangs_both stk-theme_44603__mb_0 stk-grid\" data-stk-css=\"stkWQDlk\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-theme_44603__pad_ver_2 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_44603__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"align-center stk-theme_44603__style_font_style-1628517294418 stk-reset stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">TINY TECHNOLOGIES</strong></p><p class=\"stk-reset align-left stk-theme_44603__color_44603_custom_color_0\" data-ce-tag=\"paragraph\">Tiny is the creator of <strong class=\"stk-reset\">TinyMCE, the world’s most trusted WYSIWYG component</strong> ﻿that enables rich text editing capabilities within an application. Scalable, adaptable and reusable, it powers 100M+ projects worldwide and more than 1.5M+ developers use it to add velocity to their tech stacks, so they can build and ship their projects faster.</p><p class=\"align-left stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\">There’s tens of thousands of market-leading applications <a href=\"https://www.tiny.cloud/powered-by-tiny\" target=\"_blank\" class=\"stk-reset\">powered by Tiny</a> globally. It’s helped SaaS companies, large enterprises, content creators and publishers to launch, grow and scale their businesses, reduce their development and technical debt burdens, minimize ongoing support tickets and boost the productivity of their users.﻿</p><hr class=\"stk-theme_44603__separator_basic_divider stk-reset\"/></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_44603__style_small_text stk-theme_44603__color_44603_custom_color_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">COST ESTIMATE CURRENCY</strong><br>All cost estimates quoted are in US$</p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text stk-theme_44603__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">ANNUAL COST ESTIMATE UPDATES</strong></p><p class=\"stk-theme_44603__color_44603_custom_color_0 stk-theme_44603__style_small_text stk-reset\" data-ce-tag=\"paragraph\">This post is accurate at the time of publishing. The TinyMCE <a href=\"https://www.tiny.cloud/buy-vs-build-whitepaper\" target=\"_blank\" class=\"stk-reset\">Buy vs Build Whitepaper</a>, COCOMO cost estimate articles (<a href=\"https://www.tiny.cloud/blog/accessibility-checker-cost-estimate/\" target=\"_blank\" class=\"stk-reset\">Accessibility Checker</a>, <a href=\"https://www.tiny.cloud/blog/spell-checker-cost-estimate/\" target=\"_blank\" class=\"stk-reset\">Spell Checker Pro</a>, PowerPaste) and Buy vs Build blog posts (<a href=\"https://www.tiny.cloud/blog/cost-of-building-rich-text-editor/\" target=\"_blank\" class=\"stk-reset\">Costs</a>, <a href=\"https://www.tiny.cloud/blog/developer-velocity-effects\" target=\"_blank\" class=\"stk-reset\">Developer Velocity</a>, <a href=\"https://www.tiny.cloud/blog/rich-text-editor-api-and-speed-to-market/\" target=\"_blank\" class=\"stk-reset\">APIs</a>) are all updated annually, in July.</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><style data-stk-css=\"stkUE7TX\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUE7TX\"]:not(#stk):not(#stk):not(style) {\n    align-self: stretch\n  }\n</style><style data-stk-css=\"stkbZHcF\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkbZHcF\"]:not(#stk):not(#stk):not(style) {\n    align-self: stretch\n  }\n</style><style data-stk-css=\"stkBQ4gO\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkBQ4gO\"]:not(#stk):not(#stk):not(style) {\n    width: 20px\n  }\n</style><style data-stk-css=\"stkW02Jd\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkW02Jd\"]:not(#stk):not(#stk):not(style) {\n    width: 20px\n  }\n</style><style data-stk-css=\"stkjjuNk\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkjjuNk\"]:not(#stk):not(#stk):not(style) {\n    width: 20px\n  }\n</style><style data-stk-css=\"stkN5TsU\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkN5TsU\"]:not(#stk):not(#stk):not(style) {\n    width: 20px\n  }\n</style><style data-stk-css=\"stkS0STW\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkS0STW\"]:not(#stk):not(#stk):not(style) {\n    width: 20px\n  }\n</style><style data-stk-css=\"stk5pdeB\" class=\"\" media=\"(min-width: 769px)\">\n  [data-stk-css=\"stk5pdeB\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1);\n    height: 420px;\n    border-radius: 30px 30px 0px 0px\n  }\n</style><style data-stk-css=\"stko_LSb\" class=\"\" media=\"all\">\n  [data-stk-css=\"stko_LSb\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1);\n    height: 420px;\n    border-radius: 30px 30px 0px 0px\n  }\n</style><style data-stk-css=\"stkd1L2z\" class=\"\" media=\"(min-width: 769px)\">\n  [data-stk-css=\"stkd1L2z\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1);\n    height: 420px;\n    border-radius: 30px 30px 0px 0px\n  }\n</style><style data-stk-css=\"stk6JCiu\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk6JCiu\"]:not(#stk):not(#stk):not(style) {\n    padding: 50px;\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stk5AUsJ\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk5AUsJ\"]:not(#stk):not(#stk):not(style) {\n    background: #FFF0F1\n  }\n</style><style data-stk-css=\"stkUgMVG\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUgMVG\"]:not(#stk):not(#stk):not(style) {\n    background: #FFF0F1\n  }\n</style><style data-stk-css=\"stkr3QyH\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkr3QyH\"]:not(#stk):not(#stk):not(style) {\n    background: #FFF0F1\n  }\n</style><style data-stk-css=\"stkR3027\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkR3027\"]:not(#stk):not(#stk):not(style) {\n    background: #FFF7F0\n  }\n</style><style data-stk-css=\"stknIsKd\" class=\"\" media=\"all\">\n  [data-stk-css=\"stknIsKd\"]:not(#stk):not(#stk):not(style) {\n    background: #E0E7FF\n  }\n</style><style data-stk-css=\"stkWMFxk\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkWMFxk\"]:not(#stk):not(#stk):not(style) {\n    background: #EFF1F5\n  }\n</style><style data-stk-css=\"stkMpHl0\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkMpHl0\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1);\n    padding: 50px\n  }\n</style><style data-stk-css=\"stk2QfNj\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk2QfNj\"]:not(#stk):not(#stk):not(style) {\n    background: linear-gradient(0deg, #FFF0F1 93%, #fff 30%) no-repeat top center/100%\n  }\n</style><style data-stk-css=\"stkDl1-0\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkDl1-0\"]:not(#stk):not(#stk):not(style) {\n    background: #6686FF\n  }\n</style><style data-stk-css=\"stkCoWkx\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkCoWkx\"]:not(#stk):not(#stk):not(style) {\n    background: #4D71FF\n  }\n</style><style data-stk-css=\"stk2rZzX\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk2rZzX\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1)\n  }\n</style><style data-stk-css=\"stkikf1L\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkikf1L\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkIIQ4X\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkIIQ4X\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkBfjGs\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkBfjGs\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stk0Dom4\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk0Dom4\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkEgTiO\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkEgTiO\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkGWQkd\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkGWQkd\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1);\n    color: #FF6666\n  }\n</style><style data-stk-css=\"stkH3Ix6\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkH3Ix6\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkByBvj\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkByBvj\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkUH1nA\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUH1nA\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkzFZi3\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkzFZi3\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkYHfi9\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkYHfi9\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1);\n    color: #FF7600\n  }\n</style><style data-stk-css=\"stk_8nZR\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk_8nZR\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkU9VII\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkU9VII\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkDR1HR\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkDR1HR\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stk6tigd\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk6tigd\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkUB8wU\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUB8wU\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1);\n    color: #00C0CD\n  }\n</style><style data-stk-css=\"stkGtdaP\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkGtdaP\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkj3XOc\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkj3XOc\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkUWCre\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUWCre\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkWBB95\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkWBB95\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkUx58G\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUx58G\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1);\n    color: #00BC84\n  }\n</style><style data-stk-css=\"stkMZqn4\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkMZqn4\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkqKsBH\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkqKsBH\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkuuPgV\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkuuPgV\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkvEL1p\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkvEL1p\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(249, 250, 251, 1)\n  }\n</style><style data-stk-css=\"stkJaqvr\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkJaqvr\"]:not(#stk):not(#stk):not(style) {\n    padding: 40px\n  }\n</style><style data-stk-css=\"stkyNn6q\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkyNn6q\"]:not(#stk):not(#stk):not(style) {\n    background: #233477\n  }\n</style><style data-stk-css=\"stkf3F2K\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkf3F2K\"]:not(#stk):not(#stk):not(style) {\n    background: #FFF7F0\n  }\n</style><style data-stk-css=\"stkVa0zJ\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkVa0zJ\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-anim-name=\"ybonj\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"ybonj\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(-100px)\n  }\n</style><style data-anim-name=\"ybonj\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"ybonj\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"ybonj\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(-100px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"ybonj\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(-100px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"ybonj\",\n      \"delay\": 0,\n      \"duration\": 900\n    }\n  }\n</script><style data-anim-name=\"IWZav\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"IWZav\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(90px)\n  }\n</style><style data-anim-name=\"IWZav\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"IWZav\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"IWZav\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(90px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"IWZav\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(90px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"IWZav\",\n      \"delay\": 200,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkNt1r3\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkNt1r3\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-stk-css=\"stk10r2f\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk10r2f\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"FuyHe\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"FuyHe\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(-120px)\n  }\n</style><style data-anim-name=\"FuyHe\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"FuyHe\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"FuyHe\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(-120px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"FuyHe\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(-120px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"FuyHe\",\n      \"delay\": 500,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkK5VGz\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkK5VGz\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-anim-name=\"kHGDH\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"kHGDH\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(-120px)\n  }\n</style><style data-anim-name=\"kHGDH\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"kHGDH\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"kHGDH\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(-120px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"kHGDH\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(-120px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"kHGDH\",\n      \"delay\": 100,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkwZ8SK\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwZ8SK\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-anim-name=\"uommM\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"uommM\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(90px)\n  }\n</style><style data-anim-name=\"uommM\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"uommM\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"uommM\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(90px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"uommM\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(90px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"uommM\",\n      \"delay\": 0,\n      \"duration\": 800\n    }\n  }\n</script><style data-stk-css=\"stkOv3xi\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkOv3xi\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-anim-name=\"pDqYQ\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"pDqYQ\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(-120px)\n  }\n</style><style data-anim-name=\"pDqYQ\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"pDqYQ\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"pDqYQ\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(-120px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"pDqYQ\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(-120px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"pDqYQ\",\n      \"delay\": 0,\n      \"duration\": 1200.0000000000002\n    }\n  }\n</script><style data-stk-css=\"stkCpLxk\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkCpLxk\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-anim-name=\"PSxLR\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"PSxLR\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(110px)\n  }\n</style><style data-anim-name=\"PSxLR\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"PSxLR\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"PSxLR\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(110px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"PSxLR\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(110px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"PSxLR\",\n      \"delay\": 100,\n      \"duration\": 900\n    }\n  }\n</script><style data-stk-css=\"stkcGUV5\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkcGUV5\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-stk-css=\"stk9rsrK\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk9rsrK\"]:not(#stk):not(#stk):not(style) {\n    width: 150px\n  }\n</style><style data-anim-name=\"WQaSP\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"WQaSP\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(100px)\n  }\n</style><style data-anim-name=\"WQaSP\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"WQaSP\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"WQaSP\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(100px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"WQaSP\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(100px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"WQaSP\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-anim-name=\"BVceJ\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"BVceJ\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(-110px)\n  }\n</style><style data-anim-name=\"BVceJ\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"BVceJ\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"BVceJ\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(-110px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"BVceJ\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(-110px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"BVceJ\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkXqtIX\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkXqtIX\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"preset-fadeIn\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-fadeIn\"]:not(#stk):not([data-anim=\"false\"]) {\n    opacity: 0\n  }\n</style><style data-anim-name=\"preset-fadeIn\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-fadeIn\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"preset-fadeIn\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    opacity: 0\n  }\n</style><script data-anim-name=\"preset-fadeIn\" type=\"application/json\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"opacity\": 0,\n      \"offset\": 0\n    }, {\n      \"opacity\": 1,\n      \"offset\": 1\n    }],\n    \"options\": {\n      \"id\": \"preset-fadeIn\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkYMndf\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkYMndf\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"gaZQa\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"gaZQa\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><style data-anim-name=\"gaZQa\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"gaZQa\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"gaZQa\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"gaZQa\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(40px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"gaZQa\",\n      \"delay\": 0,\n      \"duration\": 700.0000000000001\n    }\n  }\n</script><style data-stk-css=\"stkomyJD\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkomyJD\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"OjbMW\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"OjbMW\"]:not(#stk):not([data-anim=\"false\"]) {\n    opacity: 0.3\n  }\n</style><style data-anim-name=\"OjbMW\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"OjbMW\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"OjbMW\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    opacity: 0.3\n  }\n</style><script type=\"application/json\" data-anim-name=\"OjbMW\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"opacity\": \"0.3\"\n    }, {\n      \"opacity\": \"1\"\n    }],\n    \"options\": {\n      \"id\": \"OjbMW\",\n      \"delay\": 300.00000000000006,\n      \"duration\": 500.0000000000001\n    }\n  }\n</script><style data-stk-css=\"stkaCzwA\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkaCzwA\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"CxyoJ\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"CxyoJ\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><style data-anim-name=\"CxyoJ\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"CxyoJ\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"CxyoJ\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"CxyoJ\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(40px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"CxyoJ\",\n      \"delay\": 0,\n      \"duration\": 700.0000000000001\n    }\n  }\n</script><style data-stk-css=\"stkfOLa0\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkfOLa0\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkIwLCm\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkIwLCm\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkj-B0b\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkj-B0b\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkdmrk_\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkdmrk_\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"QtyXr\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"QtyXr\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><style data-anim-name=\"QtyXr\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"QtyXr\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"QtyXr\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"QtyXr\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(40px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"QtyXr\",\n      \"delay\": 0,\n      \"duration\": 700.0000000000001\n    }\n  }\n</script><style data-stk-css=\"stktog-F\" class=\"\" media=\"all\">\n  [data-stk-css=\"stktog-F\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"gifCF\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"gifCF\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(50px)\n  }\n</style><style data-anim-name=\"gifCF\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"gifCF\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"gifCF\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(50px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"gifCF\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(50px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"gifCF\",\n      \"delay\": 0,\n      \"duration\": 700.0000000000001\n    }\n  }\n</script><style data-stk-css-m=\"stkdahL6\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stkdahL6\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    width: 70px\n  }\n</style><style data-stk-css-m=\"stkYyJ_C\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stkYyJ_C\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    width: 70px\n  }\n</style><style data-stk-css-m=\"stkrpitB\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stkrpitB\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    width: 70px\n  }\n</style><style data-stk-css-m=\"stkTPJ_c\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stkTPJ_c\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    width: 70px\n  }\n</style><style data-stk-css-m=\"stk25GzD\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stk25GzD\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    width: 70px\n  }\n</style><style data-stk-css=\"stkfRNA-\" class=\"\" media=\"(min-width: 769px)\">\n  [data-stk-css=\"stkfRNA-\"]:not(#stk):not(#stk):not(style) {\n    background: #ABEAEF;\n    background-repeat: no-repeat;\n    background-position: 50% 0%;\n    background-size: auto;\n    background-image: url('https://ucarecdn.com/5bfe1203-f2b7-447a-bf2d-4f0ee22f2233/')\n  }\n</style><style data-stk-css=\"stkdWZkL\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkdWZkL\"]:not(#stk):not(#stk):not(style) {\n    background: #ABEAEF\n  }\n</style><style data-stk-css-m=\"stkR1Q-C\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stkR1Q-C\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    background: #ABEAEF;\n    background-repeat: no-repeat;\n    background-image: url('https://ucarecdn.com/ed83a958-9e90-4fba-ab17-07e83dfe21ba/');\n    background-position: 50% 0%;\n    background-size: auto\n  }\n</style><style data-stk-css-m=\"stkFkaNm\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stkFkaNm\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1);\n    height: 230px;\n    border-radius: 30px 30px 0px 0px\n  }\n</style><style data-stk-css-m=\"stkwCvFC\" media=\"(max-width: 768px)\" class=\"\">\n  [data-stk-css-m=\"stkwCvFC\"]:not(#stk):not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1);\n    height: 230px;\n    border-radius: 30px 30px 0px 0px\n  }\n</style><style data-stk-css=\"stkAEo-y\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkAEo-y\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"MrEHP\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"MrEHP\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><style data-anim-name=\"MrEHP\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"MrEHP\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"MrEHP\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(40px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"MrEHP\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(40px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"MrEHP\",\n      \"delay\": 0,\n      \"duration\": 700.0000000000001\n    }\n  }\n</script><style data-stk-css=\"stkKTLaR\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkKTLaR\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk5nEgK\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk5nEgK\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk7Zwti\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk7Zwti\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkQ9tqp\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkQ9tqp\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk7NMKU\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk7NMKU\"]:not(#stk):not(#stk):not(style) {\n    width: 20px\n  }\n</style><style data-anim-name=\"nyxLA\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"nyxLA\"]:not(#stk):not([data-anim=\"false\"]) {\n    opacity: 0.01\n  }\n</style><style data-anim-name=\"nyxLA\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"nyxLA\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"nyxLA\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    opacity: 0.01\n  }\n</style><script type=\"application/json\" data-anim-name=\"nyxLA\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"opacity\": \"0.01\"\n    }, {\n      \"opacity\": \"1\"\n    }],\n    \"options\": {\n      \"id\": \"nyxLA\",\n      \"delay\": 0,\n      \"duration\": 300.00000000000017\n    }\n  }\n</script><style data-anim-name=\"WMqzA\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"WMqzA\"]:not(#stk):not([data-anim=\"false\"]) {\n    opacity: 0.01\n  }\n</style><style data-anim-name=\"WMqzA\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"WMqzA\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"WMqzA\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    opacity: 0.01\n  }\n</style><script type=\"application/json\" data-anim-name=\"WMqzA\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"opacity\": \"0.01\"\n    }, {\n      \"opacity\": \"1\"\n    }],\n    \"options\": {\n      \"id\": \"WMqzA\",\n      \"delay\": 200,\n      \"duration\": 300.00000000000017\n    }\n  }\n</script><style data-anim-name=\"kJsom\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"kJsom\"]:not(#stk):not([data-anim=\"false\"]) {\n    opacity: 0.01\n  }\n</style><style data-anim-name=\"kJsom\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"kJsom\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"kJsom\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    opacity: 0.01\n  }\n</style><script type=\"application/json\" data-anim-name=\"kJsom\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"opacity\": \"0.01\"\n    }, {\n      \"opacity\": \"1\"\n    }],\n    \"options\": {\n      \"id\": \"kJsom\",\n      \"delay\": 500,\n      \"duration\": 300.00000000000017\n    }\n  }\n</script><style data-stk-css=\"stkFP-gt\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkFP-gt\"]:not(#stk):not(#stk):not(style) {\n    align-self: stretch\n  }\n</style><style data-stk-css=\"stkWQDlk\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkWQDlk\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(77, 113, 255, 1)\n  }\n</style><style data-anim-name=\"preset-slideInUp\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-slideInUp\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translate3d(0, 100%, 0)\n  }\n</style><style data-anim-name=\"preset-slideInUp\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-slideInUp\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"preset-slideInUp\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translate3d(0, 100%, 0)\n  }\n</style><script data-anim-name=\"preset-slideInUp\" type=\"application/json\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translate3d(0, 100%, 0)\",\n      \"offset\": 0\n    }, {\n      \"transform\": \"none\",\n      \"offset\": 1\n    }],\n    \"options\": {\n      \"id\": \"preset-slideInUp\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkemQl3\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkemQl3\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkZgzRN\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkZgzRN\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stklh1cI\" class=\"\" media=\"all\">\n  [data-stk-css=\"stklh1cI\"]:not(#stk):not(#stk):not(style) {\n    max-width: 400px;\n    align-self: end;\n    margin-top: -250px\n  }\n</style><style data-stk-css=\"stk2wP8T\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk2wP8T\"]:not(#stk):not(#stk):not(style) {\n    background: #FFF0F1\n  }\n</style></div>","id":"997530f9-b95b-5fd9-bbb3-4b967483e7ac"}}},"pageContext":{"slug":"buy-vs-build-whitepaper","setkaPostId":21195}},"staticQueryHashes":["3504582416"]}