{"id":15009,"date":"2026-08-24T11:10:32","date_gmt":"2026-08-24T08:10:32","guid":{"rendered":"https:\/\/creativethemes.com\/blocksy\/?p=15009"},"modified":"2026-08-24T13:54:55","modified_gmt":"2026-08-24T10:54:55","slug":"bjarne-oldrup-case-study","status":"publish","type":"post","link":"https:\/\/creativethemes.com\/blocksy\/blog\/bjarne-oldrup-case-study\/","title":{"rendered":"How Bjarne Oldrup Accelerated Delivery While Reducing Web Development Costs"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Project management at Drupal agencies is <strong>frustratingly slow<\/strong>. Making simple changes like adding a menu item takes 8 steps, a couple of weeks, and racks up a \u20ac1,000 bill.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This is what <a href=\"https:\/\/astra.dk\/\" target=\"_blank\" rel=\"nofollow noreferrer noopener\">Astra<\/a> (Denmark\u2019s national center for science education) dealt with every day with the 3rd-party websites in their network. These sites collaborated with teachers, institutions, and policymakers to improve science education, offering resources and networking opportunities for science professionals.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Astra hired <a href=\"https:\/\/oldrup.dk\/en\/home\/\" target=\"_blank\" rel=\"nofollow noreferrer noopener\">Bjarne Oldrup<\/a> (web developer) to <strong>reduce turnaround time and web development costs<\/strong> for their 3rd-party websites. Bjarne worked out that switching to a <a href=\"https:\/\/wordpress.org\/\" target=\"_blank\" rel=\"nofollow noreferrer noopener\">WordPress<\/a> and <a href=\"https:\/\/creativethemes.com\/blocksy\/\" target=\"_blank\" rel=\"noreferrer noopener\">Blocksy<\/a> Theme setup would shorten execution time (from weeks to 15 minutes) and eliminate the need for costly Drupal agencies.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Finding Alternatives to Slow &amp; Costly Drupal Agencies<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A two-part alternative was found: <strong>swap Drupal for WordPress and bring development in-house.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Like Drupal, WordPress was free and open source. But unlike Drupal, WordPress had a much larger pool of talented developers, which meant that Astra could hire cost-effectively. A multitude of add-ons (like themes and plugins) were available at affordable prices, keeping development within budget. Take, for instance, Blocksy \u2013 it\u2019s free and comes with an optional <a href=\"https:\/\/creativethemes.com\/blocksy\/pricing\/\" target=\"_blank\" rel=\"noreferrer noopener\">Companion plugin<\/a> at a sustainable price of $149 per annum or a $499 one-time fee.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Along with reasonable price points, WordPress add-ons come feature-complete, so there\u2019s no need to build the website from scratch.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-995f960e wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:30%\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a8c7b46ad82e&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a8c7b46ad82e\" class=\"wp-block-image size-full has-custom-border wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"800\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/creativethemes.com\/blocksy\/wp-content\/uploads\/2026\/08\/Bjarne-Oldrup.jpg\" alt=\"Bjarne Oldrup\" class=\"wp-image-15011\" style=\"border-radius:5px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:70%\">\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>\u201cWith WordPress and a largely feature-complete theme like Blocksy, the in-house dev can implement, test, and deploy a new menu item before lunch,\u201d says Bjarne.<\/em><\/p>\n<\/blockquote>\n<\/div>\n<\/div>\n\n\n\n<p class=\"wp-block-paragraph\">That isn\u2019t to say WordPress add-ons are uncustomizable. There are plenty of non-proprietary WordPress add-ons that do not lock developers into the system, making it easy for in-house teams to create custom builds.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Testing a WordPress Tech Stack<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>The Gutenberg Editor and Blocksy Theme formed the best WordPress tech stack<\/strong> for ensuring Astra\u2019s 3rd-party websites were <strong>fast, secure, <a href=\"https:\/\/creativethemes.com\/blocksy\/blog\/website-accessibility-primer\/\" target=\"_blank\" rel=\"noreferrer noopener\">accessible<\/a>, and sustainable<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bjarne had used other page builders like Divi, but Gutenberg, being WordPress\u2019 native editor, was faster, integrated well with the core, and came equipped with powerful pre-built blocks and patterns that could be used to build entire websites.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Blocksy was deeply integrated with Gutenberg and had its own library of custom blocks and patterns to fill Gutenberg&#8217;s gaps.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>\u201cBlocksy took care of all the stuff that Gutenberg sucked at in the beginning. Pretty UI; A functional customizer. Menus. Woo. With V2 of Blocksy, good support for theme.json; well-named custom properties; I&#8217;m almost dancing around integrating <strong>everything<\/strong> like WSForm and my own CSS. The DRY principle.\u201d \u2013 Bjarne Oldrup<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">To test the Gutenberg + Blocksy tech stack, Bjarne used tools like:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Google Lighthouse and WebPageTest for speed<\/li>\n\n\n\n<li>Mozilla HTTP Observatory for security<\/li>\n\n\n\n<li>Manual testing combined with the Equalize Digital Accessibility Checker for accessibility<\/li>\n\n\n\n<li>Tools similar to websitecarbon.com and ecograder.com for carbon footprint<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Highest grades or scores, like 100\/100 on Lighthouse and Grade A on carbon, were achieved from the get-go.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Satisfied with the test results, Bjarne proceeded to migrate one of Astra\u2019s 3rd-party sites \u2013 neuc.dk (offline now) from Drupal to WordPress. The migration went smoothly, and the website on the new CMS was fast-loading, eco-friendly, inclusive, and secure.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>\u201cWith Gutenberg taking care of the content and Blocksy taking care of everything else, everyone was happy,\u201d says Bjarne about the test project.<\/em><\/p>\n<\/blockquote>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;6a8c7b46aec5b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"6a8c7b46aec5b\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1278\" height=\"2318\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/creativethemes.com\/blocksy\/wp-content\/uploads\/2026\/08\/website-migrated-from-drupal-to-wordpress-wayback-machine-picture.png\" alt=\"website migrated from drupal to wordpress - wayback machine picture\" class=\"wp-image-15012\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\tdata-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.thisImage.buttonRight\"\n\t\t\tdata-wp-style--top=\"state.thisImage.buttonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">neuc.dk no longer exists, but it surfaced on the Wayback Machine. This is what it looked like after Bjarne migrated it to WordPress.<\/figcaption><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">Migrating All Drupal Sites to WordPress &amp; In-House Team Taking Charge<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The migration made Astra\u2019s 3rd-party sites <strong>more visible in search and resilient during peak traffic seasons<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bjarne wrote a detailed report about his test migration.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>\u201cIt&#8217;s very helpful to be able to demonstrate that accessibility issues were eliminated, estimated carbon emissions went down 80+%, and loading time was reduced accordingly.\u201d \u2013 Bjarne Oldrup<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Astra executives greenlit the migration for all their 3rd-party websites. As a result, minor changes, like adding a menu item, that took weeks for Drupal agencies to implement, now took 15 minutes. Interns began making simple website modifications, freeing senior developers to focus on more complex projects.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Not long after the migration, Bjarne spotted improvements in SERP positions.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>\u201cSEO kicked in; big time. WordPress SEO is pretty good out of the box, and with a focus on making things accessible and performant, ranking almost always improves as well.\u201d \u2013 Bjarne Oldrup<\/em><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">He also noticed that the websites were handling traffic surges of up to 40,000 users during workshops or conferences \u2013 with no major hiccups.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bjarne continued at Astra for a few more weeks, running additional accessibility compliance tests, optimizing performance, and implementing technical SEO before moving on to other clients.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\">From Employee to Independent Business Owner: WordPress, Gutenberg, &amp; Blocksy Form the Go-To Setup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">As an <a href=\"https:\/\/codeally.dk\/en\/\" target=\"_blank\" rel=\"nofollow noreferrer noopener\">independent web development business owner<\/a> now, Bjarne <strong>relies on the WordPress-Gutenberg-Blocksy tech stack<\/strong> for its low-cost, fast-turnaround benefits.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bjarne has added a <a href=\"https:\/\/creativethemes.com\/blocksy\/pricing\/\" target=\"_blank\" rel=\"noreferrer noopener\">Blocksy Companion plugin<\/a> license to the mix, but that doesn\u2019t mean his business costs have gone up. The plugin\u2019s unlimited website plan lets him scale his client base without escalating costs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On top of that, using the same WordPress-Gutenberg-Blocksy tech stack as the default starting point for new builds and rebuilds prevents him from wasting time learning new software.<\/p>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p><em>\u201cFind your own curated tech stack you are comfortable with; test it, and stick to it.\u201d<\/em><\/p><cite><em>\u2013 Bjarne Oldrup<\/em><\/cite><\/blockquote><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The same stack that once served a national institution with traffic reaching up to 40,000 during rush hour now runs Bjarne&#8217;s solo business with a full client roster \u2013 proving that faster delivery does not mean higher business expenditure.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project management at Drupal agencies is frustratingly slow. Making simple changes like adding a menu item takes 8 steps, a couple of weeks, and racks up a \u20ac1,000 bill. This is what Astra (Denmark\u2019s national center for science education) dealt with every day with the 3rd-party websites in their network. These sites collaborated with teachers, [&hellip;]<\/p>\n","protected":false},"author":63,"featured_media":15039,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30],"tags":[138],"class_list":["post-15009","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-resources","tag-drupal"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":7}},"acf":[],"_links":{"self":[{"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/posts\/15009","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/users\/63"}],"replies":[{"embeddable":true,"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/comments?post=15009"}],"version-history":[{"count":17,"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/posts\/15009\/revisions"}],"predecessor-version":[{"id":15029,"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/posts\/15009\/revisions\/15029"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/media\/15039"}],"wp:attachment":[{"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/media?parent=15009"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/categories?post=15009"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/creativethemes.com\/blocksy\/wp-json\/wp\/v2\/tags?post=15009"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}