1<!doctype html> 2<html lang="en-CA" prefix="og: https://ogp.me/ns#"> 3<head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <link rel="profile" href="https://gmpg.org/xfn/11" /> 7 8<!-- Search Engine Optimization by Rank Math - https://rankmath.com/ --> 9<title>My services - Jeff C. Kelly</title> 10<meta name="description" content="My SharePoint and digital workspace/AI consulting services in Canada. Team lead/solution architect, consultant, trainer, technical writer, developer. Intranets/digital workspaces, Power Platform, Copilot, automations and more."/> 11<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/> 12<link rel="canonical" href="https://jeffkelly.com/home/services/" /> 13<meta property="og:locale" content="en_US" /> 14<meta property="og:type" content="article" /> 15<meta property="og:title" content="My services - Jeff C. Kelly" /> 16<meta property="og:description" content="My SharePoint and digital workspace/AI consulting services in Canada. Team lead/solution architect, consultant, trainer, technical writer, developer. Intranets/digital workspaces, Power Platform, Copilot, automations and more." /> 17<meta property="og:url" content="https://jeffkelly.com/home/services/" /> 18<meta property="og:site_name" content="Jeff C. Kelly" /> 19<meta property="og:updated_time" content="2026-03-20T18:14:32+00:00" /> 20<meta property="article:published_time" content="2025-03-06T14:08:38+00:00" /> 21<meta property="article:modified_time" content="2026-03-20T18:14:32+00:00" /> 22<meta name="twitter:card" content="summary_large_image" /> 23<meta name="twitter:title" content="My services - Jeff C. Kelly" /> 24<meta name="twitter:description" content="My SharePoint and digital workspace/AI consulting services in Canada. Team lead/solution architect, consultant, trainer, technical writer, developer. Intranets/digital workspaces, Power Platform, Copilot, automations and more." /> 25<meta name="twitter:label1" content="Time to read" /> 26<meta name="twitter:data1" content="Less than a minute" />
27<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://jeffkelly.com/#organization","name":"Jeff C. Kelly","url":"https://jeffkelly.com","logo":{"@type":"ImageObject","@id":"https://jeffkelly.com/#logo","url":"https://jeffkelly.com/wp-content/uploads/2025/05/Jeff-Kelly-Logo-2.png","contentUrl":"https://jeffkelly.com/wp-content/uploads/2025/05/Jeff-Kelly-Logo-2.png","caption":"Jeff C. Kelly","inLanguage":"en-CA","width":"266","height":"68"}},{"@type":"WebSite","@id":"https://jeffkelly.com/#website","url":"https://jeffkelly.com","name":"Jeff C. Kelly","alternateName":"Jeffkelly","publisher":{"@id":"https://jeffkelly.com/#organization"},"inLanguage":"en-CA"},{"@type":"ImageObject","@id":"https://jeffkelly.com/wp-content/uploads/2025/06/sharepoint-services-1.png","url":"https://jeffkelly.com/wp-content/uploads/2025/06/sharepoint-services-1.png","width":"200","height":"200","inLanguage":"en-CA"},{"@type":"BreadcrumbList","@id":"https://jeffkelly.com/home/services/#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://jeffkelly.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://jeffkelly.com/","name":"Home"}},{"@type":"ListItem","position":"3","item":{"@id":"https://jeffkelly.com/home/services/","name":"My services"}}]},{"@type":"WebPage","@id":"https://jeffkelly.com/home/services/#webpage","url":"https://jeffkelly.com/home/services/","name":"My services - Jeff C. Kelly","datePublished":"2025-03-06T14:08:38+00:00","dateModified":"2026-03-20T18:14:32+00:00","isPartOf":{"@id":"https://jeffkelly.com/#website"},"primaryImageOfPage":{"@id":"https://jeffkelly.com/wp-content/uploads/2025/06/sharepoint-services-1.png"},"inLanguage":"en-CA","breadcrumb":{"@id":"https://jeffkelly.com/home/services/#breadcrumb"}},{"@type":"Person","@id":"https://jeffkelly.com/author/jeffckelly/","name":"jeffckelly","url":"https://jeffkelly.com/author/jeffckelly/","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/96a01efc9b5882ea5b88dd5375a12287e78324104b37c69558c3dc2910ca3708?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/96a01efc9b5882ea5b88dd5375a12287e78324104b37c69558c3dc2910ca3708?s=96&d=mm&r=g","caption":"jeffckelly","inLanguage":"en-CA"},"sameAs":["https://jeffkelly.com"],"worksFor":{"@id":"https://jeffkelly.com/#organization"}},{"@type":"Article","headline":"My services - Jeff C. Kelly","keywords":"SharePoint and digital workspace/AI consulting services in Canada","datePublished":"2025-03-06T14:08:38+00:00","dateModified":"2026-03-20T18:14:32+00:00","author":{"@id":"https://jeffkelly.com/author/jeffckelly/","name":"jeffckelly"},"publisher":{"@id":"https://jeffkelly.com/#organization"},"description":"My SharePoint and digital workspace/AI consulting services in Canada. Team lead/solution architect, consultant, trainer, technical writer, developer. Intranets/digital workspaces, Power Platform, Copilot, automations and more.","name":"My services - Jeff C. Kelly","@id":"https://jeffkelly.com/home/services/#richSnippet","isPartOf":{"@id":"https://jeffkelly.com/home/services/#webpage"},"image":{"@id":"https://jeffkelly.com/wp-content/uploads/2025/06/sharepoint-services-1.png"},"inLanguage":"en-CA","mainEntityOfPage":{"@id":"https://jeffkelly.com/home/services/#webpage"}}]}</script>
27 28<!-- /Rank Math WordPress SEO plugin --> 29 30<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 31<link href='https://fonts.gstatic.com' crossorigin='1' rel='preconnect' /> 32<link rel="alternate" type="application/rss+xml" title="Jeff C. Kelly » Feed" href="https://jeffkelly.com/feed/" /> 33<link rel="alternate" type="application/rss+xml" title="Jeff C. Kelly » Comments Feed" href="https://jeffkelly.com/comments/feed/" /> 34<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://jeffkelly.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fjeffkelly.com%2Fhome%2Fservices%2F" /> 35<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://jeffkelly.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fjeffkelly.com%2Fhome%2Fservices%2F&format=xml" /> 36<style id="wp-img-auto-sizes-contain-inline-css"> 37img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 38/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 39</style> 40<style id="wp-emoji-styles-inline-css"> 41 42 img.wp-smiley, img.emoji { 43 display: inline !important; 44 border: none !important; 45 box-shadow: none !important; 46 height: 1em !important; 47 width: 1em !important; 48 margin: 0 0.07em !important; 49 vertical-align: -0.1em !important; 50 background: none !important; 51 padding: 0 !important; 52 } 53/*# sourceURL=wp-emoji-styles-inline-css */ 54</style> 55<style id="wp-block-library-inline-css"> 56:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
56--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 57 58/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 59</style> 60<style id="wp-block-heading-inline-css"> 61h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} 62/*# sourceURL=https://jeffkelly.com/wp-includes/blocks/heading/style.min.css */ 63</style> 64<style id="wp-block-image-inline-css"> 65.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
65cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
65@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} 66/*# sourceURL=https://jeffkelly.com/wp-includes/blocks/image/style.min.css */ 67</style> 68<style id="wp-block-paragraph-inline-css"> 69.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} 70/*# sourceURL=https://jeffkelly.com/wp-includes/blocks/paragraph/style.min.css */ 71</style> 72<style id="wp-block-group-inline-css"> 73.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} 74/*# sourceURL=https://jeffkelly.com/wp-includes/blocks/group/style.min.css */ 75</style> 76 77<style id="classic-theme-styles-inline-css"> 78/*! This file is auto-generated */ 79.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 80/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 81</style> 82 83<link rel='stylesheet' id='coblocks-frontend-css' href='https://jeffkelly.com/wp-content/plugins/coblocks/dist/style-coblocks-1.css?ver=3.1.17' media='all' /> 84 85<link rel='stylesheet' id='coblocks-extensions-css' href='https://jeffkelly.com/wp-content/plugins/coblocks/dist/style-coblocks-extensions.css?ver=3.1.17' media='all' /> 86<link rel='stylesheet' id='coblocks-animation-css' href='https://jeffkelly.com/wp-content/plugins/coblocks/dist/style-coblocks-animation.css?ver=2677611078ee87eb3b1c' media='all' />
87<style id="site-designer-shared-pattern-classes-inline-css"> 88/* Dark cover/section overlay + on-dark text. */ 89body .wp-site-blocks .is-style-overlay-dark .wp-block-cover__background { background-color: var(--wp--preset--color--base-3); color: var(--wp--preset--color--contrast-3); } 90.wp-block-cover.is-style-overlay-dark .wp-block-cover__background.has-background-dim { opacity: 0.50 !important; } 91:is(.wp-block-designsetgo-section, .wp-block-designsetgo-scroll-slides).is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); --dsgo-overlay-opacity: 0.50; color: var(--wp--preset--color--contrast-3); } 92.dsgo-image-accordion-item.is-style-overlay-dark { --dsgo-overlay-color: var(--wp--preset--color--base-3); } 93.wp-block-group.has-background.is-style-overlay-dark { box-shadow: inset 0 0 0 9999px color-mix(in srgb, var(--wp--preset--color--base-3) 50%, transparent); } 94body .wp-site-blocks .is-style-overlay-dark, body .wp-site-blocks .is-style-on-dark { --dsgo-text-color: var(--wp--preset--color--contrast-3); color: var(--wp--preset--color--contrast-3) !important; } 95body .wp-site-blocks .is-style-overlay-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite), body .wp-site-blocks .is-style-on-dark :is(h1,h2,h3,h4,h5,h6,p,li,blockquote,cite) { color: var(--wp--preset--color--contrast-3) !important; } 96 97/* Solid dark section background + light text. */ 98.is-style-bg-dark { background-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--base); } 99.is-style-bg-dark a { color: var(--wp--preset--color--base); }
100/*# sourceURL=site-designer-shared-pattern-classes-inline-css */ 101</style> 102<style id="global-styles-inline-css"> 103:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--primary: rgb(4,59,77);--wp--preset--color--secondary: rgb(8,128,155);--wp--preset--color--tertiary: rgb(240,200,8);--wp--preset--color--quaternary: #ffffff;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
103--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--primary-to-secondary: linear-gradient(135deg, rgb(4,59,77) 0%, rgb(8,128,155) 100%);--wp--preset--gradient--primary-to-tertiary: linear-gradient(135deg, rgb(4,59,77) 0%, rgb(240,200,8) 100%);--wp--preset--gradient--primary-to-background: linear-gradient(135deg, rgb(4,59,77) 0%, rgb(255,255,255) 100%);--wp--preset--gradient--secondary-to-tertiary: linear-gradient(135deg, rgb(8,128,155) 0%, rgb(255,255,255) 100%);--wp--preset--font-size--small: 17px;--wp--preset--font-size--medium: 21px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--huge: 30px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-primary-color{color: var(--wp--preset--color--primary) !important;}.has-secondary-color{color: var(--wp--preset--color--secondary) !important;}.has-tertiary-color{color: var(--wp--preset--color--tertiary) !important;}.has-quaternary-color{color: var(--wp--preset--color--quaternary) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-primary-background-color{background-color: var(--wp--preset--color--primary) !important;}.has-secondary-background-color{background-color: var(--wp--preset--color--secondary) !important;}.has-tertiary-background-color{background-color: var(--wp--preset--color--tertiary) !important;}.has-quaternary-background-color{background-color: var(--wp--preset--color--quaternary) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-primary-border-color{border-color: var(--wp--preset--color--primary) !important;}.has-secondary-border-color{border-color: var(--wp--preset--color--secondary) !important;}.has-tertiary-border-color{border-color: var(--wp--preset--color--tertiary) !important;}.has-quaternary-border-color{border-color: var(--wp--preset--color--quaternary) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
103.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-primary-to-secondary-gradient-background{background: var(--wp--preset--gradient--primary-to-secondary) !important;}.has-primary-to-tertiary-gradient-background{background: var(--wp--preset--gradient--primary-to-tertiary) !important;}.has-primary-to-background-gradient-background{background: var(--wp--preset--gradient--primary-to-background) !important;}.has-secondary-to-tertiary-gradient-background{background: var(--wp--preset--gradient--secondary-to-tertiary) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-huge-font-size{font-size: var(--wp--preset--font-size--huge) !important;} 104/*# sourceURL=global-styles-inline-css */ 105</style> 106 107<link rel='stylesheet' id='wp-theme-css' href='https://jeffkelly.com/wp-includes/css/dist/theme/design-tokens.min.css?ver=7.1.2' media='all' /> 108<link rel='stylesheet' id='wp-components-css' href='https://jeffkelly.com/wp-includes/css/dist/components/style.min.css?ver=7.1.2' media='all' /> 109<link rel='stylesheet' id='godaddy-styles-css' href='https://jeffkelly.com/wp-content/mu-plugins/vendor/wpex/godaddy-launch/includes/Dependencies/GoDaddy/Styles/build/latest.css?ver=2.0.2' media='all' /> 110<link rel='preload' as='style' href='https://fonts.googleapis.com/css?family=Work%20Sans%3A300%2C700%7CKarla%3A400%2C400i%2C700&subset=latin%2Clatin-ext&display=swap&ver=1.8.18' /> 111<link rel='stylesheet' id='go-fonts-css' href='https://fonts.googleapis.com/css?family=Work%20Sans%3A300%2C700%7CKarla%3A400%2C400i%2C700&subset=latin%2Clatin-ext&display=swap&ver=1.8.18' media="print" onload="this.media='all'" /> 112 113<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Work%20Sans%3A300%2C700%7CKarla%3A400%2C400i%2C700&subset=latin%2Clatin-ext&display=swap&ver=1.8.18" /></noscript><link rel='stylesheet' id='go-style-css' href='https://jeffkelly.com/wp-content/themes/go/dist/css/style-shared.min.css?ver=1.8.18' media='all' /> 114<link rel='stylesheet' id='go-design-style-welcoming-css' href='https://jeffkelly.com/wp-content/themes/go/dist/css/design-styles/style-welcoming.min.css?ver=1.8.18' media='all' /> 115<link rel="https://api.w.org/" href="https://jeffkelly.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://jeffkelly.com/wp-json/wp/v2/pages/51" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://jeffkelly.com/xmlrpc.php?rsd" /> 116<link rel='shortlink' href='https://jeffkelly.com/?p=51' /> 117<meta name="description" content="My SharePoint and digital workspace/AI consulting services in Canada. Team lead/solution architect, consultant, trainer, technical writer, developer. Intranets/digital workspaces, Power Platform, Copilot, automations and more."> 118 <style> 119 :root { 120 --go--color--white: hsl(0, 0%, 100%); 121 --go--color--primary: hsl(195, 90%, 16%); 122 123 --go--color--secondary: hsl(191, 90%, 32%); 124 125 --go--color--tertiary: hsl(50, 94%, 49%); 126 127 --go--color--background: hsl(0, 0%, 100%); 128 129 --go-header--color--background: hsl(195, 90%, 16%); 130 131 --go-site-title--color--text: hsl(0, 100%, 99%); 132 --go-site-description--color--text: hsl(0, 100%, 99%); 133 --go-navigation--color--text: hsl(0, 100%, 99%); 134 --go-search-toggle--color--text: hsl(0, 100%, 99%); 135 --go-search-button--color--background: hsl(0, 100%, 99%); 136 137 --go-footer--color--background: hsl(50, 94%, 49%); 138 139 140 141 142 --go-logo--max-width: 200px; 143 144 --go-logo-mobile--max-width: 100px; 145 146 --go--viewport-basis: 1524; 147 148 149 150 151 152 } 153 154 .has-primary-to-secondary-gradient-background { 155 background: -webkit-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--secondary) 100%); 156 background: -o-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--secondary) 100%); 157 background: linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--secondary) 100%); 158 } 159 160 .has-primary-to-tertiary-gradient-background { 161 background: -webkit-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--tertiary) 100%); 162 background: -o-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--tertiary) 100%); 163 background: linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--tertiary) 100%); 164 } 165 166 .has-primary-to-background-gradient-background { 167 background: -webkit-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--background) 100%); 168 background: -o-linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--background) 100%); 169 background: linear-gradient(135deg, var(--go--color--primary) 0%, var(--go--color--background) 100%); 170 } 171 172 .has-secondary-to-tertiary-gradient-background { 173 background: -webkit-linear-gradient(135deg, var(--go--color--secondary) 0%, var(--go--color--tertiary) 100%); 174 background: -o-linear-gradient(135deg, var(--go--color--secondary) 0%, var(--go--color--tertiary) 100%); 175 background: linear-gradient(135deg, var(--go--color--secondary) 0%, var(--go--color--tertiary) 100%); 176 } 177 </style> 178 <style id="custom-background-css"> 179body.custom-background { background-color: #ffffff; } 180</style>
181<script>var EhAPI = EhAPI || {}; EhAPI.after_load = function(){ 182EhAPI.set_account('pniviogrl3m0hf3rsu4urlsdd0', 'jeffkelly'); 183EhAPI.execute('rules');};(function(d,s,f) { 184var sc=document.createElement(s);sc.type='text/javascript'; 185sc.async=true;sc.src=f;var m=document.getElementsByTagName(s)[0]; 186m.parentNode.insertBefore(sc,m); 187})(document, 'script', '//d2p078bqz5urf7.cloudfront.net/jsapi/ehform.js?v' + new Date().getHours()); 188</script>
188<link rel="icon" href="https://jeffkelly.com/wp-content/uploads/2025/03/cropped-bluecastle-32x32.png" sizes="32x32" /> 189<link rel="icon" href="https://jeffkelly.com/wp-content/uploads/2025/03/cropped-bluecastle-192x192.png" sizes="192x192" /> 190<link rel="apple-touch-icon" href="https://jeffkelly.com/wp-content/uploads/2025/03/cropped-bluecastle-180x180.png" /> 191<meta name="msapplication-TileImage" content="https://jeffkelly.com/wp-content/uploads/2025/03/cropped-bluecastle-270x270.png" /> 192<style id="wp-site-designer-contrast-fallback"> .wp-block-group:not([data-dsgo-inline-bg]),.wp-block-column:not([data-dsgo-inline-bg]),.wp-block-columns:not([data-dsgo-inline-bg]){--dsgo-text-color:initial;} :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover:not(.has-text-color){color:var(--wp--preset--color--contrast-3) !important;--dsgo-text-color:var(--wp--preset--color--contrast-3);} body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h1:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h3:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) h6:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(:is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column).has-background:not([class*="-background-color"]):not(.has-text-color):not(.is-style-footer-section):not(.is-style-header-section),.wp-block-cover) .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button{color:var(--dsgo-text-color,inherit) !important;border-color:currentColor !important;}body .wp-site-blocks :is(.wp-block-designsetgo-section,.wp-block-group,.wp-block-column)[data-dsgo-inline-bg] .wp-block-button:is([class*="is-style-outline"],[class*="is-style-secondary"]) .wp-element-button:hover{opacity:0.75;} body .wp-site-blocks [data-dsgo-inline-bg] h1:not(.has-text-color):where(:not
192(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h2:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h3:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h4:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h5:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] h6:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] p:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks [data-dsgo-inline-bg] .wp-element-caption:not(.has-text-color):where(:not(.elementor *):not([data-elementor-type] *)){color:var(--dsgo-text-color,inherit) !important;} .wp-block-designsetgo-section.has-background:not([data-dsgo-inline-bg]):not(.has-text-color){color:var(--wp--preset--color--contrast);--dsgo-text-color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-5);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-1:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not
192(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-2:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-1);color:var(--wp--preset--color--contrast);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-3:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not
192(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--contrast);} :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--accent-3);color:var(--wp--preset--color--accent-2);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-4:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--accent-2);} :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-background:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)),.has-text-color:is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)){background-color:var(--wp--preset--color--contrast);color:var(--wp--preset--color--base);} body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h1:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h2:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h3:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h4:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h5:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) h6:where(:not
192(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) p:where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) a:where(:not(.wp-element-button):not(.wp-block-social-link-anchor)):where(:not(.elementor *):not([data-elementor-type] *)),body .wp-site-blocks :is(.wp-block-group,.wp-block-column).is-style-section-5:not(:is(.has-white-background-color,.has-black-background-color)) .wp-element-caption:where(:not(.elementor *):not([data-elementor-type] *)){color:var(--wp--preset--color--base);} body .wp-site-blocks input:not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="image"]):not([type="hidden"]),body .wp-site-blocks textarea,body .wp-site-blocks select{background-color:var(--wp--preset--color--base);color:var(--wp--preset--color--contrast);border:1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 30%, transparent);} .wp-site-blocks input[type="submit"]:not(.wp-element-button),.wp-site-blocks button[type="submit"]:not(.wp-element-button){background-color:var(--wp--preset--color--accent-2);color:var(--wp--preset--color--base);border-width:0;padding:12px 30px;font-family:inherit;font-size:var(--wp--preset--font-size--medium, 1rem);line-height:inherit;cursor:pointer;}</style> 193<style id="wp-custom-css"> 194@media (max-width: 768px) { 195 .jeffkelly-mainheader { 196 text-align: center; 197 padding-top:20px; 198 font-weight: bold; 199 } 200} 201 202 203 204 205 206 207 208.jeffkelly-setmorebutton { 209 padding:2px 8px 2px 8px; 210 border-radius:6px; 211 box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2); 212 background-color:#f0c808; 213} 214 215.jeffkelly-setmorebutton A { 216 color:#086788; 217 218} 219 220.jeffkelly-setmorebuttonF { 221 padding:2px 8px 2px 8px; 222 border-radius:6px; 223 box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2); 224 background-color:#086788; 225} 226 227.jeffkelly-setmorebuttonF A { 228 color:#F0C808; 229 230} 231 232.jeffkelly-roundedcorners img, 233.jeffkelly-servicebox { 234 border-radius: 20px; 235 box-shadow: 3px 5px 9px #201335 236 237} 238 239.jeffkelly-servicebox { 240 background-color: #fff} 241 242.jeffkelly-servicesicon { 243 padding-bottom: 20px; 244} 245 246</style> 247 <style id="site-designer-logo-constraints"> 248 .wp-block-site-logo.is-default-size img { 249 width: auto; 250 height: auto; 251 max-width: 180px; 252 max-height: 80px; 253 } 254 .wp-block-site-logo img { 255 height: auto; 256 } 257 </style> 258 <style id="core-block-supports-inline-css"> 259.wp-elements-1 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-elements-2 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-elements-3 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-elements-4 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-container-core-group-is-layout-d05cb3ef{flex-wrap:nowrap;justify-content:center;}.wp-elements-5 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-elements-6 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-elements-7 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);}.wp-elements-8 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--primary);} 260/*# sourceURL=core-block-supports-inline-css */ 261</style> 262 263</head> 264 265<body 266 class="wp-singular page-template-default page page-id-51 page-parent page-child parent-pageid-242 custom-background wp-custom-logo wp-embed-responsive wp-theme-go is-style-welcoming has-header-1 has-footer-2 has-sticky-header has-header-background has-footer-background has-page-titles singular" 267> 268 269 270 <div id="page" class="site"> 271 272 <a class="skip-link screen-reader-text" href="#site-content">Skip to content</a> 273 274 <header id="site-header" class="site-header header relative has-background header-1" role="banner" itemscope itemtype="http://schema.org/WPHeader"> 275 276 <div class="header__inner flex items-center justify-between h-inherit w-full relative"> 277 278 <div class="header__extras"> 279 280 <button 281 id="header__search-toggle" 282 class="header__search-toggle" 283 data-toggle-target=".search-modal" 284 data-set-focus=".search-modal .search-form__input" 285 type="button" 286 aria-controls="js-site-search" 287 > 288 <div class="search-toggle-icon"> 289 <svg role="img" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><path d="m18.0553691 9.08577774c0-4.92630404-4.02005-8.94635404-8.94635408-8.94635404-4.92630404 0-8.96959132 4.02005-8.96959132 8.94635404 0 4.92630406 4.02005 8.94635406 8.94635404 8.94635406 2.13783006 0 4.08976186-.7435931 5.64665986-1.9984064l3.8109144 3.8109145 1.3245252-1.3245252-3.8341518-3.7876771c1.2548133-1.5336607 2.0216437-3.5088298 2.0216437-5.64665986zm-8.96959136 7.11060866c-3.90386358 0-7.08737138-3.1835078-7.08737138-7.08737138s3.1835078-7.08737138 7.08737138-7.08737138c3.90386356 0 7.08737136 3.1835078 7.08737136 7.08737138s-3.1602705 7.08737138-7.08737136 7.08737138z" /></svg> </div> 290 <span class="screen-reader-text">Search Toggle</span> 291 </button> 292 293 </div> 294 295 <div class="header__title-nav flex items-center flex-nowrap"> 296 297 <div class="header__titles lg:flex items-center" itemscope itemtype="http://schema.org/Organization"><h1 class="custom-logo"><a href="https://jeffkelly.com/" class="custom-logo-link" rel="home"><img width="266" height="68" src="https://jeffkelly.com/wp-content/uploads/2025/05/Jeff-Kelly-Logo-2.png" class="custom-logo" alt="Logo for Jeff C. Kelly" decoding="async" /></a></h1><span class="site-description display-none sm:display-block relative text-sm">digital workspace consultant</span></div> 298 299 <nav id="header__navigation" class="header__navigation" aria-label="Horizontal" role="navigation" itemscope itemtype="http://schema.org/SiteNavigationElement"> 300 301 <div class="header__navigation-inner"> 302 <div class="menu-primary-menu-container"><ul id="menu-primary-menu" class="primary-menu list-reset"><li id="menu-item-55" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-51 current_page_item menu-item-55"><a href="https://jeffkelly.com/home/services/" aria-current="page">What I do</a></li> 303<li id="menu-item-44" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-44"><a href="https://jeffkelly.com/home/blog/">What I think</a></li> 304<li id="menu-item-257" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-257"><a href="https://jeffkelly.com/home/contact-me/">Contact me</a></li> 305<li id="menu-item-479" class="jeffkelly-setmorebutton menu-item menu-item-type-custom menu-item-object-custom menu-item-479"><a target="_blank" href="https://jeffkelly.setmore.com">Book a free call</a></li> 306</ul></div> </div> 307 308 </nav> 309 310 311 </div> 312 313 314 <div class="header__nav-toggle"> 315 <button 316 id="nav-toggle" 317 class="nav-toggle" 318 type="button" 319 aria-controls="header__navigation" 320 > 321 <div class="nav-toggle-icon"> 322 <svg role="img" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
322<path d="m3.23076923 15.4615385c-1.78430492 0-3.23076923-1.4464647-3.23076923-3.2307693 0-1.7843045 1.44646431-3.2307692 3.23076923-3.2307692s3.23076923 1.4464647 3.23076923 3.2307692c0 1.7843046-1.44646431 3.2307693-3.23076923 3.2307693zm8.76923077 0c-1.7843049 0-3.23076923-1.4464647-3.23076923-3.2307693 0-1.7843045 1.44646433-3.2307692 3.23076923-3.2307692s3.2307692 1.4464647 3.2307692 3.2307692c0 1.7843046-1.4464643 3.2307693-3.2307692 3.2307693zm8.7692308 0c-1.784305 0-3.2307693-1.4464647-3.2307693-3.2307693 0-1.7843045 1.4464643-3.2307692 3.2307693-3.2307692 1.7843049 0 3.2307692 1.4464647 3.2307692 3.2307692 0 1.7843046-1.4464643 3.2307693-3.2307692 3.2307693z" /></svg> 323 </div> 324 <div class="nav-toggle-icon nav-toggle-icon--close"> 325 <svg role="img" viewbox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="m21.2325621 4.63841899c.526819-.52681908.5246494-1.38313114-.0035241-1.9113046l.0438476.04384757c-.5287653-.52876531-1.3869798-.52784878-1.9113046-.00352402l-7.065629 7.06562899c-.1634497.16344977-.4265682.16533585-.591904 0l-7.06562901-7.06562899c-.52681908-.52681907-1.38313114-.52464944-1.9113046.00352402l.04384757-.04384757c-.52876531.52876532-.52784878 1.38697983-.00352402 1.9113046l7.06562899 7.06562901c.16344977.1634497.16533585.4265682 0 .591904l-7.06562899 7.065629c-.52681907.5268191-.52464944 1.3831311.00352402 1.9113046l-.04384757-.0438476c.52876532.5287654 1.38697983.5278488 1.9113046.0035241l7.06562901-7.065629c.1634497-.1634498.4265682-.1653359.591904 0l7.065629 7.065629c.5268191.526819 1.3831311.5246494 1.9113046-.0035241l-.0438476.0438476c.5287654-.5287653.5278488-1.3869798.0035241-1.9113046l-7.065629-7.065629c-.1634498-.1634497-.1653359-.4265682 0-.591904z" fill-rule="evenodd" /></svg> 326 </div> 327 <span class="screen-reader-text">Menu</span> 328 </button> 329 </div> 330 331 332 </div> 333 334 335<div 336 class="search-modal" 337 data-modal-target-string=".search-modal" 338 aria-expanded="false" 339 > 340 341 <div class="search-modal-inner"> 342 343 <div 344id="js-site-search" 345class="site-search" 346itemscope 347itemtype="http://schema.org/WebSite" 348> 349 <form role="search" id="searchform" class="search-form" method="get" action="https://jeffkelly.com/"> 350 <meta itemprop="target" content="https://jeffkelly.com//?s={s}" /> 351 <label for="search-field"> 352 <span class="screen-reader-text">Search for:</span> 353 </label> 354 <input itemprop="query-input" type="search" id="search-field" class="input input--search search-form__input" autocomplete="off" placeholder="Search …" value="" name="s" /> 355 <button type="submit" class="search-input__button"> 356 <span class="search-input__label">Submit</span> 357 <svg role="img" class="search-input__arrow-icon" width="30" height="28" viewBox="0 0 30 28" fill="inherit" xmlns="http://www.w3.org/2000/svg"> 358 <g clip-path="url(#clip0)"> 359 <path d="M16.1279 0L29.9121 13.7842L16.1279 27.5684L14.8095 26.25L26.3378 14.7217H-6.10352e-05V12.8467H26.3378L14.8095 1.31844L16.1279 0Z" fill="inherit"/> 360 </g> 361 <defs> 362 <clipPath id="clip0"> 363 <rect width="29.9121" height="27.5684" fill="white"/> 364 </clipPath> 365 </defs> 366 </svg> 367 </button> 368 </form> 369</div> 370 371 </div><!-- .search-modal-inner --> 372 373</div><!-- .search-modal --> 374 375 </header> 376 377 <main id="site-content" class="site-content" role="main"> 378 379 380<article class="post-51 page type-page status-publish hentry" id="post-51"> 381 382 <header class="page-header entry-header m-auto px "><h1 class="post__title m-0 text-center">My services</h1></header> 383 <div class="content-area__wrapper"> 384 <div class="content-area entry-content"> 385 386<p class="has-text-align-center wp-block-paragraph">My SharePoint and digital workspace/AI consulting services in Canada.<br>Team lead/solution architect, consultant, trainer, technical writer, developer. <br>I slot into fusion teams and hit the ground running overnight. </p> 387 388 389 390<div class="wp-block-group alignfull has-secondary-background-color has-background is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-d05cb3ef wp-block-group-is-layout-flex"> 391<div class="wp-block-coblocks-features alignfull coblocks-features-416174110194"><div class="wp-block-coblocks-features__inner has-columns has-2-columns has-responsive-columns has-center-content has-large-gutter"> 392<div class="wp-block-coblocks-feature has-center-content coblocks-feature-416174110747 jeffkelly-servicebox"><div class="wp-block-coblocks-feature__inner has-text-color has-quaternary-color has-padding has-medium-padding"><div class="wp-block-image jeffkelly-servicesicon"> 393<figure class="aligncenter size-full is-resized"><a href="https://jeffkelly.com/home/services/sharepoint-services-2/"><img decoding="async" width="150" height="150" src="https://jeffkelly.com/wp-content/uploads/2025/06/sharepoint-services-1.png" alt="SharePoint migrations and upgrades, rollouts 365" class="wp-image-791" style="object-fit:contain;width:100px;height:100px"/></a></figure> 394</div> 395 396 397<h4 class="wp-block-heading has-primary-color has-text-color has-link-color has-medium-font-size wp-elements-1">SharePoint Migrations and Upgrades</h4> 398 399 400 401<p class="is-style-default has-primary-color has-text-color has-link-color wp-elements-2 wp-block-paragraph"></p> 402</div></div> 403 404 405 406<div class="wp-block-coblocks-feature coblocks-feature-416174453957 jeffkelly-servicebox"><div class="wp-block-coblocks-feature__inner has-padding has-medium-padding"><div class="wp-block-image jeffkelly-servicesicon"> 407<figure class="aligncenter size-full is-resized has-lightbox"><a href="https://www.omniaintranet.com" target="_blank" rel=" noreferrer noopener"><img decoding="async" width="195" height="162" src="https://jeffkelly.com/wp-content/uploads/2025/06/omnia-services.png" alt="Omnia Intranet services" class="wp-image-744" style="object-fit:contain;width:100px;height:100px"/></a></figure> 408</div> 409 410 411<h4 class="wp-block-heading has-primary-color has-text-color has-link-color has-medium-font-size wp-elements-3"><a href="https://www.omniaintranet.com" target="_blank" rel="noopener">Omnia Intranet</a> implementations</h4> 412 413 414 415<p class="is-style-default has-primary-color has-text-color has-link-color wp-elements-4 wp-block-paragraph"></p> 416</div></div> 417</div></div> 418</div> 419 420 421 422<div class="wp-block-group alignfull has-secondary-background-color has-background is-content-justification-center is-nowrap is-layout-flex wp-container-core-group-is-layout-d05cb3ef wp-block-group-is-layout-flex"> 423<div class="wp-block-coblocks-features alignfull coblocks-features-416174110194"><div class="wp-block-coblocks-features__inner has-columns has-2-columns has-responsive-columns has-center-content has-large-gutter"> 424<div class="wp-block-coblocks-feature has-center-content coblocks-feature-416174110747 jeffkelly-servicebox"><div class="wp-block-coblocks-feature__inner has-text-color has-quaternary-color has-padding has-medium-padding"><div class="wp-block-image jeffkelly-servicesicon"> 425<figure class="aligncenter size-full is-resized"><img decoding="async" width="150" height="150" src="https://jeffkelly.com/wp-content/uploads/2025/06/copilot-services-1.png" alt="Microsoft Copilot logo" class="wp-image-784" style="object-fit:contain;width:100px;height:100px"/></figure> 426</div> 427 428 429<h4 class="wp-block-heading has-primary-color has-text-color has-link-color has-medium-font-size wp-elements-5">AI readiness, strategy and training</h4> 430 431 432 433<p class="is-style-default has-primary-color has-text-color has-link-color wp-elements-6 wp-block-paragraph"></p> 434</div></div> 435 436 437 438<div class="wp-block-coblocks-feature coblocks-feature-416174453957 jeffkelly-servicebox"><div class="wp-block-coblocks-feature__inner has-padding has-medium-padding"><div class="wp-block-image jeffkelly-servicesicon"> 439<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="150" height="150" src="https://jeffkelly.com/wp-content/uploads/2025/06/power-platform-services-1.png" alt="" class="wp-image-785" style="object-fit:contain;width:100px;height:100px"/></figure> 440</div> 441 442 443<h4 class="wp-block-heading has-primary-color has-text-color has-link-color has-medium-font-size wp-elements-7">Power Platform strategy, solutions and training</h4> 444 445 446 447<p class="is-style-default has-primary-color has-text-color has-link-color wp-elements-8 wp-block-paragraph"></p> 448</div></div> 449</div></div> 450</div> 451 </div> 452 </div> 453 454</article> 455 456 </main> 457 458 459<footer id="colophon" class="site-footer site-footer--2 has-background"> 460 461 <div class="site-footer__inner flex flex-column lg:flex-row lg:flex-wrap items-center align-center max-w-wide m-auto px"> 462 463 <nav class="footer-navigation text-sm" aria-label="Footer Menu"> 464 <div class="menu-footer-menu-container"><ul id="menu-footer-menu" class="footer-menu footer-menu--1 list-reset"><li id="menu-item-54" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-51 current_page_item menu-item-54"><a href="https://jeffkelly.com/home/services/" aria-current="page">What I do</a></li> 465<li id="menu-item-47" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47"><a href="https://jeffkelly.com/home/blog/">What I think</a></li> 466<li id="menu-item-256" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-256"><a href="https://jeffkelly.com/home/contact-me/">Contact me</a></li> 467<li id="menu-item-562" class="jeffkelly-setmorebuttonF menu-item menu-item-type-custom menu-item-object-custom menu-item-562"><a target="_blank" href="https://jeffkelly.setmore.com">Book a free call</a></li> 468</ul></div> </nav> 469 470 <ul class="social-icons list-reset"> 471 472 473 474 475 476 477 478 479 <li class="display-inline-block social-icon-linkedin"> 480 <a class="social-icons__icon" href="https://www.linkedin.com/in/jeffckelly" aria-label="Open LinkedIn in a new tab" rel="noopener noreferrer" target="_blank"> 481 <svg role="img" aria-hidden="true" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,
4811.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg> 482 <span class="screen-reader-text"> 483 Open LinkedIn in a new tab </span> 484 </a> 485 </li> 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 </ul> 503 504 505 <div class="site-info text-xs mb-0 lg:w-full"> 506 507 © 2026 <span class="copyright"> 508 Jeff C. Kelly </span> 509 510 511 </div> 512 513 514 </div> 515 516</footer> 517 518 </div> 519 520
520<script type="speculationrules"> 521{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/go/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 522</script>
522 523
523<script> 524 /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); 525 </script>
525 526
526<script id="coblocks-animation-js" src="https://jeffkelly.com/wp-content/plugins/coblocks/dist/js/coblocks-animation.js?ver=3.1.17"></script>
vendor: 1 bytes, line 526
526
527<script id="go-frontend-js-extra"> 528var goFrontend = {"openMenuOnHover":"1","isMobile":""}; 529//# sourceURL=go-frontend-js-extra 530</script>
vendor: 1 bytes, line 530
530
531<script id="go-frontend-js" src="https://jeffkelly.com/wp-content/themes/go/dist/js/frontend.min.js?ver=1.8.18"></script>
vendor: 1 bytes, line 531
531
532<script id="wp-emoji-settings" type="application/json"> 533{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://jeffkelly.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 534</script>
vendor: 1 bytes, line 534
534
535<script type="module"> 536/*! This file is auto-generated */ 537var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 538//# sourceURL=https://jeffkelly.com/wp-includes/js/wp-emoji-loader.min.js 539</script>
539 540
540<script>'undefined'=== typeof _trfq || (window._trfq = []);'undefined'=== typeof _trfd && (window._trfd=[]), 541 _trfd.push({'tccl.baseHost':'secureserver.net'}), 542 _trfd.push({'ap':'wpaas_v2'}, 543 {'server':'9862da823d4e'}, 544 {'pod':'c17-prod-p3-us-west-2'}, 545 {'xid':'45482799'}, 546 {'wp':'7.1.2'}, 547 {'php':'8.2.33'}, 548 {'loggedin':'0'}, 549 {'cdn':'1'}, 550 {'builder':'wp-block-editor'}, 551 {'theme':'go'}, 552 {'wds':'0'}, 553 {'wp_alloptions_count':'290'}, 554 {'wp_alloptions_bytes':'84567'}, 555 {'gdl_coming_soon_page':'0'} 556 , {'appid':'536690'} ); 557 var trafficScript = document.createElement('script'); trafficScript.src = 'https://img1.wsimg.com/signals/js/clients/scc-c2/scc-c2.min.js'; window.document.head.appendChild(trafficScript);</script>
557 558
558<script>window.addEventListener('click', function (elem) { var _elem$target, _elem$target$dataset, _window, _window$_trfq; return (elem === null || elem === void 0 ? void 0 : (_elem$target = elem.target) === null || _elem$target === void 0 ? void 0 : (_elem$target$dataset = _elem$target.dataset) === null || _elem$target$dataset === void 0 ? void 0 : _elem$target$dataset.eid) && ((_window = window) === null || _window === void 0 ? void 0 : (_window$_trfq = _window._trfq) === null || _window$_trfq === void 0 ? void 0 : _window$_trfq.push(["cmdLogEvent", "click", elem.target.dataset.eid]));});</script>
558 559
559<script src='https://img1.wsimg.com/traffic-assets/js/tccl-tti.min.js' onload="window.tti.calculateTTI()"></script>
559 560 561 </body> 562</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.