CINXE.COM
The Non-Technical Founder’s Guide to Building a Robust Social Network – Gravatar Blog
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name='robots' content='max-image-preview:large' /> <!-- Async WordPress.com Remote Login --> <script id="wpcom_remote_login_js"> var wpcom_remote_login_extra_auth = ''; function wpcom_remote_login_remove_dom_node_id( element_id ) { var dom_node = document.getElementById( element_id ); if ( dom_node ) { dom_node.parentNode.removeChild( dom_node ); } } function wpcom_remote_login_remove_dom_node_classes( class_name ) { var dom_nodes = document.querySelectorAll( '.' + class_name ); for ( var i = 0; i < dom_nodes.length; i++ ) { dom_nodes[ i ].parentNode.removeChild( dom_nodes[ i ] ); } } function wpcom_remote_login_final_cleanup() { wpcom_remote_login_remove_dom_node_classes( "wpcom_remote_login_msg" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_validate" ); wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_js" ); wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_iframe" ); wpcom_remote_login_remove_dom_node_id( "wpcom_request_access_styles" ); } // Watch for messages back from the remote login window.addEventListener( "message", function( e ) { if ( e.origin === "https://r-login.wordpress.com" ) { var data = {}; try { data = JSON.parse( e.data ); } catch( e ) { wpcom_remote_login_final_cleanup(); return; } if ( data.msg === 'LOGIN' ) { // Clean up the login check iframe wpcom_remote_login_remove_dom_node_id( "wpcom_remote_login_key" ); var id_regex = new RegExp( /^[0-9]+$/ ); var token_regex = new RegExp( /^.*|.*|.*$/ ); if ( token_regex.test( data.token ) && id_regex.test( data.wpcomid ) ) { // We have everything we need to ask for a login var script = document.createElement( "script" ); script.setAttribute( "id", "wpcom_remote_login_validate" ); script.src = '/remote-login.php?wpcom_remote_login=validate' + '&wpcomid=' + data.wpcomid + '&token=' + encodeURIComponent( data.token ) + '&host=' + window.location.protocol + '//' + window.location.hostname + '&postid=2274' + '&is_singular=1'; document.body.appendChild( script ); } return; } // Safari ITP, not logged in, so redirect if ( data.msg === 'LOGIN-REDIRECT' ) { window.location = 'https://wordpress.com/log-in?redirect_to=' + window.location.href; return; } // Safari ITP, storage access failed, remove the request if ( data.msg === 'LOGIN-REMOVE' ) { var css_zap = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } @media screen and ( max-width: 782px ) { html { margin-top: 0 !important; } * html body { margin-top: 0 !important; } }'; var style_zap = document.createElement( 'style' ); style_zap.type = 'text/css'; style_zap.appendChild( document.createTextNode( css_zap ) ); document.body.appendChild( style_zap ); var e = document.getElementById( 'wpcom_request_access_iframe' ); e.parentNode.removeChild( e ); document.cookie = 'wordpress_com_login_access=denied; path=/; max-age=31536000'; return; } // Safari ITP if ( data.msg === 'REQUEST_ACCESS' ) { console.log( 'request access: safari' ); // Check ITP iframe enable/disable knob if ( wpcom_remote_login_extra_auth !== 'safari_itp_iframe' ) { return; } // If we are in a "private window" there is no ITP. var private_window = false; try { var opendb = window.openDatabase( null, null, null, null ); } catch( e ) { private_window = true; } if ( private_window ) { console.log( 'private window' ); return; } var iframe = document.createElement( 'iframe' ); iframe.id = 'wpcom_request_access_iframe'; iframe.setAttribute( 'scrolling', 'no' ); iframe.setAttribute( 'sandbox', 'allow-storage-access-by-user-activation allow-scripts allow-same-origin allow-top-navigation-by-user-activation' ); iframe.src = 'https://r-login.wordpress.com/remote-login.php?wpcom_remote_login=request_access&origin=' + encodeURIComponent( data.origin ) + '&wpcomid=' + encodeURIComponent( data.wpcomid ); var css = 'html { -webkit-transition: margin-top 1s; transition: margin-top 1s; } /* 9001 */ html { margin-top: 46px !important; } * html body { margin-top: 46px !important; } @media screen and ( max-width: 660px ) { html { margin-top: 71px !important; } * html body { margin-top: 71px !important; } #wpcom_request_access_iframe { display: block; height: 71px !important; } } #wpcom_request_access_iframe { border: 0px; height: 46px; position: fixed; top: 0; left: 0; width: 100%; min-width: 100%; z-index: 99999; background: #23282d; } '; var style = document.createElement( 'style' ); style.type = 'text/css'; style.id = 'wpcom_request_access_styles'; style.appendChild( document.createTextNode( css ) ); document.body.appendChild( style ); document.body.appendChild( iframe ); } if ( data.msg === 'DONE' ) { wpcom_remote_login_final_cleanup(); } } }, false ); // Inject the remote login iframe after the page has had a chance to load // more critical resources window.addEventListener( "DOMContentLoaded", function( e ) { var iframe = document.createElement( "iframe" ); iframe.style.display = "none"; iframe.setAttribute( "scrolling", "no" ); iframe.setAttribute( "id", "wpcom_remote_login_key" ); iframe.src = "https://r-login.wordpress.com/remote-login.php" + "?wpcom_remote_login=key" + "&origin=aHR0cHM6Ly9ibG9nLmdyYXZhdGFyLmNvbQ%3D%3D" + "&wpcomid=1886259" + "&time=1732908219"; document.body.appendChild( iframe ); }, false ); </script> <title>The Non-Technical Founder’s Guide to Building a Robust Social Network – Gravatar Blog</title> <link rel='dns-prefetch' href='//s1.wp.com' /> <link rel='dns-prefetch' href='//s2.wp.com' /> <link rel='dns-prefetch' href='//gravatar.wordpress.com' /> <link rel='dns-prefetch' href='//s0.wp.com' /> <link rel='dns-prefetch' href='//stats.wp.com' /> <link rel='dns-prefetch' href='//widgets.wp.com' /> <link rel='dns-prefetch' href='//wordpress.com' /> <link rel="alternate" type="application/rss+xml" title="Gravatar Blog » Feed" href="https://blog.gravatar.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Gravatar Blog » Comments Feed" href="https://blog.gravatar.com/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="Gravatar Blog » The Non-Technical Founder’s Guide to Building a Robust Social Network Comments Feed" href="https://blog.gravatar.com/2024/10/11/create-a-social-network/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ function addLoadEvent(func) { var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else { window.onload = function () { oldonload(); func(); } } } /* ]]> */ </script> <script> window._wpemojiSettings = {"baseUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/72x72\/","ext":".png","svgUrl":"https:\/\/s0.wp.com\/wp-content\/mu-plugins\/wpcom-smileys\/twemoji\/2\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/s2.wp.com\/wp-includes\/js\/wp-emoji-release.min.js?m=1719498190i&ver=6.8-alpha-59438"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!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!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));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(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); </script> <link crossorigin='anonymous' rel='stylesheet' id='all-css-0-1' href='https://s1.wp.com/_static/??-eJxljtsOwiAQRH9IurZeWh+M37LABqncwkJN/14SNRp9PJnJmYF7EiqGQqFAuZInBpwUmIwLFsxCR8XAZXXUKeYNfNV9FclVYwPDTCWhur0YuAbwUVfXbJkcFtIiRS4/9Gd860xtKCmblmSCpT91Y7cFWa3TIF1sS87KjHl9EoP1aOjz8+LP/bgbDuN+Og7zA2E3U8A=&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-paragraph-inline-css'> .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} </style> <style id='wp-block-group-inline-css'> .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} </style> <style id='wp-block-navigation-link-inline-css'> .wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{border-top:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-left:8px;text-transform:uppercase} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-6-1' href='https://s0.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build/block-library/blocks/navigation/style.css?m=1732574862i&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-post-terms-inline-css'> .wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap} </style> <style id='wp-block-post-title-inline-css'> .wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title :where(a){display:inline-block;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} </style> <style id='wp-block-post-author-name-inline-css'> .wp-block-post-author-name{box-sizing:border-box} </style> <style id='wp-block-post-date-inline-css'> .wp-block-post-date{box-sizing:border-box} </style> <style id='wp-block-post-featured-image-inline-css'> .wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image :where(img){box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:initial}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%} </style> <style id='wp-block-heading-inline-css'> h1.has-background,h2.has-background,h3.has-background,h4.has-background,h5.has-background,h6.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} </style> <style id='wp-block-list-inline-css'> ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-24-1' href='https://s2.wp.com/_static/??-eJyljMsOwiAQRX9IOrY+0IXxW4BOGuoUCMPY9O/FNCTuXZ77OLAm5WIoGAokkskHhkkqWsxTbTLCu793ujuCFU8jWIrupcjbbPK2E0MxlhC4bISdYz7Aj3UR1cQzlmTqe2dgCbDEUQgZnMlRGAl49QmzshLG/2Vt04Kv77k8en0aLvp8uw7zBxuCXxw=&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-post-content-inline-css'> .wp-block-post-content{display:flow-root} </style> <style id='wp-block-spacer-inline-css'> .wp-block-spacer{clear:both} </style> <style id='wp-block-post-author-inline-css'> .wp-block-post-author{box-sizing:border-box;display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-right:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0} </style> <style id='jetpack-block-sharing-button-inline-css'> a.jetpack-sharing-button__button{color:inherit}.jetpack-sharing-button__button{align-items:center;background:#fff;border-radius:4px;box-shadow:0 1px 2px #0000001f,0 0 0 1px #0000001f;color:#2c3338;color:inherit;cursor:default;display:flex;flex-direction:row;font-size:inherit;font-weight:500;height:auto;justify-content:center;line-height:23px;margin:4px 4px 0;padding:4px 9px 3px;text-decoration:none}.jetpack-sharing-button__button svg{height:1.5em;width:1.5em;fill:currentColor}.jetpack-sharing-button__button:hover{box-shadow:0 1px 2px #00000038,0 0 0 1px #00000038;cursor:pointer}.jetpack-sharing-button__button.components-button{font-size:inherit;padding:4px 11px 3px 9px}.jetpack-sharing-button__button.style-icon{border:0;border-radius:50%;box-shadow:none;color:#fff;height:auto;line-height:1;margin-bottom:0;padding:7px;position:relative;top:-2px;width:auto}.jetpack-sharing-button__button.style-icon.share-bluesky{background:#0085ff}.jetpack-sharing-button__button.style-icon.share-x{background:#000}.jetpack-sharing-button__button.style-icon.share-print{background:#c5c2c2}.jetpack-sharing-button__button.style-icon.share-reddit{background:#5f99cf}.jetpack-sharing-button__button.style-icon.share-skype{background:#00aff0}.jetpack-sharing-button__button.style-icon.share-facebook{background:#0866ff}.jetpack-sharing-button__button.style-icon.share-linkedin{background:#0976b4}.jetpack-sharing-button__button.style-icon.share-mail{background:#c5c2c2}.jetpack-sharing-button__button.style-icon.share-twitter{background:#55acee}.jetpack-sharing-button__button.style-icon.share-tumblr{background:#35465c}.jetpack-sharing-button__button.style-icon.share-pinterest{background:#cc2127}.jetpack-sharing-button__button.style-icon.share-pocket{background:#ee4256}.jetpack-sharing-button__button.style-icon.share-telegram{background:#08c}.jetpack-sharing-button__button.style-icon.share-threads{background:#000}.jetpack-sharing-button__button.style-icon.share-whatsapp{background:#43d854}.jetpack-sharing-button__button.style-icon.share-mastodon{background:#6364ff}.jetpack-sharing-button__button.style-icon.share-nextdoor{background:#8ed500}.jetpack-sharing-button__button.style-icon.share-share{background:#000}.jetpack-sharing-button__button.style-icon.is-custom{padding:8px;top:2px}.jetpack-sharing-button__button.style-icon-text{margin-inline-end:4px;padding-inline-end:11px}.style-icon .jetpack-sharing-button__service-label,.style-text .sharing-buttons-preview-button__custom-icon,.style-text .social-logo{display:none}.jetpack-sharing-button__list-item{display:flex;flex-direction:row;flex-wrap:wrap;gap:5px;list-style-type:none;padding:0}.jetpack-sharing-button__list-item:first-child .jetpack-sharing-button__button{margin-inline-start:0}.style-icon-text .jetpack-sharing-button__service-label{margin-inline-start:5px}.tooltip{display:inline-block;position:relative}.tooltip .tooltiptext{background-color:#555;border-radius:6px;bottom:120%;color:#fff;display:none;padding:5px;position:absolute;text-align:center;width:5.5em} </style> <style id='jetpack-sharing-buttons-style-inline-css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-34-1' href='https://s1.wp.com/wp-content/mu-plugins/likes/jetpack-likes.css?m=1717404074i&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-comment-template-inline-css'> .wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-left:2rem}.wp-block-comment-template.alignleft{float:left}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:-moz-fit-content;width:fit-content}.wp-block-comment-template.alignright{float:right} </style> <style id='wp-block-comments-pagination-inline-css'> .wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{margin-bottom:.5em;margin-right:.5em}.wp-block-comments-pagination>.wp-block-comments-pagination-next:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers:last-child,.wp-block-comments-pagination>.wp-block-comments-pagination-previous:last-child{margin-right:0}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination.aligncenter{justify-content:center} </style> <style id='wp-block-post-comments-form-inline-css'> :where(.wp-block-post-comments-form) input:not([type=submit]),:where(.wp-block-post-comments-form) textarea{border:1px solid #949494;font-family:inherit;font-size:1em}:where(.wp-block-post-comments-form) input:where(:not([type=submit]):not([type=checkbox])),:where(.wp-block-post-comments-form) textarea{padding:calc(.667em + 2px)}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form :where(input[type=submit]){box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em} </style> <style id='wp-block-buttons-inline-css'> .wp-block-buttons{box-sizing:border-box}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-button.aligncenter{text-align:center} </style> <style id='wp-block-button-inline-css'> .wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;width:100%;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:initial;background-image:none} </style> <style id='wp-block-comments-inline-css'> .wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:left}.wp-block-post-comments .alignright{float:right}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-54-1' href='https://s1.wp.com/wp-content/mu-plugins/jetpack-plugin/sun/_inc/blocks/subscriptions/view.css?m=1727062582i&cssminify=yes' type='text/css' media='all' /> <link crossorigin='anonymous' rel='stylesheet' id='all-css-58-1' href='https://s0.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build/block-library/blocks/social-links/style.css?m=1732574862i&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-columns-inline-css'> .wp-block-columns{align-items:normal!important;box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%} </style> <style id='wp-emoji-styles-inline-css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-62-1' href='https://s2.wp.com/_static/??/wp-content/plugins/gutenberg-core/v19.7.0/build/block-library/common.css,/wp-content/plugins/coblocks/2.18.1-simple-rev.4/dist/coblocks-style.css?m=1732574862j&cssminify=yes' type='text/css' media='all' /> <style id='wp-block-library-inline-css'> .has-text-align-justify { text-align:justify; } .has-text-align-justify{text-align:justify;} </style> <style id='wp-block-template-skip-link-inline-css'> .skip-link.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; } .skip-link.screen-reader-text:focus { background-color: #eee; clip: auto !important; 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; } </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-64-1' href='https://s1.wp.com/_static/??/wp-content/mu-plugins/core-compat/wp-mediaelement.css,/wp-content/mu-plugins/wpcom-bbpress-premium-themes.css?m=1432920480j&cssminify=yes' type='text/css' media='all' /> <style id='global-styles-inline-css'> :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--base: #101517;--wp--preset--color--contrast: #f0f0f0;--wp--preset--color--primary: #8c8f94;--wp--preset--color--secondary: #1d4fc4;--wp--preset--color--tertiary: #50575e;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 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,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 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%);--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--font-size--small: clamp(0.85rem, 0.85rem + ((1vw - 0.2rem) * 0.188), 1rem);--wp--preset--font-size--medium: clamp(1.1rem, 1.1rem + ((1vw - 0.2rem) * 0.375), 1.4rem);--wp--preset--font-size--large: clamp(1.999rem, 1.999rem + ((1vw - 0.2rem) * 1.035), 2.827rem);--wp--preset--font-size--x-large: clamp(2.827rem, 2.827rem + ((1vw - 0.2rem) * 1.464), 3.998rem);--wp--preset--font-size--xx-large: clamp(3.2rem, 3.2rem + ((1vw - 0.2rem) * 3.066), 5.653rem);--wp--preset--font-family--albert-sans: 'Albert Sans';--wp--preset--font-family--alegreya: Alegreya;--wp--preset--font-family--arvo: Arvo;--wp--preset--font-family--bodoni-moda: 'Bodoni Moda';--wp--preset--font-family--bricolage-grotesque: 'Bricolage Grotesque', sans-serif;--wp--preset--font-family--cabin: Cabin;--wp--preset--font-family--chivo: Chivo;--wp--preset--font-family--commissioner: Commissioner;--wp--preset--font-family--cormorant: Cormorant;--wp--preset--font-family--courier-prime: 'Courier Prime';--wp--preset--font-family--crimson-pro: 'Crimson Pro';--wp--preset--font-family--dm-mono: 'DM Mono';--wp--preset--font-family--dm-sans: "DM Sans", sans-serif;--wp--preset--font-family--dm-serif-display: 'DM Serif Display', serif;--wp--preset--font-family--domine: Domine;--wp--preset--font-family--eb-garamond: 'EB Garamond';--wp--preset--font-family--epilogue: Epilogue;--wp--preset--font-family--fahkwang: Fahkwang, sans-serif;--wp--preset--font-family--figtree: Figtree;--wp--preset--font-family--fira-sans: 'Fira Sans';--wp--preset--font-family--fjalla-one: 'Fjalla One', sans-serif;--wp--preset--font-family--fraunces: Fraunces;--wp--preset--font-family--gabarito: Gabarito, system-ui;--wp--preset--font-family--ibm-plex-mono: 'IBM Plex Mono', monospace;--wp--preset--font-family--ibm-plex-sans: 'IBM Plex Sans';--wp--preset--font-family--ibarra-real-nova: 'Ibarra Real Nova', serif;--wp--preset--font-family--instrument-serif: 'Instrument Serif', serif;--wp--preset--font-family--inter: "Inter", sans-serif;--wp--preset--font-family--josefin-sans: 'Josefin Sans';--wp--preset--font-family--jost: Jost;--wp--preset--font-family--libre-baskerville: 'Libre Baskerville';--wp--preset--font-family--libre-franklin: 'Libre Franklin';--wp--preset--font-family--literata: Literata;--wp--preset--font-family--lora: Lora;--wp--preset--font-family--merriweather: Merriweather;--wp--preset--font-family--montserrat: Montserrat;--wp--preset--font-family--newsreader: Newsreader;--wp--preset--font-family--noto-sans-mono: 'Noto Sans Mono', sans-serif;--wp--preset--font-family--nunito: Nunito;--wp--preset--font-family--open-sans: 'Open Sans';--wp--preset--font-family--overpass: Overpass;--wp--preset--font-family--pt-serif: 'PT Serif', serif;--wp--preset--font-family--petrona: Petrona;--wp--preset--font-family--piazzolla: Piazzolla;--wp--preset--font-family--playfair-display: 'Playfair Display';--wp--preset--font-family--plus-jakarta-sans: 'Plus Jakarta Sans';--wp--preset--font-family--poppins: Poppins;--wp--preset--font-family--raleway: Raleway;--wp--preset--font-family--roboto: Roboto;--wp--preset--font-family--roboto-slab: 'Roboto Slab';--wp--preset--font-family--rubik: Rubik;--wp--preset--font-family--rufina: Rufina, serif;--wp--preset--font-family--sora: Sora;--wp--preset--font-family--source-sans-3: 'Source Sans 3', sans-serif;--wp--preset--font-family--source-serif-4: 'Source Serif 4', serif;--wp--preset--font-family--space-mono: 'Space Mono';--wp--preset--font-family--syne: Syne, sans-serif;--wp--preset--font-family--texturina: Texturina;--wp--preset--font-family--urbanist: Urbanist, sans-serif;--wp--preset--font-family--work-sans: 'Work Sans';--wp--preset--font-family--system-font: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;--wp--preset--font-family--source-serif-pro: "Source Serif Pro", serif;--wp--preset--font-family--varela-round: Varela Round;--wp--preset--font-family--source-sans-pro: 'Source Sans Pro';--wp--preset--spacing--20: calc(8px + 1.5625vw);--wp--preset--spacing--30: calc(12px + 1.5625vw);--wp--preset--spacing--40: calc(16px + 1.5625vw);--wp--preset--spacing--50: calc(20px + 1.5625vw);--wp--preset--spacing--60: calc(24px + 1.5625vw);--wp--preset--spacing--70: calc(28px + 1.5625vw);--wp--preset--spacing--80: calc(32px + 1.5625vw);--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 rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:root { --wp--style--global--content-size: 900px;--wp--style--global--wide-size: 900vw; }:where(body) { margin: 0; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) { padding-right: 0; padding-left: 0; }.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) > .alignfull { margin-left: 0; margin-right: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 0rem; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 0rem; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 0rem;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 0rem;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 0rem;}:root :where(.is-layout-grid){gap: 0rem;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}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{background-color: var(--wp--preset--color--white);color: #222222;font-family: var(--wp--preset--font-family--system-font);font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style: normal;font-weight: 400;line-height: 1.5;--wp--style--root--padding-top: 0;--wp--style--root--padding-right: var(--wp--preset--spacing--40);--wp--style--root--padding-bottom: 0;--wp--style--root--padding-left: var(--wp--preset--spacing--40);}a:where(:not(.wp-element-button)){color: #1d4fc4;font-family: var(--wp--preset--font-family--system-font);text-decoration: underline;}:root :where(a:where(:not(.wp-element-button)):hover){color: #6c93ed;text-decoration: none;}:root :where(a:where(:not(.wp-element-button)):focus){text-decoration: underline dashed;}:root :where(a:where(:not(.wp-element-button)):active){color: var(--wp--preset--color--secondary);text-decoration: none;}h1, h2, h3, h4, h5, h6{color: var(--wp--preset--color--base);font-family: var(--wp--preset--font-family--system-font);font-style: normal;font-weight: 500;line-height: 1.4;}h1{font-family: var(--wp--preset--font-family--system-font);font-size: clamp(27.42px, 1.714rem + ((1vw - 3.2px) * 1.53), 47px);font-style: normal;font-weight: 700;letter-spacing: 0px;line-height: 1.1;}h2{font-family: var(--wp--preset--font-family--system-font);font-size: clamp(18.959px, 1.185rem + ((1vw - 3.2px) * 0.863), 30px);font-style: normal;font-weight: 700;letter-spacing: 0px;line-height: 1;text-transform: capitalize;}h3{font-family: var(--wp--preset--font-family--system-font);font-size: clamp(15.747px, 0.984rem + ((1vw - 3.2px) * 0.645), 24px);font-style: normal;font-weight: 500;}h4{font-family: var(--wp--preset--font-family--system-font);font-size: clamp(14.642px, 0.915rem + ((1vw - 3.2px) * 0.575), 22px);font-style: normal;font-weight: 400;}h5{font-family: var(--wp--preset--font-family--system-font);font-size: var(--wp--preset--font-size--medium);font-style: normal;font-weight: 700;text-transform: uppercase;}h6{font-family: var(--wp--preset--font-family--system-font);font-size: var(--wp--preset--font-size--medium);text-transform: uppercase;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #1d4fc4;border-radius: 0;border-color: var(--wp--preset--color--primary);border-width: 2px;border-style: solid;color: var(--wp--preset--color--white);font-family: var(--wp--preset--font-family--system-font);font-size: var(--wp--preset--font-size--small);font-style: normal;font-weight: 600;letter-spacing: 0.01em;line-height: inherit;padding-top: min(1.125rem, 3vw) !important;padding-right: min(2.125rem, 5vw) !important;padding-bottom: min(1.125rem, 3vw) !important;padding-left: min(2.125rem, 5vw) !important;text-decoration: none;text-transform: uppercase;}:root :where(.wp-element-button:visited, .wp-block-button__link:visited){color: var(--wp--preset--color--base);}:root :where(.wp-element-button:hover, .wp-block-button__link:hover){background-color: var(--wp--preset--color--contrast);border-color: var(--wp--preset--color--contrast);color: var(--wp--preset--color--tertiary);}:root :where(.wp-element-button:focus, .wp-block-button__link:focus){background-color: var(--wp--preset--color--contrast);border-color: var(--wp--preset--color--contrast);color: var(--wp--preset--color--tertiary);}:root :where(.wp-element-button:active, .wp-block-button__link:active){background-color: var(--wp--preset--color--contrast);border-color: var(--wp--preset--color--contrast);color: var(--wp--preset--color--tertiary);}:root :where(.wp-element-caption, .wp-block-audio figcaption, .wp-block-embed figcaption, .wp-block-gallery figcaption, .wp-block-image figcaption, .wp-block-table figcaption, .wp-block-video figcaption){font-family: var(--wp--preset--font-family--system-font);}.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-base-color{color: var(--wp--preset--color--base) !important;}.has-contrast-color{color: var(--wp--preset--color--contrast) !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-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-base-background-color{background-color: var(--wp--preset--color--base) !important;}.has-contrast-background-color{background-color: var(--wp--preset--color--contrast) !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-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-base-border-color{border-color: var(--wp--preset--color--base) !important;}.has-contrast-border-color{border-color: var(--wp--preset--color--contrast) !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-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;}.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-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-xx-large-font-size{font-size: var(--wp--preset--font-size--xx-large) !important;}.has-albert-sans-font-family{font-family: var(--wp--preset--font-family--albert-sans) !important;}.has-alegreya-font-family{font-family: var(--wp--preset--font-family--alegreya) !important;}.has-arvo-font-family{font-family: var(--wp--preset--font-family--arvo) !important;}.has-bodoni-moda-font-family{font-family: var(--wp--preset--font-family--bodoni-moda) !important;}.has-bricolage-grotesque-font-family{font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;}.has-cabin-font-family{font-family: var(--wp--preset--font-family--cabin) !important;}.has-chivo-font-family{font-family: var(--wp--preset--font-family--chivo) !important;}.has-commissioner-font-family{font-family: var(--wp--preset--font-family--commissioner) !important;}.has-cormorant-font-family{font-family: var(--wp--preset--font-family--cormorant) !important;}.has-courier-prime-font-family{font-family: var(--wp--preset--font-family--courier-prime) !important;}.has-crimson-pro-font-family{font-family: var(--wp--preset--font-family--crimson-pro) !important;}.has-dm-mono-font-family{font-family: var(--wp--preset--font-family--dm-mono) !important;}.has-dm-sans-font-family{font-family: var(--wp--preset--font-family--dm-sans) !important;}.has-dm-serif-display-font-family{font-family: var(--wp--preset--font-family--dm-serif-display) !important;}.has-domine-font-family{font-family: var(--wp--preset--font-family--domine) !important;}.has-eb-garamond-font-family{font-family: var(--wp--preset--font-family--eb-garamond) !important;}.has-epilogue-font-family{font-family: var(--wp--preset--font-family--epilogue) !important;}.has-fahkwang-font-family{font-family: var(--wp--preset--font-family--fahkwang) !important;}.has-figtree-font-family{font-family: var(--wp--preset--font-family--figtree) !important;}.has-fira-sans-font-family{font-family: var(--wp--preset--font-family--fira-sans) !important;}.has-fjalla-one-font-family{font-family: var(--wp--preset--font-family--fjalla-one) !important;}.has-fraunces-font-family{font-family: var(--wp--preset--font-family--fraunces) !important;}.has-gabarito-font-family{font-family: var(--wp--preset--font-family--gabarito) !important;}.has-ibm-plex-mono-font-family{font-family: var(--wp--preset--font-family--ibm-plex-mono) !important;}.has-ibm-plex-sans-font-family{font-family: var(--wp--preset--font-family--ibm-plex-sans) !important;}.has-ibarra-real-nova-font-family{font-family: var(--wp--preset--font-family--ibarra-real-nova) !important;}.has-instrument-serif-font-family{font-family: var(--wp--preset--font-family--instrument-serif) !important;}.has-inter-font-family{font-family: var(--wp--preset--font-family--inter) !important;}.has-josefin-sans-font-family{font-family: var(--wp--preset--font-family--josefin-sans) !important;}.has-jost-font-family{font-family: var(--wp--preset--font-family--jost) !important;}.has-libre-baskerville-font-family{font-family: var(--wp--preset--font-family--libre-baskerville) !important;}.has-libre-franklin-font-family{font-family: var(--wp--preset--font-family--libre-franklin) !important;}.has-literata-font-family{font-family: var(--wp--preset--font-family--literata) !important;}.has-lora-font-family{font-family: var(--wp--preset--font-family--lora) !important;}.has-merriweather-font-family{font-family: var(--wp--preset--font-family--merriweather) !important;}.has-montserrat-font-family{font-family: var(--wp--preset--font-family--montserrat) !important;}.has-newsreader-font-family{font-family: var(--wp--preset--font-family--newsreader) !important;}.has-noto-sans-mono-font-family{font-family: var(--wp--preset--font-family--noto-sans-mono) !important;}.has-nunito-font-family{font-family: var(--wp--preset--font-family--nunito) !important;}.has-open-sans-font-family{font-family: var(--wp--preset--font-family--open-sans) !important;}.has-overpass-font-family{font-family: var(--wp--preset--font-family--overpass) !important;}.has-pt-serif-font-family{font-family: var(--wp--preset--font-family--pt-serif) !important;}.has-petrona-font-family{font-family: var(--wp--preset--font-family--petrona) !important;}.has-piazzolla-font-family{font-family: var(--wp--preset--font-family--piazzolla) !important;}.has-playfair-display-font-family{font-family: var(--wp--preset--font-family--playfair-display) !important;}.has-plus-jakarta-sans-font-family{font-family: var(--wp--preset--font-family--plus-jakarta-sans) !important;}.has-poppins-font-family{font-family: var(--wp--preset--font-family--poppins) !important;}.has-raleway-font-family{font-family: var(--wp--preset--font-family--raleway) !important;}.has-roboto-font-family{font-family: var(--wp--preset--font-family--roboto) !important;}.has-roboto-slab-font-family{font-family: var(--wp--preset--font-family--roboto-slab) !important;}.has-rubik-font-family{font-family: var(--wp--preset--font-family--rubik) !important;}.has-rufina-font-family{font-family: var(--wp--preset--font-family--rufina) !important;}.has-sora-font-family{font-family: var(--wp--preset--font-family--sora) !important;}.has-source-sans-3-font-family{font-family: var(--wp--preset--font-family--source-sans-3) !important;}.has-source-serif-4-font-family{font-family: var(--wp--preset--font-family--source-serif-4) !important;}.has-space-mono-font-family{font-family: var(--wp--preset--font-family--space-mono) !important;}.has-syne-font-family{font-family: var(--wp--preset--font-family--syne) !important;}.has-texturina-font-family{font-family: var(--wp--preset--font-family--texturina) !important;}.has-urbanist-font-family{font-family: var(--wp--preset--font-family--urbanist) !important;}.has-work-sans-font-family{font-family: var(--wp--preset--font-family--work-sans) !important;}.has-system-font-font-family{font-family: var(--wp--preset--font-family--system-font) !important;}.has-source-serif-pro-font-family{font-family: var(--wp--preset--font-family--source-serif-pro) !important;}.has-varela-round-font-family{font-family: var(--wp--preset--font-family--varela-round) !important;}.has-source-sans-pro-font-family{font-family: var(--wp--preset--font-family--source-sans-pro) !important;}.wp-block-page-list { list-style-type: none; padding: 0; } a:where(:not(.wp-element-button)) { color: #1d4fc4; font-family: var(--wp--preset--font-family--system-font); text-decoration: none; } .input[type="search"], { padding: 0 16px; line-height: 2; min-height: 30px; } div.wp-block-group:nth-child(4) { display: none; } .wp-block-search__input { margin-right: 0; min-width: 3rem; padding: 8px 12px; } @media (max-width: 781px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; margin-left: calc(24px + 1.5625vw); } } @media (min-width: 782px) and (max-width: 1440px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*="flex-basis"] { flex-grow: 0; margin-left: calc(24px + 1.5625vw); } } .wp-block-separator { border-color: #e8eaed; border-width: .5px; margin-bottom: 32px; } .wp-element-button:hover, .wp-block-button__link:hover { background-color: #6A97FF; border-color: var(--wp--preset--color--contrast); color: var(--wp--preset--color--tertiary); } .crowdsignal-forms-feedback__popover { max-height: auto; width: 380px; background-color: #fafafa; border-radius: 4px; border-top: 10px solid #1d4fc4; } .wp-element-button, .wp-block-button__link { background-color: #1d4fc4 !important; border-radius: 4px; border-color: var(--wp--preset--color--primary); border-width: 0; border-style: solid; color: #fff !important; font-size: var(--wp--preset--font-size--small); font-weight: 600; letter-spacing: .01em; line-height: inherit; padding-top: min(1.125rem, 3vw) !important; padding-right: min(2.125rem, 5vw) !important; padding-bottom: min(1.125rem, 3vw) !important; padding-left: min(2.125rem, 5vw) !important; text-decoration: none; text-transform: uppercase; cursor: pointer; } .wp-block-post-author__name { padding-top: 0 !important; } .changelog { color: #FFF; font-family: "SF Pro Display"; font-size: 20px; font-style: normal; font-weight: 400; line-height: 32px; /* 160% */ letter-spacing: .38px; } .changelog .wp-block-rss__item { display: flex; justify-content: space-between; /* Positions the date on the left and the title on the right */ border-bottom: 1px solid rgba(255, 255, 255, 0.20); /* Small line between each RSS entry */ padding-bottom: 10px; /* Adds some space below each entry before the line */ margin-bottom: 10px; /* Adds some space after the line, before the next entry */ } .changelog .wp-block-rss__item-publish-date { float: left; /* Ensures the date is on the left */ color: #FFF; font-family: "SF Pro Display"; font-size: 20px; font-style: normal; font-weight: 400; line-height: 32px; /* 160% */ letter-spacing: .38px; } .changelog .wp-block-rss__item-title { float: right; /* Ensures the title is on the right */ } .full-change-log a, .changelog .wp-block-rss__item-title a { color: white; } full-change-log a:hover, .changelog .wp-block-rss__item-title a:hover { color: #5381ee; } .avatar { -moz-border-radius: 50%; -webkit-border-radius: 50%; border-radius: 50%; } .comment img { max-width: 40px !important; } p a { text-decoration: underline; } .no-underline a { text-decoration: none; } .changelog { font-size: 24px; font-style: normal; font-weight: 300; line-height: 130%; text-decoration-line: underline; } .wp-block-rss__item { display: flex; justify-content: space-between; border-bottom: 0 !important; padding-bottom: 10px; margin-bottom: 10px; } .entry-title a { color: #1d4fc4; text-decoration: none; font-size: 16px; font-weight: 600; line-height: 0; } li a { text-decoration: underline; } .wp-block-navigation__responsive-container.is-menu-open { padding: 20px; } body, p, a, h1, h2, h3, h4, h5, h6, li { text-wrap: pretty; } :root :where(.wp-block-button .wp-block-button__link){border-radius: 4px;border-top-width: 0px;border-top-style: none;border-right-width: 0px;border-right-style: none;border-bottom-width: 0px;border-bottom-style: none;border-left-width: 0px;border-left-style: none;color: var(--wp--preset--color--white);font-style: normal;font-weight: 400;line-height: 1;} :root :where(.wp-block-comments-pagination){margin-top: var(--wp--preset--spacing--40);} :root :where(.wp-block-comments-pagination a:where(:not(.wp-element-button))){text-decoration: none;} :root :where(.wp-block-comments-title){font-size: var(--wp--preset--font-size--large);margin-bottom: var(--wp--preset--spacing--40);} :root :where(.wp-block-heading){font-style: normal;font-weight: 400;margin-top: 0;margin-bottom: 0;padding-top: var(--wp--preset--spacing--20);padding-bottom: 12px;} :root :where(.wp-block-navigation){font-size: var(--wp--preset--font-size--small);} :root :where(.wp-block-navigation a:where(:not(.wp-element-button))){text-decoration: none;} :root :where(.wp-block-navigation a:where(:not(.wp-element-button)):hover){text-decoration: underline;} :root :where(.wp-block-navigation a:where(:not(.wp-element-button)):focus){text-decoration: underline dashed;} :root :where(.wp-block-navigation a:where(:not(.wp-element-button)):active){text-decoration: none;} :root :where(.wp-block-post-author){font-size: var(--wp--preset--font-size--small);} :root :where(.wp-block-post-content a:where(:not(.wp-element-button))){color: var(--wp--preset--color--secondary);} :root :where(.wp-block-post-date){font-size: var(--wp--preset--font-size--small);font-weight: 400;} :root :where(.wp-block-post-date a:where(:not(.wp-element-button))){text-decoration: none;} :root :where(.wp-block-post-date a:where(:not(.wp-element-button)):hover){text-decoration: underline;} :root :where(.wp-block-post-terms){font-size: var(--wp--preset--font-size--small);} :root :where(.wp-block-post-title){font-size: clamp(1.93rem, 1.93rem + ((1vw - 0.2rem) * 1.838), 3.4rem);font-weight: 400;margin-top: 1.25rem;margin-bottom: 1.25rem;text-decoration: none;} :root :where(.wp-block-post-title a:where(:not(.wp-element-button))){color: var(--wp--preset--color--base);text-decoration: none;} :root :where(.wp-block-post-title a:where(:not(.wp-element-button)):hover){color: var(--wp--preset--color--base);text-decoration: underline;} :root :where(.wp-block-post-title a:where(:not(.wp-element-button)):focus){text-decoration: underline dashed;} :root :where(.wp-block-post-title a:where(:not(.wp-element-button)):active){color: var(--wp--preset--color--secondary);text-decoration: none;} :root :where(.wp-block-syntaxhighlighter-code){font-size: var(--wp--preset--font-size--small);} :root :where(p){margin-top: 0;margin-right: 0;margin-bottom: 0;margin-left: 0;padding-top: 12px;padding-right: 0;padding-bottom: 12px;padding-left: 0;} :root :where(.wp-block-group){margin-top: 0;margin-bottom: 0;padding-top: 0;padding-bottom: 0;}:root :where(.wp-block-group-is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.wp-block-group-is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.wp-block-group-is-layout-flow) > *{margin-block-start: var(--wp--preset--spacing--20);margin-block-end: 0;}:root :where(.wp-block-group-is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.wp-block-group-is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.wp-block-group-is-layout-constrained) > *{margin-block-start: var(--wp--preset--spacing--20);margin-block-end: 0;}:root :where(.wp-block-group-is-layout-flex){gap: var(--wp--preset--spacing--20);}:root :where(.wp-block-group-is-layout-grid){gap: var(--wp--preset--spacing--20);} :root :where(.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder){border-radius: 6px;}:root :where(.wp-block-image){padding-top: 8px; padding-bottom: 8px;} :root :where(.wp-block-list){padding-bottom: 0.33rem;} :root :where(.wp-block-column){padding-right: 6px;padding-left: 0;} :root :where(.wp-block-comments){background-color: var(--wp--preset--color--contrast);} :root :where(.wp-block-list > li){padding-top: 12px;padding-bottom: 12px;text-decoration: none;} :root :where(.wp-block-buttons){text-transform: capitalize;} </style> <style id='core-block-supports-inline-css'> .wp-elements-acb6284a451b582b5d07d824a953c307 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--secondary);}.wp-container-core-group-is-layout-1 > .alignfull{margin-right:calc(7px * -1);margin-left:calc(7px * -1);}.wp-container-core-navigation-is-layout-1{flex-wrap:nowrap;gap:var(--wp--preset--spacing--20);justify-content:flex-start;}.wp-container-core-group-is-layout-2 > .alignfull{margin-right:calc(var(--wp--preset--spacing--20) * -1);margin-left:calc(var(--wp--preset--spacing--20) * -1);}.wp-container-core-group-is-layout-3{flex-wrap:nowrap;gap:10px;align-items:center;}.wp-container-core-group-is-layout-4{gap:0;justify-content:flex-start;}.wp-container-core-group-is-layout-5 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:100%;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-5 > .alignwide{max-width:100%;}.wp-container-core-group-is-layout-5 .alignfull{max-width:none;}.wp-container-core-group-is-layout-5 > .alignfull{margin-right:calc(24px * -1);margin-left:calc(24px * -1);}.wp-elements-90f21b376b7c6b5e86bc54708b93a66c a:where(:not(.wp-element-button)){color:var(--wp--preset--color--base);}.wp-container-core-group-is-layout-6{flex-wrap:nowrap;gap:4px;}.wp-container-core-group-is-layout-7 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-7 > * + *{margin-block-start:12px;margin-block-end:0;}.wp-container-core-post-content-is-layout-1 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:628px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-post-content-is-layout-1 > .alignwide{max-width:900px;}.wp-container-core-post-content-is-layout-1 .alignfull{max-width:none;}.wp-container-core-group-is-layout-8{flex-wrap:nowrap;gap:4px;}.wp-elements-e42e56e2c859f275a615194576f285ce a:where(:not(.wp-element-button)){color:var(--wp--preset--color--white);}.wp-container-core-group-is-layout-9 > .alignfull{margin-right:calc(var(--wp--preset--spacing--20) * -1);margin-left:calc(var(--wp--preset--spacing--20) * -1);}.wp-elements-a623b4dd01481cec2ef483ef0e66d50d a:where(:not(.wp-element-button)){color:var(--wp--preset--color--base);}.wp-container-core-group-is-layout-10 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:600px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-10 > .alignwide{max-width:600px;}.wp-container-core-group-is-layout-10 .alignfull{max-width:none;}.wp-container-core-group-is-layout-10 > .alignfull{margin-right:calc(var(--wp--preset--spacing--20) * -1);margin-left:calc(var(--wp--preset--spacing--20) * -1);}.wp-container-core-group-is-layout-11 > .alignfull{margin-right:calc(var(--wp--preset--spacing--20) * -1);margin-left:calc(var(--wp--preset--spacing--20) * -1);}.wp-elements-a45614bab79b305055f41e9439f12ae6 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--base);}.wp-container-core-group-is-layout-12 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:628px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-12 > .alignwide{max-width:800px;}.wp-container-core-group-is-layout-12 .alignfull{max-width:none;}.wp-elements-53a4b9660e97835be74787a288c1e603 a:where(:not(.wp-element-button)){color:var(--wp--preset--color--secondary);}.wp-elements-6a7c43838ceb24e32b5e27eb17d044bb a:where(:not(.wp-element-button)){color:var(--wp--preset--color--base);}.wp-container-core-group-is-layout-14 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:500px;margin-left:0 !important;margin-right:auto !important;}.wp-container-core-group-is-layout-14 > .alignwide{max-width:500px;}.wp-container-core-group-is-layout-14 .alignfull{max-width:none;}.wp-container-core-group-is-layout-14 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-14 > * + *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-15 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:600px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-15 > .alignwide{max-width:600px;}.wp-container-core-group-is-layout-15 .alignfull{max-width:none;}.wp-container-core-group-is-layout-16 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:900px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-16 > .alignwide{max-width:900vw;}.wp-container-core-group-is-layout-16 .alignfull{max-width:none;}.wp-container-core-group-is-layout-16 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-16 > * + *{margin-block-start:0;margin-block-end:0;}.wp-elements-f39521faa7c13dc2286ffbedb212928a a:where(:not(.wp-element-button)){color:var(--wp--preset--color--white);}.wp-container-core-column-is-layout-1 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-column-is-layout-1 > * + *{margin-block-start:0px;margin-block-end:0;}.wp-container-core-navigation-is-layout-2{gap:12px;flex-direction:column;align-items:flex-start;}.wp-container-core-column-is-layout-2 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-column-is-layout-2 > * + *{margin-block-start:0;margin-block-end:0;}.wp-container-core-navigation-is-layout-3{gap:12px;flex-direction:column;align-items:flex-start;}.wp-container-core-column-is-layout-3 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-column-is-layout-3 > * + *{margin-block-start:0;margin-block-end:0;}.wp-container-core-navigation-is-layout-4{gap:12px;flex-direction:column;align-items:flex-start;}.wp-container-core-column-is-layout-4 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-column-is-layout-4 > * + *{margin-block-start:0;margin-block-end:0;}.wp-container-core-columns-is-layout-1{flex-wrap:nowrap;gap:2em 0;}.wp-container-core-group-is-layout-17 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:1056px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-17 > .alignwide{max-width:1056px;}.wp-container-core-group-is-layout-17 .alignfull{max-width:none;}.wp-container-core-group-is-layout-17 > .alignfull{margin-right:calc(var(--wp--preset--spacing--20) * -1);margin-left:calc(var(--wp--preset--spacing--20) * -1);}.wp-container-core-group-is-layout-17 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-17 > * + *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-18{flex-wrap:nowrap;gap:4px;}.wp-elements-31b252f86c1ffceac5c3db4eef41919b a:where(:not(.wp-element-button)){color:var(--wp--preset--color--white);}.wp-container-core-group-is-layout-19{justify-content:space-between;}.wp-container-core-group-is-layout-20 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:1056px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-20 > .alignwide{max-width:1056px;}.wp-container-core-group-is-layout-20 .alignfull{max-width:none;}.wp-container-core-group-is-layout-21{justify-content:space-between;align-items:center;}.wp-container-core-group-is-layout-22 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:1056px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-22 > .alignwide{max-width:1056px;}.wp-container-core-group-is-layout-22 .alignfull{max-width:none;}.wp-elements-6c2eb3679e7d2bfa58917bee0467e43f a:where(:not(.wp-element-button)){color:var(--wp--preset--color--secondary);}.wp-container-core-group-is-layout-23{justify-content:space-between;align-items:center;}.wp-container-core-group-is-layout-24 > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width:1056px;margin-left:auto !important;margin-right:auto !important;}.wp-container-core-group-is-layout-24 > .alignwide{max-width:1056px;}.wp-container-core-group-is-layout-24 .alignfull{max-width:none;} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-68-1' href='https://s0.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/sun/vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.css?m=1729061509i&cssminify=yes' type='text/css' media='all' /> <link rel='stylesheet' id='verbum-gutenberg-css-css' href='https://widgets.wp.com/verbum-block-editor/block-editor.css?ver=1721244820' media='all' /> <link crossorigin='anonymous' rel='stylesheet' id='all-css-70-1' href='https://s0.wp.com/_static/??-eJx9jFEKg0AMRC9kDMJK24/Ss9hlu8RmE3FXen1jBcUi/Zs3wxv8DOBVSpCCaYKBp0iS0WtKVgHTOxjln6a2pkJC0UJm5y2sw/nnGJ6s0WL8Hu74T4pBgdV3hVQOAC/uaFzUR7o3rr05d700rp8Bg7ZNhA==&cssminify=yes' type='text/css' media='all' /> <style id='jetpack-global-styles-frontend-style-inline-css'> :root { --font-headings: unset; --font-base: unset; --font-headings-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif; --font-base-default: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;} </style> <link crossorigin='anonymous' rel='stylesheet' id='all-css-72-1' href='https://s2.wp.com/wp-content/themes/h4/global.css?m=1420737423i&cssminify=yes' type='text/css' media='all' /> <script id="jetpack-blocks-assets-base-url-js-before"> var Jetpack_Block_Assets_Base_Url="https://s0.wp.com/wp-content/mu-plugins/jetpack-plugin/sun/_inc/blocks/"; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s1.wp.com/_static/??-eJytzEsOQDAUBdANqRt/E7EUoWnox2vjvbJ9E0swPJODJykdSQwJzqxSyLslhjOSVu0/gzNhsaSxhag9g4/1srSrLYtEwm3NUzou8GM2n1M11O3Y9VUzuhfTCj3J'></script> <script crossorigin='anonymous' src="https://s0.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build/dom-ready/index.min.js?m=1732574862i&ver=222ad38e3e5e302c8bbf" id="wp-dom-ready-js"></script> <script id="wp-dom-ready-js-after"> wp.galleryBlockV2Enabled = true </script> <script id="jetpack-mu-wpcom-settings-js-before"> var JETPACK_MU_WPCOM_SETTINGS = {"assetsUrl":"https:\/\/s1.wp.com\/wp-content\/mu-plugins\/jetpack-mu-wpcom-plugin\/sun\/vendor\/automattic\/jetpack-mu-wpcom\/src\/build\/"}; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s2.wp.com/_static/??-eJydjUsOwjAMBS9EagUWYYM4CmrTUNy6ThQ7/dyeINENS5ZPbzQDazI+sgZWmItJVAZkgTFoav303SCF4YHsoaPoJwF5tRl5MF1RjRVfMKzNKCeotopR6UN1CPQoCkvgPubPlSLtTyRqZuQD/yNeOvEZk+Jv+nDVciY1Kcdtr999vll3dtZdrb2Mb56SWiY='></script> <script id="rlt-proxy-js-after"> rltInitialize( {"token":null,"iframeOrigins":["https:\/\/widgets.wp.com"]} ); </script> <script crossorigin='anonymous' src="https://s0.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build/hooks/index.min.js?m=1732574862i&ver=84e753e2b66eb7028d38" id="wp-hooks-js"></script> <script crossorigin='anonymous' src="https://s0.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build/i18n/index.min.js?m=1732574862i&ver=bd5a2533e717a1043151" id="wp-i18n-js"></script> <script id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); </script> <script id="wpcom-actionbar-placeholder-js-extra"> var actionbardata = {"siteID":"1886259","postID":"2274","siteURL":"https:\/\/blog.gravatar.com","xhrURL":"https:\/\/blog.gravatar.com\/wp-admin\/admin-ajax.php","nonce":"ccf9f61fa5","isLoggedIn":"","statusMessage":"","subsEmailDefault":"instantly","proxyScriptUrl":"https:\/\/s0.wp.com\/wp-content\/js\/wpcom-proxy-request.js?ver=20211021","shortlink":"https:\/\/wp.me\/p7UHx-AG","i18n":{"followedText":"New posts from this site will now appear in your <a href=\"https:\/\/wordpress.com\/read\">Reader<\/a>","foldBar":"Collapse this bar","unfoldBar":"Expand this bar"}}; </script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://gravatar.wordpress.com/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress.com" /> <link rel="canonical" href="https://blog.gravatar.com/2024/10/11/create-a-social-network/" /> <link rel='shortlink' href='https://wp.me/p7UHx-AG' /> <link rel="alternate" type="application/json+oembed" href="https://public-api.wordpress.com/oembed/?format=json&url=https%3A%2F%2Fblog.gravatar.com%2F2024%2F10%2F11%2Fcreate-a-social-network%2F&for=wpcom-auto-discovery" /><link rel="alternate" type="application/xml+oembed" href="https://public-api.wordpress.com/oembed/?format=xml&url=https%3A%2F%2Fblog.gravatar.com%2F2024%2F10%2F11%2Fcreate-a-social-network%2F&for=wpcom-auto-discovery" /> <!-- Jetpack Open Graph Tags --> <meta property="og:type" content="article" /> <meta property="og:title" content="The Non-Technical Founder’s Guide to Building a Robust Social Network" /> <meta property="og:url" content="https://blog.gravatar.com/2024/10/11/create-a-social-network/" /> <meta property="og:description" content="Building a social network as a non-technical founder? This guide navigates the challenges, from choosing the right platform to ensuring security and growth." /> <meta property="article:published_time" content="2024-10-11T14:54:25+00:00" /> <meta property="article:modified_time" content="2024-11-14T11:36:13+00:00" /> <meta property="og:site_name" content="Gravatar Blog" /> <meta property="og:image" content="https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=1200" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="675" /> <meta property="og:image:alt" content="" /> <meta property="og:locale" content="en_US" /> <meta property="article:publisher" content="https://www.facebook.com/WordPresscom" /> <meta name="twitter:creator" content="@gravatar" /> <meta name="twitter:site" content="@gravatar" /> <meta name="twitter:text:title" content="The Non-Technical Founder’s Guide to Building a Robust Social Network" /> <meta name="twitter:image" content="https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=640" /> <meta name="twitter:card" content="summary_large_image" /> <!-- End Jetpack Open Graph Tags --> <link rel='openid.server' href='https://blog.gravatar.com/?openidserver=1' /> <link rel='openid.delegate' href='https://blog.gravatar.com/' /> <link rel="search" type="application/opensearchdescription+xml" href="https://blog.gravatar.com/osd.xml" title="Gravatar Blog" /> <link rel="search" type="application/opensearchdescription+xml" href="https://s1.wp.com/opensearch.xml" title="WordPress.com" /> <script type="importmap" id="wp-importmap"> {"imports":{"@wordpress\/interactivity":"https:\/\/s0.wp.com\/wp-content\/plugins\/gutenberg-core\/v19.7.0\/build-module\/interactivity\/index.min.js?ver=63df923685080be7c130"}} </script> <script type="module" src="https://s1.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build-module/block-library/navigation/view.min.js?ver=7b370e821516feba4955" id="@wordpress/block-library/navigation/view-js-module"></script> <link rel="modulepreload" href="https://s0.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build-module/interactivity/index.min.js?ver=63df923685080be7c130" id="@wordpress/interactivity-js-modulepreload"><meta name="application-name" content="Gravatar Blog" /><meta name="msapplication-window" content="width=device-width;height=device-height" /><meta name="msapplication-tooltip" content="News and announcements" /><meta name="description" content="Building a social network as a non-technical founder? This guide navigates the challenges, from choosing the right platform to ensuring security and growth." /> <style class='wp-fonts-local'> @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:100;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n3kwq131hj-sNFQ.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:100;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6rfjptAgt5VM-kVkqdyU8n1ioStndgre4dFcFh.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:200;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3uAL8lJPg-IUDNg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:200;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSGlZFgsARHNh4zg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:300;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3oQI8lJPg-IUDNg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:300;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSflVFgsARHNh4zg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n5i0g1l9kn-s.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioq131hj-sNFQ.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJ8lJPg-IUDNg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:500;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSJlRFgsARHNh4zg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAO8lJPg-IUDNg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:600;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSClNFgsARHNh4zg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:700;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3pQP8lJPg-IUDNg.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:700;font-display:fallback;src:url('https://fonts.wp.com/s/ibmplexmono/v19/-F6sfjptAgt5VM-kVkqdyU8n1ioSblJFgsARHNh4zg.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:normal;font-weight:100;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOkCnqEu92Fr1MmgWxKKTM1K9nz.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:italic;font-weight:100;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOiCnqEu92Fr1Mu51QrIzIXLsnzjYk.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:normal;font-weight:300;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOlCnqEu92Fr1MmSU5vBh05IsDqlA.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:italic;font-weight:300;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TjARc4AMX6lJBP.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:normal;font-weight:400;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOmCnqEu92Fr1Me4GZLCzYlKw.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:italic;font-weight:400;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOkCnqEu92Fr1Mu52xKKTM1K9nz.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:normal;font-weight:500;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOlCnqEu92Fr1MmEU9vBh05IsDqlA.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:italic;font-weight:500;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51S7ABc4AMX6lJBP.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:normal;font-weight:700;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlvBh05IsDqlA.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:italic;font-weight:700;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBhc4AMX6lJBP.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:normal;font-weight:900;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOlCnqEu92Fr1MmYUtvBh05IsDqlA.woff2') format('woff2');} @font-face{font-family:Roboto;font-style:italic;font-weight:900;font-display:fallback;src:url('https://fonts.wp.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TLBBc4AMX6lJBP.woff2') format('woff2');} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:300;font-display:block;src:url('https://s2.wp.com/wp-content/themes/a8c/gravatar-docs/assets/fonts/ibm-plex-mono/IBMPlexMono-Light.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:block;src:url('https://s2.wp.com/wp-content/themes/a8c/gravatar-docs/assets/fonts/ibm-plex-mono/IBMPlexMono-Regular.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:"IBM Plex Mono";font-style:italic;font-weight:400;font-display:block;src:url('https://s2.wp.com/wp-content/themes/a8c/gravatar-docs/assets/fonts/ibm-plex-mono/IBMPlexMono-Italic.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:700;font-display:block;src:url('https://s2.wp.com/wp-content/themes/a8c/gravatar-docs/assets/fonts/ibm-plex-mono/IBMPlexMono-Bold.woff2') format('woff2');font-stretch:normal;} @font-face{font-family:"Varela Round";font-style:normal;font-weight:400;font-display:fallback;src:url('https://s2.wp.com/wp-content/themes/a8c/gravatar-docs/assets/fonts/varela-round_normal_400.ttf') format('truetype');} </style> <link rel="icon" href="https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=32" sizes="32x32" /> <link rel="icon" href="https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=192" sizes="192x192" /> <link rel="apple-touch-icon" href="https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=180" /> <meta name="msapplication-TileImage" content="https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=270" /> <link rel="stylesheet" id="custom-css-css" type="text/css" href="https://s2.wp.com/?custom-css=1&csblog=7UHx&cscache=6&csrev=17" /> <!-- Jetpack Google Analytics --> <script async src='https://www.googletagmanager.com/gtag/js?id=G-2937MXBX34'></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push( arguments ); } gtag( 'js', new Date() ); gtag( 'config', "G-2937MXBX34" ); </script> <!-- End Jetpack Google Analytics --> </head> <body class="post-template-default single single-post postid-2274 single-format-standard wp-custom-logo wp-embed-responsive jps-theme-a8c/gravatar-docs customizer-styles-applied jetpack-reblog-enabled"> <div class="wp-site-blocks"><header class="wp-block-template-part"> <div class="wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-5 wp-block-group-is-layout-constrained" style="padding-right:24px;padding-left:24px"> <div class="wp-block-group is-content-justification-left is-layout-flex wp-container-core-group-is-layout-4 wp-block-group-is-layout-flex" style="margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0"> <div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-3 wp-block-group-is-layout-flex" style="padding-top:24px"> <figure class="wp-block-image size-full is-resized"><a href="https://gravatar.com"><img src="https://gravatar41.files.wordpress.com/2024/01/logo.png" alt="" class="wp-image-804" style="width:auto;height:24px" /></a></figure> <div class="wp-block-group has-border-color has-global-padding is-layout-constrained wp-container-core-group-is-layout-1 wp-block-group-is-layout-constrained" style="border-color:#f0f0f0;border-width:1px;border-radius:6px;min-height:0px;margin-top:0;margin-bottom:0;padding-top:3px;padding-right:7px;padding-bottom:3px;padding-left:7px"> <p class="no-underline has-secondary-color has-text-color has-link-color wp-elements-acb6284a451b582b5d07d824a953c307" style="padding-top:0;padding-right:0;padding-bottom:0;padding-left:0;font-style:normal;font-weight:300;line-height:1.4;text-decoration:none"><a href="/">blog</a></p> </div> <div class="wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-2 wp-block-group-is-layout-constrained" style="padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)"><nav style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:500;" class="is-responsive items-justified-left no-wrap wp-block-navigation is-horizontal is-content-justification-left is-nowrap is-layout-flex wp-container-core-navigation-is-layout-1 wp-block-navigation-is-layout-flex" aria-label="Navigation" data-wp-interactive="core/navigation" data-wp-context='{"overlayOpenedBy":{"click":false,"hover":false,"focus":false},"type":"overlay","roleAttribute":"","ariaLabel":"Menu"}'><button aria-haspopup="dialog" aria-label="Open menu" class="wp-block-navigation__responsive-container-open " data-wp-on-async--click="actions.openMenuOnClick" data-wp-on--keydown="actions.handleMenuKeydown" ><svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z" /></svg></button> <div class="wp-block-navigation__responsive-container " id="modal-1" data-wp-class--has-modal-open="state.isMenuOpen" data-wp-class--is-menu-open="state.isMenuOpen" data-wp-watch="callbacks.initMenu" data-wp-on--keydown="actions.handleMenuKeydown" data-wp-on-async--focusout="actions.handleMenuFocusout" tabindex="-1" > <div class="wp-block-navigation__responsive-close" tabindex="-1"> <div class="wp-block-navigation__responsive-dialog" data-wp-bind--aria-modal="state.ariaModal" data-wp-bind--aria-label="state.ariaLabel" data-wp-bind--role="state.roleAttribute" > <button aria-label="Close menu" class="wp-block-navigation__responsive-container-close" data-wp-on-async--click="actions.closeMenuOnClick" ><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg></button> <div class="wp-block-navigation__responsive-container-content" data-wp-watch="callbacks.focusFirstElement" id="modal-1-content"> <ul style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:500;" class="wp-block-navigation__container is-responsive items-justified-left no-wrap wp-block-navigation"><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://support.gravatar.com/"><span class="wp-block-navigation-item__label">Support</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://docs.gravatar.com/"><span class="wp-block-navigation-item__label">Developers</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://gravatar.com/profile"><span class="wp-block-navigation-item__label">My Profile</span></a></li></ul> </div> </div> </div> </div></nav></div> </div> </div> </div> </header> <main class="wp-block-group is-layout-flow wp-block-group-is-layout-flow" style="margin-top:var(--wp--preset--spacing--50)"> <div class="wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-12 wp-block-group-is-layout-constrained"> <div class="wp-block-group is-layout-flow wp-container-core-group-is-layout-7 wp-block-group-is-layout-flow"><div style="padding-top:0;padding-bottom:0;margin-top:0;margin-bottom:0" class="taxonomy-category post_category_button no-underline wp-block-post-terms"><a href="https://blog.gravatar.com/category/personal-branding/" rel="tag">Personal Branding</a></div> <h1 style="font-size:clamp(24.034px, 1.502rem + ((1vw - 3.2px) * 1.247), 40px);font-style:normal;font-weight:600;" class="has-link-color wp-elements-90f21b376b7c6b5e86bc54708b93a66c wp-block-post-title has-text-color has-base-color">The Non-Technical Founder’s Guide to Building a Robust Social Network</h1> <div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6 wp-block-group-is-layout-flex"> <p style="padding-top:0;padding-bottom:0">By</p> <div class="no-underline wp-block-post-author-name"><a href="https://blog.gravatar.com/author/burtrw/" target="_self" class="wp-block-post-author-name__link">Ronnie Burt</a></div> <p style="padding-top:0;padding-bottom:0">| Published</p> <div class="wp-block-post-date"><time datetime="2024-10-11T06:54:25-08:00">October 11, 2024</time></div></div> </div> <figure style="padding-top:1em;padding-right:1em;padding-bottom:1em;padding-left:1em;" class="alignwide wp-block-post-featured-image"><img width="1024" height="576" src="https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=1024" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="" decoding="async" style="border-radius:6px;object-fit:cover;" srcset="https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=1024 1024w, https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=2048 2048w, https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=150 150w, https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=300 300w, https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=768 768w, https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=660 660w" sizes="(max-width: 1024px) 100vw, 1024px" data-attachment-id="2284" data-permalink="https://blog.gravatar.com/2024/10/11/create-a-social-network/create_a_social_network_featured/" data-orig-file="https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png" data-orig-size="3841,2161" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="create_a_social_network_featured" data-image-description="" data-image-caption="" data-medium-file="https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=300" data-large-file="https://blog.gravatar.com/wp-content/uploads/2024/10/create_a_social_network_featured.png?w=660" /></figure> <div class="entry-content alignwide wp-block-post-content has-global-padding is-layout-constrained wp-container-core-post-content-is-layout-1 wp-block-post-content-is-layout-constrained"> <p>We believe that the days of a few large social networks are over, and the future is many, more niche platforms.</p> <p>Users are increasingly concerned about privacy and moderation policies on major social media apps. This shift has sparked interest in newer, more focused social networks that cater to specific interests or communities.</p> <p>Creating a social media platform isn’t just for tech giants anymore. Whether you’re a seasoned entrepreneur or a visionary with a unique idea, there are various approaches to bringing your social network to life. This guide explores different methods and provides a checklist of essential elements for launching your app.</p> <h2 class="wp-block-heading"><strong>Laying the Groundwork for Your Social Network</strong></h2> <h3 class="wp-block-heading"><strong>Defining Your Vision and Unique Selling Proposition (USP)</strong></h3> <p>Your vision sets the foundation for your social network. It should address a specific need or gap in the market while aligning with your personal or company values. Here are some examples:</p> <ul class="wp-block-list"> <li><strong>Long-term goal:</strong> “Create a platform that connects pet owners for playdates and advice sharing.”</li> <li><strong>Potential pivot:</strong> “Expand from pet owners to include pet service providers like vets and groomers.”</li> <li><strong>Value alignment:</strong> “Promote responsible pet ownership and animal welfare.”</li> </ul> <p>Your USP is what sets your platform apart. It could be a unique feature, target audience, or approach to content. Examples include:</p> <ul class="wp-block-list"> <li><strong>Unique feature:</strong> “AI-powered pet breed identification from photos.”</li> <li><strong>Target audience:</strong> “Focus on exotic pet owners, an underserved niche.”</li> <li><strong>Content approach:</strong> “User-generated care guides verified by veterinarians.”</li> </ul> <h3 class="wp-block-heading"><strong>Market Research and Competitor Analysis</strong></h3> <p>Thorough market research involves both quantitative and qualitative methods:</p> <ul class="wp-block-list"> <li><strong>Quantitative: </strong>Online surveys about pet ownership habits and social media usage.</li> <li><strong>Qualitative: </strong>Focus groups with pet owners to understand their needs and frustrations.</li> <li><strong>Cultural considerations:</strong> Pet ownership norms in different countries or regions.</li> </ul> <p>Identify market gaps by exploring current trends. For example, you might find that while there are many general pet forums, there’s no dedicated platform for aquarium enthusiasts.</p> <p>For competitor analysis, examine existing pet-related social networks:</p> <ul class="wp-block-list"> <li><strong>Strengths: </strong>Large user base, extensive pet care articles.</li> <li><strong>Weaknesses: </strong>Limited features for local connections and generic content.</li> <li><strong>Business model:</strong> Advertising revenue, premium memberships.</li> </ul> <p>Use a SWOT (Strengths, Weaknesses, Opportunities, and Threats) analysis to compare your idea against competitors:</p> <ul class="wp-block-list"> <li><strong>Strengths: </strong>Niche focus, unique features.</li> <li><strong>Weaknesses: </strong>Smaller initial user base, limited resources.</li> <li><strong>Opportunities: </strong>Growing pet ownership trends and increasing demand for specialized information.</li> <li><strong>Threats: </strong>Potential for larger networks to add similar features.</li> </ul> <h3 class="wp-block-heading"><strong>Creating User Personas</strong></h3> <p>Develop multiple personas representing different user segments. For example:</p> <figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td colspan="2"><strong>Sarah, 28, first-time dog owner</strong></td></tr><tr><td><strong>Demographics</strong></td><td>Young professional, urban dweller.</td></tr><tr><td><strong>Psychographics</strong></td><td>Seeks advice, values convenience.</td></tr><tr><td><strong>Goals</strong></td><td>Find local dog parks, connect with experienced owners.</td></tr><tr><td><strong>Frustrations</strong></td><td>Overwhelmed by conflicting online advice.</td></tr></tbody></table></figure> <p><br>Consider creating an anti-persona to understand who you’re not targeting and focus your features and marketing efforts on actual pet owners.<br></p> <figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td colspan="2"><strong>Emma, 60, non-pet owner</strong></td></tr><tr><td><strong>Demographics</strong></td><td>60, retired, small-town resident.</td></tr><tr><td><strong>Psychographics</strong></td><td>Values a low-maintenance, pet-free lifestyle.</td></tr><tr><td><strong>Goals</strong></td><td>Enjoys travel and hobbies, avoids pet responsibilities.</td></tr><tr><td><strong>Frustrations</strong></td><td>Finds pet care burdensome, dislikes animals in public spaces</td></tr></tbody></table></figure> <h3 class="wp-block-heading"><strong>Outlining Core Features and Functionality</strong></h3> <p>Start with must-have features for your Minimum Viable Product (MVP). Use the MoSCoW method to prioritize:</p> <ul class="wp-block-list"> <li><strong>Must have:</strong> User profiles, pet profiles, and friend connections.</li> <li><strong>Should have:</strong> Photo sharing, direct messaging.</li> <li><strong>Could have: </strong>Event planning for pet meetups.</li> <li><strong>Won’t have (for MVP):</strong> Marketplace for pet products.</li> </ul> <p>Technical complexity and resource requirements will inevitably have an impact on the features you get started with. For instance, implementing a real-time chat feature might require more resources than a basic messaging system. The good news is that as long as you priortize UX at every stage of your network, it’s fine to roll out more advanced features later! </p> <p>Finally, <strong>plan for scalability from the start.</strong> Design your database structure to accommodate future growth, such as adding new pet types or expanding to international markets. Letting your users know what’s coming through a roadmap is a great way to keep them engaged or interested even though your network might be at early stages. </p> <h2 class="wp-block-heading"><strong>Essential Elements of a Social Media Platform</strong></h2> <h3 class="wp-block-heading"><strong>User Authentication and Security</strong></h3> <p>You need <a href="https://blog.gravatar.com/2024/07/26/user-authentication-methods/">reliable authentication and security measures</a> to protect user data and build trust. Consider implementing:</p> <ul class="wp-block-list"> <li><strong>Multiple authentication methods:</strong> <ul class="wp-block-list"> <li>Email and password.</li> </ul> </li> </ul> <figure class="wp-block-image size-full"><img data-attachment-id="2277" data-permalink="https://blog.gravatar.com/2024/10/11/create-a-social-network/pap_graphic-2/" data-orig-file="https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png" data-orig-size="2289,1145" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="PAP_Graphic" data-image-description="" data-image-caption="" data-medium-file="https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png?w=300" data-large-file="https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png?w=660" width="2289" height="1145" src="https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png" alt="Password Authentication Protocol example" class="wp-image-2277" srcset="https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png 2289w, https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png?w=150&h=75 150w, https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png?w=300&h=150 300w, https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png?w=768&h=384 768w, https://blog.gravatar.com/wp-content/uploads/2024/10/pap_graphic.png?w=660&h=330 660w" sizes="(max-width: 2289px) 100vw, 2289px" /></figure> <ul class="wp-block-list"> <li>Phone number verification.</li> <li><a href="https://blog.gravatar.com/2024/05/09/single-sign-on-solutions/">Single sign-on</a> (e.g., Sign in with <a href="https://www.google.co.uk/">Google</a>, <a href="https://www.facebook.com/">Facebook</a>, or <a href="https://www.apple.com/">Apple</a>).</li> </ul> <figure class="wp-block-image size-full"><img data-attachment-id="2279" data-permalink="https://blog.gravatar.com/2024/10/11/create-a-social-network/signin_iag-2/" data-orig-file="https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png" data-orig-size="1500,1500" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="Signin_IAG" data-image-description="" data-image-caption="" data-medium-file="https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png?w=300" data-large-file="https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png?w=660" loading="lazy" width="1500" height="1500" src="https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png" alt="Single Sign On example" class="wp-image-2279" srcset="https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png 1500w, https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png?w=150&h=150 150w, https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png?w=300&h=300 300w, https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png?w=768&h=768 768w, https://blog.gravatar.com/wp-content/uploads/2024/10/signin_iag.png?w=660&h=660 660w" sizes="(max-width: 1500px) 100vw, 1500px" /></figure> <ul class="wp-block-list"> <li><strong>Two-Factor Authentication (2FA):</strong> <ul class="wp-block-list"> <li>SMS codes.</li> <li>Authenticator apps (like <a href="https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en">Google Authenticator</a> or <a href="https://authy.com/">Authy</a>).</li> <li><a href="https://blog.gravatar.com/2024/05/04/authentication-protocols/">Biometric verification</a> (fingerprint or face recognition).</li> </ul> </li> </ul> <figure class="wp-block-image size-large"><img data-attachment-id="2280" data-permalink="https://blog.gravatar.com/2024/10/11/create-a-social-network/biometric-verification-3/" data-orig-file="https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png" data-orig-size="1424,801" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="biometric-verification" data-image-description="" data-image-caption="" data-medium-file="https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=300" data-large-file="https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=660" loading="lazy" width="660" height="371" src="https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=660" alt="Biometric verification" class="wp-image-2280" srcset="https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=660 660w, https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=1320 1320w, https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=150 150w, https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=300 300w, https://blog.gravatar.com/wp-content/uploads/2024/10/biometric-verification.png?w=768 768w" sizes="(max-width: 660px) 100vw, 660px" /></figure> <p>Ensure compliance with data protection regulations like <a href="https://gdpr-info.eu/">GDPR</a> and <a href="https://oag.ca.gov/privacy/ccpa">CCPA</a>. This includes:</p> <ul class="wp-block-list"> <li>Clear privacy policies.</li> <li>User consent for data collection.</li> <li>Options for users to download or delete their data.</li> </ul> <p>Regularly conduct security audits and penetration testing to identify and address vulnerabilities.</p> <h3 class="wp-block-heading"><strong>User Profiles and Account Management</strong></h3> <p>Create comprehensive yet <a href="https://blog.gravatar.com/2024/06/05/user-profile-page-examples/">flexible user profiles</a>:</p> <ul class="wp-block-list"> <li><strong>Basic information:</strong> Name, username, profile picture.</li> <li><strong>Optional fields:</strong> Bio, location, interests.</li> <li><strong>Pet-specific info (for a pet-focused network): </strong>Pet types, breeds, ages.</li> </ul> <p>Offer granular privacy settings:</p> <ul class="wp-block-list"> <li>Control who can see profile information.</li> <li>Options to make certain posts public or private.</li> </ul> <p>Consider implementing verification systems for specific user types, such as certified pet trainers or veterinarians.</p> <p>💡 If you’re looking for an excellent profile management tool to integrate into your social networking platform, <a href="https://gravatar.com/">Gravatar</a> allows users to create and manage their online identities across multiple platforms, saving development time and ensuring profile consistency.</p> <h3 class="wp-block-heading"><strong>Content Creation and Sharing</strong></h3> <p>Support various content types to keep your platform engaging:</p> <ul class="wp-block-list"> <li>Text posts (with character limits appropriate for your audience).</li> <li>Images and photo albums.</li> <li>Videos (consider length limits based on your server capacity).</li> <li>Links (with preview capabilities).</li> <li>Polls or quizzes.</li> </ul> <p>Implement content moderation tools:</p> <ul class="wp-block-list"> <li>Automated filters for inappropriate content.</li> <li>User reporting systems.</li> <li>Human moderation for complex cases.</li> </ul> <p>Address copyright issues by implementing <a href="https://copyrightalliance.org/education/copyright-law-explained/the-digital-millennium-copyright-act-dmca/dmca-notice-takedown-process/">DMCA takedown procedures</a> and educating users about copyright laws.</p> <p>Optimize for mobile:</p> <ul class="wp-block-list"> <li>Easy photo/video uploads from mobile devices.</li> <li>Mobile-friendly content creation interfaces.</li> </ul> <h3 class="wp-block-heading"><strong>Social Interactions</strong></h3> <p>Design intuitive features for connecting and interacting:</p> <ul class="wp-block-list"> <li>Friend/follow actions: <ul class="wp-block-list"> <li><em>Add Friend</em> or <em>Follow</em> buttons on profiles.</li> <li>Suggestions for new connections based on mutual friends or interests.</li> </ul> </li> <li>Privacy controls: <ul class="wp-block-list"> <li>Blocking and muting options.</li> <li>Control over who can send messages or comment on posts.</li> </ul> </li> <li>Engagement features: <ul class="wp-block-list"> <li>Likes, reactions (e.g., love, laugh, support).</li> <li><a href="https://blog.gravatar.com/2024/07/11/enable-comments-in-wordpress/">Comments with threading for conversations</a>.</li> <li>Sharing options (within the platform and to external sites).</li> </ul> </li> <li>Groups and communities: <ul class="wp-block-list"> <li>Public and private group options.</li> <li>Group roles (admin, moderator, member).</li> <li>Group-specific content feeds.</li> </ul> </li> </ul> <h3 class="wp-block-heading"><strong>News Feeds and Content Discovery</strong></h3> <p>Create an engaging and personalized content experience:</p> <ul class="wp-block-list"> <li><strong>Algorithmic feed:</strong> <ul class="wp-block-list"> <li>Balance between chronological order and relevance.</li> <li>Machine learning for personalized recommendations.</li> </ul> </li> <li><strong>Discovery features:</strong> <ul class="wp-block-list"> <li>“Explore” or “Trending” sections.</li> <li>Hashtag systems for content categorization.</li> </ul> </li> <li><strong>Ethical considerations:</strong> <ul class="wp-block-list"> <li>Transparency about how content is ranked.</li> <li>Options to see a chronological feed to avoid filter bubbles.</li> </ul> </li> <li><strong>User control:</strong> <ul class="wp-block-list"> <li>Ability to mute certain topics or users.</li> <li>“See less like this” options for fine-tuning preferences.</li> </ul> </li> </ul> <h3 class="wp-block-heading"><strong>Notifications and Alerts</strong></h3> <ul class="wp-block-list"> <li><strong>Types of notifications:</strong> <ul class="wp-block-list"> <li>New friend requests or followers.</li> <li>Likes, comments, and mentions.</li> <li>Direct messages.</li> <li>Group activity updates.</li> </ul> </li> <li><strong>Delivery methods:</strong> <ul class="wp-block-list"> <li>In-app notifications.</li> <li>Push notifications for mobile devices.</li> <li>Email digests (daily or weekly summaries).</li> </ul> </li> <li><strong>User control:</strong> <ul class="wp-block-list"> <li>Granular settings for each notification type.</li> <li><em>Do Not Disturb</em> modes or scheduled quiet times.</li> </ul> </li> </ul> <h2 class="wp-block-heading"><strong>Development Approaches: Choosing the Right Path</strong></h2> <figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Approach</strong></td><td><strong>Pros</strong></td><td><strong>Cons</strong></td><td><strong>Best For</strong></td><td><strong>Examples</strong></td></tr><tr><td><strong>No-code Solutions</strong></td><td>Rapid prototyping and iteration. Lower initial development costs. Accessible to non-technical founders.</td><td>Limited customization options. Potential performance issues at scale. Dependency on the no-code platform’s future.</td><td>MVPs, small-scale projects, validation of concepts.</td><td><a href="https://wordpress.com/">WordPress</a> + <a href="https://buddypress.org/">BuddyPress</a><a href="https://bubble.io/">Bubble</a><a href="https://www.adalo.com/">Adalo</a> <a href="https://draftbit.com/">Draftbit</a></td></tr><tr><td><strong>App Templates and White-Label Solutions</strong></td><td>Faster time-to-market with pre-built features. Essential social network functionality included. More cost-effective than full custom development.</td><td>Less unique in terms of features and design. May include unnecessary features. Potential licensing costs and restrictions.</td><td>Entrepreneurs seeking a balance between customization and speed. Niche social networks with standard features.</td><td><a href="https://socialengine.com/">SocialEngine</a><a href="https://www.ning.com/">Ning</a><a href="https://wordpress.org/plugins/peepso-core/">PeepSo</a> (WordPress plugin)</td></tr><tr><td><strong>Custom Development</strong></td><td>Full control over features, design, and UX. Better performance and scalability potential. Ownership of all code and IP.</td><td>Higher initial costs. Longer development time. Requires ongoing maintenance and updates.</td><td>Unique social network concepts. Platforms expecting high growth. Projects with specific technical requirements.</td><td>Facebook (initial version)<a href="https://www.linkedin.com/">LinkedIn</a><a href="https://www.tiktok.com/">TikTok</a></td></tr><tr><td><strong>Hybrid Approaches</strong></td><td>Combines benefits of multiple methods. Allows for gradual scaling and customization. Flexibility in development.</td><td>Can be complex to manage. Requires clear planning and architecture. May lead to technical debt if not managed properly.</td><td>Startups with some technical expertise. Projects with evolving requirements. Platforms needing quick launch with future customization.</td><td>Starting with WordPress + BuddyPress, then adding custom featuresUsing a white-label solution with custom front-end</td></tr></tbody></table></figure> <p><br>When choosing your approach, consider your technical expertise, budget, timeline, and long-term goals. For example, if you’re validating a concept, a no-code solution like Bubble might be ideal. For a unique, scalable platform, custom development could be the best choice.</p> <p>Hybrid approaches offer flexibility. You might start with a template and gradually replace components with custom code as you grow. Or use microservices architecture to combine off-the-shelf solutions with custom-built features.</p> <p>Remember to leverage APIs and third-party services for non-core functionality. For instance, <a href="https://akismet.com/">Akismet</a> for spam protection or <a href="https://blog.gravatar.com/2024/06/03/profiles-as-a-service/">Gravatar’s REST API</a> for user avatars can save development time and improve your platform’s features.</p> <p>Whichever path you choose, focus on creating value for your users and be prepared to adapt your approach as your social network evolves.</p> <h2 class="wp-block-heading"><strong>Leveraging Gravatar for User Profile Management</strong></h2> <figure class="wp-block-image size-full"><img data-attachment-id="2282" data-permalink="https://blog.gravatar.com/2024/10/11/create-a-social-network/gravatar-profiles-as-a-service-6/" data-orig-file="https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png" data-orig-size="1473,918" data-comments-opened="1" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="gravatar-profiles-as-a-service" data-image-description="" data-image-caption="" data-medium-file="https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png?w=300" data-large-file="https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png?w=660" loading="lazy" width="1473" height="918" src="https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png" alt="Gravatar – Profile as a Service homepage" class="wp-image-2282" srcset="https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png 1473w, https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png?w=150&h=93 150w, https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png?w=300&h=187 300w, https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png?w=768&h=479 768w, https://blog.gravatar.com/wp-content/uploads/2024/10/gravatar-profiles-as-a-service-1.png?w=660&h=411 660w" sizes="(max-width: 1473px) 100vw, 1473px" /></figure> <p><a href="https://gravatar.com/">Gravatar</a> (Globally Recognized Avatar) is a powerful tool for simplifying user profile management in your social network. This service allows users to create and maintain a single online identity across multiple platforms.</p> <p>Key benefits of integrating Gravatar:</p> <ol class="wp-block-list"> <li><a href="https://blog.gravatar.com/2024/09/06/onboarding-user-experience/"><strong>Simplified user onboarding</strong></a><strong>:</strong> Users can instantly import their existing profiles, reducing registration friction.</li> <li><strong>Consistent user representation:</strong> Avatars and profile information remain uniform across various platforms.</li> <li><strong>Automatic updates: </strong>When users modify their Gravatar profile, changes reflect across all connected platforms.</li> <li><strong>Reduced development time:</strong> Eliminates the need to build a complex profile management system from scratch.</li> </ol> <p>Gravatar’s universal API integrates easily with various platforms, from <a href="https://wordpress.org/">WordPress</a> sites to custom-coded applications. Popular platforms like <a href="https://github.com/">GitHub</a>, <a href="https://slack.com/">Slack</a>, and <a href="https://openai.com/">OpenAI</a> already use Gravatar, providing a familiar experience for many users.</p> <p>Implementation is straightforward:</p> <ul class="wp-block-list"> <li>Sign up for a Gravatar developer account.</li> <li>Use the Gravatar API to fetch user profiles based on email addresses.</li> <li>Display Gravatar images using a simple URL structure.</li> </ul> <p>For more details on how to implement Gravatar in your social network, check out the<a href="https://docs.gravatar.com/api/profiles/tutorial-user-profile/"> Gravatar API Documentation</a>.</p> <h2 class="wp-block-heading"><strong>Ensuring Security and Data Protection</strong></h2> <p>Security and data protection are paramount for any social network, so make sure to implement these best practices to safeguard your platform:</p> <ul class="wp-block-list"> <li>Use secure authentication methods, including multi-factor authentication.</li> <li>Encrypt all data, both in transit and at rest.</li> <li>Regularly update and patch your systems to address vulnerabilities.</li> <li>Conduct frequent security audits and penetration testing.</li> </ul> <p>Gravatar is a privacy-forward platform that stores user data securely and allows users to control information sharing, simplifying compliance with global data protection laws with legislation such as the GDPR and CCPA. </p> <p>Other compliance measures you should consider are:</p> <ul class="wp-block-list"> <li>Implement clear, accessible privacy policies.</li> <li>Obtain explicit user consent for data collection and usage.</li> <li>Provide options for users to access, download, and delete their data.</li> </ul> <h2 class="wp-block-heading"><strong>Launching and Growing Your Social Network</strong></h2> <p>A successful launch involves several important steps:</p> <ol class="wp-block-list"> <li><strong>Beta testing: </strong>Get a small group of users to test your platform before the official launch. Their feedback will be invaluable for making improvements.</li> <li><strong>Gather user feedback:</strong> Create channels for users to easily provide feedback. This could be through in-app forms, email surveys, or user interviews.</li> <li><strong>Make iterative improvements:</strong> Use the feedback to continuously improve your platform. Be prepared to pivot if necessary.</li> </ol> <p>For marketing and user acquisition:</p> <ul class="wp-block-list"> <li>Leverage existing social media platforms to create buzz about your new network.</li> <li>Use content marketing to showcase the unique features of your platform.</li> <li>Form partnerships with influencers or brands that align with your target audience.</li> </ul> <p>Community management is the best strategy for retaining users and fostering a positive environment. Engage with your users regularly, moderate content effectively, and create opportunities for people to connect with each other.</p> <h2 class="wp-block-heading"><strong>Measuring Success and Iterating for Improvement</strong></h2> <p>Tracking Key Performance Indicators (KPIs) is crucial for measuring your social network’s success and guiding improvements. Focus on these essential metrics:</p> <ul class="wp-block-list"> <li><strong>User growth rate: </strong>Track new sign-ups over time.</li> <li><strong>Daily and monthly active users (DAU/MAU):</strong> Measure platform engagement.</li> <li><strong>Retention rate: </strong>Monitor how many users return regularly.</li> <li><strong>Engagement metrics: </strong>Track likes, comments, shares, and time spent on the platform.</li> <li><strong>Churn rate:</strong> Measure the percentage of users who stop using your platform.</li> </ul> <p>Utilize analytics tools like <a href="https://marketingplatform.google.com/about/analytics/">Google Analytics</a>, <a href="https://jetpack.com/">JetPack</a> (for WordPress), <a href="https://mixpanel.com/">Mixpanel</a>, or custom solutions to gather and analyze this data.</p> <p>Then, make sure you implement a continuous improvement cycle:</p> <ul class="wp-block-list"> <li><strong>Collect data: </strong>Regularly gather metrics and user feedback.</li> <li><strong>Analyze:</strong> Identify trends, issues, and opportunities in the data.</li> <li><strong>Hypothesize: </strong>Develop theories about how to improve based on your analysis.</li> <li><strong>Test: </strong>Implement changes on a small scale or with A/B testing.</li> <li><strong>Evaluate: </strong>Measure the impact of your changes.</li> <li><strong>Iterate: </strong>Refine successful changes and roll them out platform-wide.</li> </ul> <p>Stay updated on industry trends and competitor offerings to inform your improvement efforts. Remember, successful social networks continuously evolve based on user needs and behaviors.</p> <h2 class="wp-block-heading"><strong>Next Steps: Turn Your Vision into Reality</strong></h2> <p>Creating a new social media platform that offers value to users is entirely possible, with various avenues to get it done. The technical hurdles vary depending on your chosen method, but with the right approach, everything can be accomplished.</p> <p>Remember, building a social network is a journey of continuous learning and adaptation. Stay curious, be open to feedback, and don’t be afraid to iterate on your ideas. Your unique perspective as a non-technical founder can be a valuable asset in creating a platform that truly resonates with users.</p> <p>Take advantage of tools like the Gravatar API and all the benefits it brings. Explore the <a href="https://docs.gravatar.com/">Gravatar Profile-as-a-Service documentation</a> to see how easy and convenient everything can be!</p> </div> <div style="margin-top:0px;margin-bottom:0px;height:0px" aria-hidden="true" class="wp-block-spacer"></div> <div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-8 wp-block-group-is-layout-flex" style="padding-top:0;padding-right:0;padding-bottom:8px;padding-left:0"> <p style="font-style:italic;font-weight:500">Last modified on</p> <div style="font-style:italic;font-weight:500;" class="wp-block-post-date__modified-date wp-block-post-date"><time datetime="2024-11-14T03:36:13-08:00">November 14, 2024</time></div></div> <div class="wp-block-group has-white-color has-text-color has-background has-link-color wp-elements-e42e56e2c859f275a615194576f285ce has-global-padding is-layout-constrained wp-container-core-group-is-layout-9 wp-block-group-is-layout-constrained" style="border-radius:6px;background:linear-gradient(61deg,rgb(29,46,196) 0%,rgba(50,101,219,0.83) 100%);padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)"><div style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.469), 20px);line-height:1.1; padding-top:0px;margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;" class="is-style-default wp-block-post-author has-varela-round-font-family"><div class="wp-block-post-author__avatar"><img alt='' src='https://2.gravatar.com/avatar/20e74a1399c883caeeba81b57007bcaa058940dcdffca01babfddbaefa5c3c4a?s=48&d=identicon&r=G' srcset='https://2.gravatar.com/avatar/20e74a1399c883caeeba81b57007bcaa058940dcdffca01babfddbaefa5c3c4a?s=48&d=identicon&r=G 1x, https://2.gravatar.com/avatar/20e74a1399c883caeeba81b57007bcaa058940dcdffca01babfddbaefa5c3c4a?s=72&d=identicon&r=G 1.5x, https://2.gravatar.com/avatar/20e74a1399c883caeeba81b57007bcaa058940dcdffca01babfddbaefa5c3c4a?s=96&d=identicon&r=G 2x, https://2.gravatar.com/avatar/20e74a1399c883caeeba81b57007bcaa058940dcdffca01babfddbaefa5c3c4a?s=144&d=identicon&r=G 3x, https://2.gravatar.com/avatar/20e74a1399c883caeeba81b57007bcaa058940dcdffca01babfddbaefa5c3c4a?s=192&d=identicon&r=G 4x' class='avatar avatar-48' height='48' width='48' loading='lazy' decoding='async' /></div><div class="wp-block-post-author__content"><p class="wp-block-post-author__name"><a href="https://blog.gravatar.com/author/burtrw/" target="_self">Ronnie Burt</a></p><p class="wp-block-post-author__bio">Building the open web. Former educator, proud Texan, wannabe musician, and math nerd.</p></div></div></div> <div style="height:0px" aria-hidden="true" class="wp-block-spacer"></div> <div class="wp-block-group no-underline has-contrast-background-color has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-10 wp-block-group-is-layout-constrained" style="border-radius:6px;margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)"> <p class="has-base-color has-text-color has-link-color has-roboto-font-family has-medium-font-size wp-elements-a623b4dd01481cec2ef483ef0e66d50d" style="padding-top:0px;padding-bottom:0px"><strong>Share:</strong></p> <ul class="wp-block-jetpack-sharing-buttons has-small-icon-size jetpack-sharing-buttons__services-list is-layout-flex wp-block-jetpack-sharing-buttons-is-layout-flex" id="jetpack-sharing-serivces-list"><li class="jetpack-sharing-button__list-item"><a href="https://blog.gravatar.com/2024/10/11/create-a-social-network/?share=linkedin&nb=1" target="_blank" rel="nofollow noopener noreferrer" class="jetpack-sharing-button__button style-icon-text share-linkedin" style="" data-service="linkedin" data-shared="sharing-linkedin-2274" aria-label="Share on LinkedIn"><svg class="social-logo social-logo-linkedin" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M19.7 3H4.3A1.3 1.3 0 003 4.3v15.4A1.3 1.3 0 004.3 21h15.4a1.3 1.3 0 001.3-1.3V4.3A1.3 1.3 0 0019.7 3zM8.339 18.338H5.667v-8.59h2.672v8.59zM7.004 8.574a1.548 1.548 0 11-.002-3.096 1.548 1.548 0 01.002 3.096zm11.335 9.764H15.67v-4.177c0-.996-.017-2.278-1.387-2.278-1.389 0-1.601 1.086-1.601 2.206v4.249h-2.667v-8.59h2.559v1.174h.037c.356-.675 1.227-1.387 2.526-1.387 2.703 0 3.203 1.779 3.203 4.092v4.711z"/></g></svg><span class="jetpack-sharing-button__service-label" aria-hidden="true">LinkedIn</span></a></li> <li class="jetpack-sharing-button__list-item"><a href="https://blog.gravatar.com/2024/10/11/create-a-social-network/?share=bluesky&nb=1" target="_blank" rel="nofollow noopener noreferrer" class="jetpack-sharing-button__button style-icon-text share-bluesky" style="" data-service="bluesky" data-shared="sharing-bluesky-2274" aria-label="Share on Bluesky"><svg class="social-logo social-logo-bluesky" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21.2 3.3C20.7 3.1 19.8 2.8 17.6 4.3C15.4 6 12.9 9.2 12 11C11.1 9.2 8.6 6 6.3 4.3C4.1 2.7 3.3 3 2.7 3.3C2.1 3.6 2 4.6 2 5.1C2 5.6 2.3 9.8 2.5 10.5C3.2 12.8 5.6 13.6 7.8 13.3C4.5 13.8 1.6 15 5.4 19.2C9.6 23.5 11.1 18.3 11.9 15.6C12.7 18.3 13.6 23.3 18.3 19.2C21.9 15.6 19.3 13.8 16 13.3C18.2 13.5 20.6 12.8 21.3 10.5C21.7 9.8 22 5.7 22 5.1C22 4.6 21.9 3.6 21.2 3.3Z" /></svg><span class="jetpack-sharing-button__service-label" aria-hidden="true">Bluesky</span></a></li> <li class="jetpack-sharing-button__list-item"><a href="https://blog.gravatar.com/2024/10/11/create-a-social-network/?share=threads&nb=1" target="_blank" rel="nofollow noopener noreferrer" class="jetpack-sharing-button__button style-icon-text share-threads" style="" data-service="threads" data-shared="sharing-threads-2274" aria-label="Share on Threads"><svg class="social-logo social-logo-threads" height="24" width="24" viewBox="0 0 192 192" xmlns="http://www.w3.org/2000/svg"><g><path class="x19hqcy" d="M141.537 88.988a66.667 66.667 0 00-2.518-1.143c-1.482-27.307-16.403-42.94-41.457-43.1h-.34c-14.986 0-27.449 6.396-35.12 18.036l13.779 9.452c5.73-8.695 14.724-10.548 21.348-10.548h.229c8.249.053 14.474 2.452 18.503 7.129 2.932 3.405 4.893 8.111 5.864 14.05-7.314-1.243-15.224-1.626-23.68-1.14-23.82 1.371-39.134 15.264-38.105 34.568.522 9.792 5.4 18.216 13.735 23.719 7.047 4.652 16.124 6.927 25.557 6.412 12.458-.683 22.231-5.436 29.049-14.127 5.178-6.6 8.453-15.153 9.899-25.93 5.937 3.583 10.337 8.298 12.767 13.966 4.132 9.635 4.373 25.468-8.546 38.376-11.319 11.308-24.925 16.2-45.488 16.351-22.809-.169-40.06-7.484-51.275-21.742C35.236 139.966 29.808 120.682 29.605 96c.203-24.682 5.63-43.966 16.133-57.317C56.954 24.425 74.204 17.11 97.013 16.94c22.975.17 40.526 7.52 52.171 21.847 5.71 7.026 10.015 15.86 12.853 26.162l16.147-4.308c-3.44-12.68-8.853-23.606-16.219-32.668C147.036 9.607 125.202.195 97.07 0h-.113C68.882.194 47.292 9.642 32.788 28.08 19.882 44.485 13.224 67.315 13.001 95.932L13 96v.067c.224 28.617 6.882 51.447 19.788 67.854C47.292 182.358 68.882 191.806 96.957 192h.113c24.96-.173 42.554-6.708 57.048-21.189 18.963-18.945 18.392-42.692 12.142-57.27-4.484-10.454-13.033-18.945-24.723-24.553zM98.44 129.507c-10.44.588-21.286-4.098-21.82-14.135-.397-7.442 5.296-15.746 22.461-16.735 1.966-.114 3.895-.169 5.79-.169 6.235 0 12.068.606 17.371 1.765-1.978 24.702-13.58 28.713-23.802 29.274z"/></g></svg><span class="jetpack-sharing-button__service-label" aria-hidden="true">Threads</span></a></li> <li class="jetpack-sharing-button__list-item"><a href="https://blog.gravatar.com/2024/10/11/create-a-social-network/?share=x&nb=1" target="_blank" rel="nofollow noopener noreferrer" class="jetpack-sharing-button__button style-icon-text share-x" style="" data-service="x" data-shared="sharing-x-2274" aria-label="Share on X"><svg class="social-logo social-logo-x" height="24" width="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path d="M13.982 10.622L20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378zm-2.128 2.474l-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787z"/></g></svg><span class="jetpack-sharing-button__service-label" aria-hidden="true">X</span></a></li> <li class="jetpack-sharing-button__list-item tooltip"><a href="https://blog.gravatar.com/2024/10/11/create-a-social-network/" target="_blank" rel="nofollow noopener noreferrer" class="jetpack-sharing-button__button style-icon-text share-share" style="" data-service="share" data-shared="sharing-share-2274" aria-label="Share using Native tools"><svg class="social-logo social-logo-share" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M18 16c-.788 0-1.499.31-2.034.807L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.048 4.118A2.981 2.981 0 0015 19a3 3 0 103-3z"/></g></svg><span class="jetpack-sharing-button__service-label" aria-hidden="true">Share</span><span class="tooltiptext" aria-live="assertive">Copied to clipboard</span></a></li></ul> <div class="wp-block-jetpack-like like-box"><div class='sharedaddy sd-block sd-like jetpack-likes-widget-wrapper jetpack-likes-widget-unloaded' id='like-post-wrapper-1886259-2274-674a14bb56ad8' data-src='//widgets.wp.com/likes/index.html?ver=14.1-a.8#blog_id=1886259&post_id=2274&origin=gravatar.wordpress.com&obj_id=1886259-2274-674a14bb56ad8&n=1&block=1&reblog=1&domain=blog.gravatar.com' data-name='like-post-frame-1886259-2274-674a14bb56ad8' data-title='Like or Reblog'><div class='likes-widget-placeholder post-likes-widget-placeholder' style='height: 55px;'><span class='button'><span>Like</span></span> <span class='loading'>Loading…</span></div><span class='sd-text-color'></span><a class='sd-link-color'></a></div></div></div> <div style="height:0px" aria-hidden="true" class="wp-block-spacer"></div> <div class="wp-block-group has-contrast-background-color has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-11 wp-block-group-is-layout-constrained" style="border-radius:6px;margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)"> <div class="wp-block-comments has-contrast-background-color has-background" style="margin-top:var(--wp--preset--spacing--20);margin-right:0;margin-bottom:var(--wp--preset--spacing--20);margin-left:0;padding-top:0;padding-right:0;padding-bottom:0;padding-left:0"> <div id="respond" style="font-size:clamp(15.747px, 0.984rem + ((1vw - 3.2px) * 0.645), 24px);font-style:normal;font-weight:700;text-transform:capitalize; padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);" class="comment-respond wp-block-post-comments-form"> <h3 id="reply-title" class="comment-reply-title">Leave a comment <small><a rel="nofollow" id="cancel-comment-reply-link" href="/2024/10/11/create-a-social-network/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://blog.gravatar.com/wp-comments-post.php" method="post" id="commentform" class="comment-form"><div id="comment-form__verbum" class="transparent"></div><div class="verbum-form-meta"><input type='hidden' name='comment_post_ID' value='2274' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> <input type="hidden" name="highlander_comment_nonce" id="highlander_comment_nonce" value="fbec04f9af" /> <input type="hidden" name="verbum_show_subscription_modal" value="" /></div></form> </div><!-- #respond --> <p class="akismet_comment_form_privacy_notice">This site uses Akismet to reduce spam. <a href="https://akismet.com/privacy/" target="_blank" rel="nofollow noopener">Learn how your comment data is processed</a>.</p></div> </div> <div style="height:4px" aria-hidden="true" class="wp-block-spacer"></div> <nav class="jp-relatedposts-i2 wp-block-jetpack-related-posts" style="padding-right:0;padding-left:0;margin-right:0;margin-left:0;" data-layout="grid" aria-label="Related Posts"><h2 class="wp-block-heading has-base-color has-text-color has-link-color" style="font-size:24px"><strong>Related Posts</strong></h2><ul class="jp-related-posts-i2__list" role="list" data-post-count="3"><li id="related-posts-item-674a14bb5d62e" class="jp-related-posts-i2__post"><a id="related-posts-item-674a14bb5d62e-label" href="https://blog.gravatar.com/2024/06/16/how-to-network-at-a-conference/" class="jp-related-posts-i2__post-link" >Level Up Your Conference Game: Effective Networking Tactics</a></li><li id="related-posts-item-674a14bb5d653" class="jp-related-posts-i2__post"><a id="related-posts-item-674a14bb5d653-label" href="https://blog.gravatar.com/2024/11/08/creating-a-digital-business-card/" class="jp-related-posts-i2__post-link" >Gravatar’s Guide: Crafting an Outstanding Digital Business Card</a></li><li id="related-posts-item-674a14bb5d66c" class="jp-related-posts-i2__post"><a id="related-posts-item-674a14bb5d66c-label" href="https://blog.gravatar.com/2024/05/04/authentication-protocols/" class="jp-related-posts-i2__post-link" >Understanding and Choosing Among Various Types of Authentication Protocols</a></li></ul></nav> <div style="height:36px" aria-hidden="true" class="wp-block-spacer"></div> </div> </main> <footer class="wp-block-template-part"> <div class="wp-block-group has-secondary-color has-contrast-background-color has-text-color has-background has-link-color wp-elements-53a4b9660e97835be74787a288c1e603 has-global-padding is-layout-constrained wp-container-core-group-is-layout-16 wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30)"> <div class="wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-15 wp-block-group-is-layout-constrained"> <div class="wp-block-group has-global-padding is-content-justification-left is-layout-constrained wp-container-core-group-is-layout-14 wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0"> <h2 class="wp-block-heading has-base-color has-text-color has-link-color has-medium-font-size wp-elements-6a7c43838ceb24e32b5e27eb17d044bb"><br>Keep up with our latest news…</h2> </div> <div style="margin-top:12px;margin-bottom:12px;" class="wp-block-jetpack-subscriptions__supports-newline wp-block-jetpack-subscriptions__show-subs is-style-split wp-block-jetpack-subscriptions"> <div class="wp-block-jetpack-subscriptions__container is-not-subscriber"> <form action="https://wordpress.com/email-subscriptions" method="post" accept-charset="utf-8" data-blog="1886259" data-post_access_level="everybody" data-subscriber_email="" id="subscribe-blog" > <div class="wp-block-jetpack-subscriptions__form-elements"> <p id="subscribe-email"> <label id="subscribe-field-label" for="subscribe-field" class="screen-reader-text" > Enter your email </label> <input required="required" type="email" name="email" class="has-13px-font-size " style="font-size: 13px;padding: 18px 27px 18px 27px;border-radius: 4px;border-width: 0px;" placeholder="Enter your email" value="" id="subscribe-field" title="Please fill in this field." /> </p> <p id="subscribe-submit" style="width: ;max-width: 100%;" > <input type="hidden" name="action" value="subscribe"/> <input type="hidden" name="blog_id" value="1886259"/> <input type="hidden" name="source" value="https://blog.gravatar.com/2024/10/11/create-a-social-network/"/> <input type="hidden" name="sub-type" value="subscribe-block"/> <input type="hidden" name="app_source" value=""/> <input type="hidden" name="redirect_fragment" value="subscribe-blog"/> <input type="hidden" name="lang" value="en"/> <input type="hidden" id="_wpnonce" name="_wpnonce" value="c4a9d71d3b" /><input type="hidden" name="_wp_http_referer" value="/2024/10/11/create-a-social-network/" /><input type="hidden" name="post_id" value="2274"/> <button type="submit" class="wp-block-button__link has-13px-font-size" style="width: 100%;font-size: 13px;padding: 18px 27px 18px 27px;margin: 0; margin-left: 16px;border-radius: 4px;border-width: 0px;" name="jetpack_subscriptions_widget" > Subscribe </button> </p> </div> </form> <div class="wp-block-jetpack-subscriptions__subscount"> Join 16.4K other subscribers </div> </div> </div> </div> </div> <div class="wp-block-group has-base-background-color has-background has-varela-round-font-family has-global-padding is-layout-constrained wp-container-core-group-is-layout-17 wp-block-group-is-layout-constrained" style="margin-top:0;margin-bottom:0;padding-top:0;padding-right:var(--wp--preset--spacing--20);padding-bottom:0;padding-left:var(--wp--preset--spacing--20)"> <div class="wp-block-columns has-white-color has-text-color has-link-color wp-elements-f39521faa7c13dc2286ffbedb212928a is-layout-flex wp-container-core-columns-is-layout-1 wp-block-columns-is-layout-flex" style="padding-top:var(--wp--preset--spacing--20);padding-right:0;padding-bottom:var(--wp--preset--spacing--20);padding-left:0"> <div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-1 wp-block-column-is-layout-flow" style="padding-right:0;padding-left:0;flex-basis:40%"> <figure class="wp-block-image alignleft size-large is-resized"><img loading="lazy" width="291" height="54" src="https://gravatar.files.wordpress.com/2024/03/logo.png?w=291" alt="" class="wp-image-1250" style="width:145px" srcset="https://gravatar.files.wordpress.com/2024/03/logo.png 291w, https://gravatar.files.wordpress.com/2024/03/logo.png?w=150 150w" sizes="(max-width: 291px) 100vw, 291px" /></figure> </div> <div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-2 wp-block-column-is-layout-flow" style="flex-basis:20%"> <p class="has-system-font-font-family" style="margin-top:0px;margin-bottom:0px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.469), 20px);">Developers</p> <nav style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:300;line-height:2;" class="is-vertical wp-block-navigation has-system-font-font-family is-layout-flex wp-container-core-navigation-is-layout-2 wp-block-navigation-is-layout-flex" aria-label="Footer navigation 4"><ul style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:300;line-height:2;" class="wp-block-navigation__container is-vertical wp-block-navigation has-system-font-font-family"><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://docs.gravatar.com/changelog/"><span class="wp-block-navigation-item__label">Changelog</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://gravatar.com/developers"><span class="wp-block-navigation-item__label">Developer Dashboard</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="http://docs.gravatar.com/"><span class="wp-block-navigation-item__label">Developer Docs</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://github.com/Automattic/gravatar/discussions/categories/ideas"><span class="wp-block-navigation-item__label">Feature Requests</span></a></li></ul></nav> <ul class="wp-block-social-links has-visible-labels is-layout-flex wp-block-social-links-is-layout-flex" style="margin-top:18px;margin-bottom:var(--wp--preset--spacing--20)"><li class="wp-social-link wp-social-link-github wp-block-social-link"><a href="https://github.com/search?q=topic%3Agravatar+org%3AAutomattic+fork%3Atrue&type=repositories" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label">Github</span></a></li></ul> </div> <div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-3 wp-block-column-is-layout-flow" style="flex-basis:20%"> <p class="has-system-font-font-family" style="margin-top:0px;margin-bottom:0px;font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.469), 20px);">Support</p> <nav style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:300;line-height:2;" class="is-vertical wp-block-navigation has-system-font-font-family is-layout-flex wp-container-core-navigation-is-layout-3 wp-block-navigation-is-layout-flex" aria-label="Footer navigation 5"><ul style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:300;line-height:2;" class="wp-block-navigation__container is-vertical wp-block-navigation has-system-font-font-family"><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="http://blog.gravatar.com"><span class="wp-block-navigation-item__label">Blog</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="http://support.gravatar.com/"><span class="wp-block-navigation-item__label">Docs</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://support.gravatar.com/contact/"><span class="wp-block-navigation-item__label">Contact</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://support.gravatar.com/report-abuse/"><span class="wp-block-navigation-item__label">Report Abuse</span></a></li></ul></nav></div> <div class="wp-block-column is-layout-flow wp-container-core-column-is-layout-4 wp-block-column-is-layout-flow" style="flex-basis:20%"> <p class="has-system-font-font-family" style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.469), 20px);">Company</p> <nav style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:300;line-height:2;" class="is-vertical wp-block-navigation has-system-font-font-family is-layout-flex wp-container-core-navigation-is-layout-4 wp-block-navigation-is-layout-flex" aria-label="Footer navigation 6"><ul style="font-size:clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);font-style:normal;font-weight:300;line-height:2;" class="wp-block-navigation__container is-vertical wp-block-navigation has-system-font-font-family"><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://automattic.com/about/"><span class="wp-block-navigation-item__label">About ↗</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://automattic.com/press"><span class="wp-block-navigation-item__label">Press ↗</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://wordpress.com/tos/"><span class="wp-block-navigation-item__label">Terms of Service ↗</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://automattic.com/privacy/"><span class="wp-block-navigation-item__label">Privacy Policy ↗</span></a></li><li style="font-size: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.156), 16px);" class=" wp-block-navigation-item wp-block-navigation-link"><a class="wp-block-navigation-item__content" href="https://automattic.com/privacy/#california-consumer-privacy-act-ccpa"><span class="wp-block-navigation-item__label">Privacy Notice for CA ↗</span></a></li></ul></nav></div> </div> </div> <div class="wp-block-group has-secondary-background-color has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-20 wp-block-group-is-layout-constrained"> <div class="wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-19 wp-block-group-is-layout-flex" style="padding-top:24px;padding-bottom:24px"> <div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-18 wp-block-group-is-layout-flex" style="padding-right:0px;padding-left:0px"> <figure class="wp-block-image size-large is-resized"><a href="https://wordpress.com?ref=gravatar" target="_blank" rel=" noreferrer noopener"><img loading="lazy" width="496" height="71" src="https://blog.gravatar.com/wp-content/uploads/2024/04/wordpress-branding.png?w=496" alt="" class="wp-image-1296" style="width:248px" srcset="https://blog.gravatar.com/wp-content/uploads/2024/04/wordpress-branding.png 496w, https://blog.gravatar.com/wp-content/uploads/2024/04/wordpress-branding.png?w=150 150w, https://blog.gravatar.com/wp-content/uploads/2024/04/wordpress-branding.png?w=300 300w" sizes="(max-width: 496px) 100vw, 496px" /></a></figure> </div> <p class="has-text-align-right has-white-color has-text-color has-link-color has-system-font-font-family wp-elements-31b252f86c1ffceac5c3db4eef41919b" style="font-style:normal;font-weight:300"><a href="https://wordpress.com/?ref=gravatar" target="_blank" rel="noreferrer noopener">Create A Site</a> ↗</p> </div> </div> <div class="wp-block-group has-secondary-background-color has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-22 wp-block-group-is-layout-constrained"> <div class="wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-21 wp-block-group-is-layout-flex" style="padding-top:24px;padding-bottom:24px"> <figure class="wp-block-image size-full is-resized"><a href="https://www.automattic.com?ref=gravatar"><img src="https://s0.wp.com/wp-content/themes/a8c/gravatar-docs/assets/images/Automattic-Footer-Logo.png" alt="" class="wp-image-174" style="width:220px;height:auto" /></a></figure> <p class="has-text-align-right" style="text-decoration:underline"><a href="https://automattic.com/work-with-us/?ref=gravatar">Work With Us</a></p> </div> </div> <div class="wp-block-group has-white-background-color has-background has-global-padding is-layout-constrained wp-container-core-group-is-layout-24 wp-block-group-is-layout-constrained"> <div class="wp-block-group is-content-justification-space-between is-layout-flex wp-container-core-group-is-layout-23 wp-block-group-is-layout-flex" style="padding-top:24px;padding-bottom:24px"> <figure class="wp-block-image size-full is-resized"><a href="https://www.automattic.com?ref=gravatar"><img src="https://s0.wp.com/wp-content/themes/a8c/gravatar-docs/assets/images/Automattic-Footer-Logo.png" alt="" class="wp-image-174" style="width:238px" /></a></figure> <p class="has-text-align-right has-secondary-color has-text-color has-link-color has-system-font-font-family wp-elements-6c2eb3679e7d2bfa58917bee0467e43f" style="font-style:normal;font-weight:300"><a href="https://automattic.com/work-with-us/?ref=gravatar" target="_blank" rel="noreferrer noopener">Work With Us</a> ↗</p> </div> </div> </footer></div> <!-- wpcom_wp_footer --> <div class="jetpack-instant-search__widget-area" style="display: none"> <div id="jetpack-search-filters-2" class="widget jetpack-filters widget_search"> <div id="jetpack-search-filters-2-wrapper" class="jetpack-instant-search-wrapper"> </div></div> </div> <script src="//0.gravatar.com/js/hovercards/hovercards.min.js?ver=202448f4980d8e1cc3e91fc638e6937ed764a50008b0b2c4d629358cfba6a39234c795" id="grofiles-cards-js"></script> <script id="wpgroho-js-extra"> var WPGroHo = {"my_hash":""}; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s2.wp.com/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1610363240i'></script> <script> // Initialize and attach hovercards to all gravatars ( function() { function init() { if ( typeof Gravatar === 'undefined' ) { return; } if ( typeof Gravatar.init !== 'function' ) { return; } Gravatar.profile_cb = function ( hash, id ) { WPGroHo.syncProfileData( hash, id ); }; Gravatar.my_hash = WPGroHo.my_hash; Gravatar.init( 'body', '#wp-admin-bar-my-account', { i18n: { 'Edit your profile': 'Edit your profile', 'View profile': 'View profile', 'Sorry, we are unable to load this Gravatar profile.': 'Sorry, we are unable to load this Gravatar profile.', 'Profile not found.': 'Profile not found.', 'Too Many Requests.': 'Too Many Requests.', 'Internal Server Error.': 'Internal Server Error.', }, } ); } if ( document.readyState !== 'loading' ) { init(); } else { document.addEventListener( 'DOMContentLoaded', init ); } } )(); </script> <div style="display:none"> <div class="grofile-hash-map-e1189f13a22516eb5a157e5ded233429"> </div> </div> <div id="jp-carousel-loading-overlay"> <div id="jp-carousel-loading-wrapper"> <span id="jp-carousel-library-loading"> </span> </div> </div> <div class="jp-carousel-overlay" style="display: none;"> <div class="jp-carousel-container"> <!-- The Carousel Swiper --> <div class="jp-carousel-wrap swiper-container jp-carousel-swiper-container jp-carousel-transitions" itemscope itemtype="https://schema.org/ImageGallery"> <div class="jp-carousel swiper-wrapper"></div> <div class="jp-swiper-button-prev swiper-button-prev"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskPrev" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="9" height="12"> <path d="M16.2072 16.59L11.6496 12L16.2072 7.41L14.8041 6L8.8335 12L14.8041 18L16.2072 16.59Z" fill="white"/> </mask> <g mask="url(#maskPrev)"> <rect x="0.579102" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </div> <div class="jp-swiper-button-next swiper-button-next"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskNext" mask-type="alpha" maskUnits="userSpaceOnUse" x="8" y="6" width="8" height="12"> <path d="M8.59814 16.59L13.1557 12L8.59814 7.41L10.0012 6L15.9718 12L10.0012 18L8.59814 16.59Z" fill="white"/> </mask> <g mask="url(#maskNext)"> <rect x="0.34375" width="23.8822" height="24" fill="#FFFFFF"/> </g> </svg> </div> </div> <!-- The main close buton --> <div class="jp-carousel-close-hint"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskClose" mask-type="alpha" maskUnits="userSpaceOnUse" x="5" y="5" width="15" height="14"> <path d="M19.3166 6.41L17.9135 5L12.3509 10.59L6.78834 5L5.38525 6.41L10.9478 12L5.38525 17.59L6.78834 19L12.3509 13.41L17.9135 19L19.3166 17.59L13.754 12L19.3166 6.41Z" fill="white"/> </mask> <g mask="url(#maskClose)"> <rect x="0.409668" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </div> <!-- Image info, comments and meta --> <div class="jp-carousel-info"> <div class="jp-carousel-info-footer"> <div class="jp-carousel-pagination-container"> <div class="jp-swiper-pagination swiper-pagination"></div> <div class="jp-carousel-pagination"></div> </div> <div class="jp-carousel-photo-title-container"> <h2 class="jp-carousel-photo-caption"></h2> </div> <div class="jp-carousel-photo-icons-container"> <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-info" aria-label="Toggle photo metadata visibility"> <span class="jp-carousel-icon"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskInfo" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> <path fill-rule="evenodd" clip-rule="evenodd" d="M12.7537 2C7.26076 2 2.80273 6.48 2.80273 12C2.80273 17.52 7.26076 22 12.7537 22C18.2466 22 22.7046 17.52 22.7046 12C22.7046 6.48 18.2466 2 12.7537 2ZM11.7586 7V9H13.7488V7H11.7586ZM11.7586 11V17H13.7488V11H11.7586ZM4.79292 12C4.79292 16.41 8.36531 20 12.7537 20C17.142 20 20.7144 16.41 20.7144 12C20.7144 7.59 17.142 4 12.7537 4C8.36531 4 4.79292 7.59 4.79292 12Z" fill="white"/> </mask> <g mask="url(#maskInfo)"> <rect x="0.8125" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> </span> </a> <a href="#" class="jp-carousel-icon-btn jp-carousel-icon-comments" aria-label="Toggle photo comments visibility"> <span class="jp-carousel-icon"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="maskComments" mask-type="alpha" maskUnits="userSpaceOnUse" x="2" y="2" width="21" height="20"> <path fill-rule="evenodd" clip-rule="evenodd" d="M4.3271 2H20.2486C21.3432 2 22.2388 2.9 22.2388 4V16C22.2388 17.1 21.3432 18 20.2486 18H6.31729L2.33691 22V4C2.33691 2.9 3.2325 2 4.3271 2ZM6.31729 16H20.2486V4H4.3271V18L6.31729 16Z" fill="white"/> </mask> <g mask="url(#maskComments)"> <rect x="0.34668" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> <span class="jp-carousel-has-comments-indicator" aria-label="This image has comments."></span> </span> </a> </div> </div> <div class="jp-carousel-info-extra"> <div class="jp-carousel-info-content-wrapper"> <div class="jp-carousel-photo-title-container"> <h2 class="jp-carousel-photo-title"></h2> </div> <div class="jp-carousel-comments-wrapper"> <div id="jp-carousel-comments-loading"> <span>Loading Comments...</span> </div> <div class="jp-carousel-comments"></div> <div id="jp-carousel-comment-form-container"> <span id="jp-carousel-comment-form-spinner"> </span> <div id="jp-carousel-comment-post-results"></div> <div id="jp-carousel-comment-form-commenting-as"> <p id="jp-carousel-commenting-as"> You must be <a href="#" class="jp-carousel-comment-login">logged in</a> to post a comment. </p> </div> </div> </div> <div class="jp-carousel-image-meta"> <div class="jp-carousel-title-and-caption"> <div class="jp-carousel-photo-info"> <h3 class="jp-carousel-caption" itemprop="caption description"></h3> </div> <div class="jp-carousel-photo-description"></div> </div> <ul class="jp-carousel-image-exif" style="display: none;"></ul> <a class="jp-carousel-image-download" href="#" target="_blank" style="display: none;"> <svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0" mask-type="alpha" maskUnits="userSpaceOnUse" x="3" y="3" width="19" height="18"> <path fill-rule="evenodd" clip-rule="evenodd" d="M5.84615 5V19H19.7775V12H21.7677V19C21.7677 20.1 20.8721 21 19.7775 21H5.84615C4.74159 21 3.85596 20.1 3.85596 19V5C3.85596 3.9 4.74159 3 5.84615 3H12.8118V5H5.84615ZM14.802 5V3H21.7677V10H19.7775V6.41L9.99569 16.24L8.59261 14.83L18.3744 5H14.802Z" fill="white"/> </mask> <g mask="url(#mask0)"> <rect x="0.870605" width="23.8823" height="24" fill="#FFFFFF"/> </g> </svg> <span class="jp-carousel-download-text"></span> </a> <div class="jp-carousel-image-map" style="display: none;"></div> </div> </div> </div> </div> </div> </div> <div id="actionbar" style="display: none;" class="actnbr-a8c-gravatar-docs actnbr-has-follow"> <ul> <li class="actnbr-btn actnbr-hidden"> <a class="actnbr-action actnbr-actn-comment" href="https://blog.gravatar.com/2024/10/11/create-a-social-network/#respond"> <svg class="gridicon gridicons-comment" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M12 16l-5 5v-5H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2v9c0 1.1-.9 2-2 2h-7z"/></g></svg> <span>Comment </span> </a> </li> <li class="actnbr-btn actnbr-hidden"> <a class="actnbr-action actnbr-actn-reblog" href=""> <svg class="gridicon gridicons-reblog" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M22.086 9.914L20 7.828V18c0 1.105-.895 2-2 2h-7v-2h7V7.828l-2.086 2.086L14.5 8.5 19 4l4.5 4.5-1.414 1.414zM6 16.172V6h7V4H6c-1.105 0-2 .895-2 2v10.172l-2.086-2.086L.5 15.5 5 20l4.5-4.5-1.414-1.414L6 16.172z"/></g></svg><span>Reblog</span> </a> </li> <li class="actnbr-btn actnbr-hidden"> <a class="actnbr-action actnbr-actn-follow " href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg> <span>Subscribe</span> </a> <a class="actnbr-action actnbr-actn-following no-display" href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg> <span>Subscribed</span> </a> <div class="actnbr-popover tip tip-top-left actnbr-notice" id="follow-bubble"> <div class="tip-arrow"></div> <div class="tip-inner actnbr-follow-bubble"> <ul> <li class="actnbr-sitename"> <a href="https://blog.gravatar.com"> <img loading='lazy' alt='' src='https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=50' srcset='https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=50 1x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=75 1.5x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=100 2x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=150 3x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=200 4x' class='avatar avatar-50' height='50' width='50' /> Gravatar Blog </a> </li> <div class="actnbr-message no-display"></div> <form method="post" action="https://subscribe.wordpress.com" accept-charset="utf-8" style="display: none;"> <div class="actnbr-follow-count">Join 16,353 other subscribers</div> <div> <input type="email" name="email" placeholder="Enter your email address" class="actnbr-email-field" aria-label="Enter your email address" /> </div> <input type="hidden" name="action" value="subscribe" /> <input type="hidden" name="blog_id" value="1886259" /> <input type="hidden" name="source" value="https://blog.gravatar.com/2024/10/11/create-a-social-network/" /> <input type="hidden" name="sub-type" value="actionbar-follow" /> <input type="hidden" id="_wpnonce" name="_wpnonce" value="c4a9d71d3b" /> <div class="actnbr-button-wrap"> <button type="submit" value="Sign me up"> Sign me up </button> </div> </form> <li class="actnbr-login-nudge"> <div> Already have a WordPress.com account? <a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fblog.gravatar.com%252F2024%252F10%252F11%252Fcreate-a-social-network%252F">Log in now.</a> </div> </li> </ul> </div> </div> </li> <li class="actnbr-ellipsis actnbr-hidden"> <svg class="gridicon gridicons-ellipsis" height="24" width="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M7 12c0 1.104-.896 2-2 2s-2-.896-2-2 .896-2 2-2 2 .896 2 2zm12-2c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2zm-7 0c-1.104 0-2 .896-2 2s.896 2 2 2 2-.896 2-2-.896-2-2-2z"/></g></svg> <div class="actnbr-popover tip tip-top-left actnbr-more"> <div class="tip-arrow"></div> <div class="tip-inner"> <ul> <li class="actnbr-sitename"> <a href="https://blog.gravatar.com"> <img loading='lazy' alt='' src='https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=50' srcset='https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=50 1x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=75 1.5x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=100 2x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=150 3x, https://blog.gravatar.com/wp-content/uploads/2024/09/cropped-72x72-1.png?w=200 4x' class='avatar avatar-50' height='50' width='50' /> Gravatar Blog </a> </li> <li class="actnbr-folded-customize"> <a href="https://gravatar.wordpress.com/wp-admin/site-editor.php?postType=wp_template&postId=a8c/gravatar-docs//single"> <svg class="gridicon gridicons-customize" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M2 6c0-1.505.78-3.08 2-4 0 .845.69 2 2 2 1.657 0 3 1.343 3 3 0 .386-.08.752-.212 1.09.74.594 1.476 1.19 2.19 1.81L8.9 11.98c-.62-.716-1.214-1.454-1.807-2.192C6.753 9.92 6.387 10 6 10c-2.21 0-4-1.79-4-4zm12.152 6.848l1.34-1.34c.607.304 1.283.492 2.008.492 2.485 0 4.5-2.015 4.5-4.5 0-.725-.188-1.4-.493-2.007L18 9l-2-2 3.507-3.507C18.9 3.188 18.225 3 17.5 3 15.015 3 13 5.015 13 7.5c0 .725.188 1.4.493 2.007L3 20l2 2 6.848-6.848c1.885 1.928 3.874 3.753 5.977 5.45l1.425 1.148 1.5-1.5-1.15-1.425c-1.695-2.103-3.52-4.092-5.448-5.977z"/></g></svg> <span>Edit Site</span> </a> </li> <li class="actnbr-folded-follow"> <a class="actnbr-action actnbr-actn-follow " href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path clip-rule="evenodd" d="m4 4.5h12v6.5h1.5v-6.5-1.5h-1.5-12-1.5v1.5 10.5c0 1.1046.89543 2 2 2h7v-1.5h-7c-.27614 0-.5-.2239-.5-.5zm10.5 2h-9v1.5h9zm-5 3h-4v1.5h4zm3.5 1.5h-1v1h1zm-1-1.5h-1.5v1.5 1 1.5h1.5 1 1.5v-1.5-1-1.5h-1.5zm-2.5 2.5h-4v1.5h4zm6.5 1.25h1.5v2.25h2.25v1.5h-2.25v2.25h-1.5v-2.25h-2.25v-1.5h2.25z" fill-rule="evenodd"></path></svg> <span>Subscribe</span> </a> <a class="actnbr-action actnbr-actn-following no-display" href=""> <svg class="gridicon" height="20" width="20" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20"><path fill-rule="evenodd" clip-rule="evenodd" d="M16 4.5H4V15C4 15.2761 4.22386 15.5 4.5 15.5H11.5V17H4.5C3.39543 17 2.5 16.1046 2.5 15V4.5V3H4H16H17.5V4.5V12.5H16V4.5ZM5.5 6.5H14.5V8H5.5V6.5ZM5.5 9.5H9.5V11H5.5V9.5ZM12 11H13V12H12V11ZM10.5 9.5H12H13H14.5V11V12V13.5H13H12H10.5V12V11V9.5ZM5.5 12H9.5V13.5H5.5V12Z" fill="#008A20"></path><path class="following-icon-tick" d="M13.5 16L15.5 18L19 14.5" stroke="#008A20" stroke-width="1.5"></path></svg> <span>Subscribed</span> </a> </li> <li class="actnbr-signup"><a href="https://wordpress.com/start/">Sign up</a></li> <li class="actnbr-login"><a href="https://wordpress.com/log-in?redirect_to=https%3A%2F%2Fr-login.wordpress.com%2Fremote-login.php%3Faction%3Dlink%26back%3Dhttps%253A%252F%252Fblog.gravatar.com%252F2024%252F10%252F11%252Fcreate-a-social-network%252F">Log in</a></li> <li class="actnbr-shortlink"><a href="https://wp.me/p7UHx-AG">Copy shortlink</a></li> <li class="flb-report"> <a href="https://wordpress.com/abuse/?report_url=https://blog.gravatar.com/2024/10/11/create-a-social-network/" target="_blank" rel="noopener noreferrer"> Report this content </a> </li> <li class="actnbr-reader"> <a href="https://wordpress.com/read/blogs/1886259/posts/2274"> View post in Reader </a> </li> <li class="actnbr-subs"> <a href="https://subscribe.wordpress.com/">Manage subscriptions</a> </li> <li class="actnbr-fold"><a href="">Collapse this bar</a></li> </ul> </div> </div> </li> </ul> </div> <script> window.addEventListener( "load", function( event ) { var link = document.createElement( "link" ); link.href = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.css?v=20241015"; link.type = "text/css"; link.rel = "stylesheet"; document.head.appendChild( link ); var script = document.createElement( "script" ); script.src = "https://s0.wp.com/wp-content/mu-plugins/actionbar/actionbar.js?v=20231122"; script.defer = true; document.body.appendChild( script ); } ); </script> <script id="jetpack-carousel-js-extra"> var jetpackSwiperLibraryPath = {"url":"https:\/\/s2.wp.com\/wp-content\/mu-plugins\/jetpack-plugin\/sun\/_inc\/build\/carousel\/swiper-bundle.min.js"}; var jetpackCarouselStrings = {"widths":[370,700,1000,1200,1400,2000],"is_logged_in":"","lang":"en","ajaxurl":"https:\/\/blog.gravatar.com\/wp-admin\/admin-ajax.php","nonce":"1f9ca57389","display_exif":"1","display_comments":"1","single_image_gallery":"1","single_image_gallery_media_file":"","background_color":"black","comment":"Comment","post_comment":"Post Comment","write_comment":"Write a Comment...","loading_comments":"Loading Comments...","image_label":"Open image in full-screen.","download_original":"View full size <span class=\"photo-size\">{0}<span class=\"photo-size-times\">\u00d7<\/span>{1}<\/span>","no_comment_text":"Please be sure to submit some text with your comment.","no_comment_email":"Please provide an email address to comment.","no_comment_author":"Please provide your name to comment.","comment_post_error":"Sorry, but there was an error posting your comment. Please try again later.","comment_approved":"Your comment was approved.","comment_unapproved":"Your comment is in moderation.","camera":"Camera","aperture":"Aperture","shutter_speed":"Shutter Speed","focal_length":"Focal Length","copyright":"Copyright","comment_registration":"1","require_name_email":"0","login_url":"https:\/\/gravatar.wordpress.com\/wp-login.php?redirect_to=https%3A%2F%2Fblog.gravatar.com%2F2024%2F10%2F11%2Fcreate-a-social-network%2F","blog_id":"1886259","meta_data":["camera","aperture","shutter_speed","focal_length","copyright"],"stats_query_args":"blog=1886259&v=wpcom&tz=-8&user_id=0&subd=gravatar","is_public":"1"}; </script> <script crossorigin='anonymous' type='text/javascript' src='https://s1.wp.com/_static/??-eJyFj9FOwzAMRX+IzCuTur0gPmVKE9O5c5wSxyD+njC11R6m8Zjro6MT+J5dyFJRKkwKKQ/E6Eyx+LFtjuQj7yZ9gTsumZvZRhKFCevsw3V5g5rAmSTAYMQRgi+5qXjD1mGXSJ5Yma6o8GloePESGcsKNzdbbMfWGnJKf4kFZ/75x/igc5nOXygxF/BWc/K1Uthgr4pVl79QdxLH2cdbzHt6646Hfdf1r30//QJlL3lY'></script> <script id="wp-block-template-skip-link-js-after"> ( function() { var skipLinkTarget = document.querySelector( 'main' ), sibling, skipLinkTargetID, skipLink; // Early exit if a skip-link target can't be located. if ( ! skipLinkTarget ) { return; } /* * Get the site wrapper. * The skip-link will be injected in the beginning of it. */ sibling = document.querySelector( '.wp-site-blocks' ); // Early exit if the root element was not found. if ( ! sibling ) { return; } // Get the skip-link target's ID, and generate one if it doesn't exist. skipLinkTargetID = skipLinkTarget.id; if ( ! skipLinkTargetID ) { skipLinkTargetID = 'wp--skip-link--target'; skipLinkTarget.id = skipLinkTargetID; } // Create the skip link. skipLink = document.createElement( 'a' ); skipLink.classList.add( 'skip-link', 'screen-reader-text' ); skipLink.href = '#' + skipLinkTargetID; skipLink.innerHTML = 'Skip to content'; // Inject the skip link. sibling.parentElement.insertBefore( skipLink, sibling ); }() ); </script> <script id="wp-jp-i18n-loader-js-after"> wp.jpI18nLoader.state = {"baseUrl":"https://widgets.wp.com/languages/","locale":"en_US","domainMap":{"jetpack-admin-ui":"plugins/jetpack","jetpack-assets":"plugins/jetpack","jetpack-backup-pkg":"plugins/jetpack","jetpack-blaze":"plugins/jetpack","jetpack-boost-core":"plugins/jetpack","jetpack-boost-speed-score":"plugins/jetpack","jetpack-classic-theme-helper":"plugins/jetpack","jetpack-compat":"plugins/jetpack","jetpack-config":"plugins/jetpack","jetpack-connection":"plugins/jetpack","jetpack-explat":"plugins/jetpack","jetpack-forms":"plugins/jetpack","jetpack-image-cdn":"plugins/jetpack","jetpack-import":"plugins/jetpack","jetpack-ip":"plugins/jetpack","jetpack-jitm":"plugins/jetpack","jetpack-licensing":"plugins/jetpack","jetpack-masterbar":"plugins/jetpack","jetpack-my-jetpack":"plugins/jetpack","jetpack-password-checker":"plugins/jetpack","jetpack-plugins-installer":"plugins/jetpack","jetpack-post-list":"plugins/jetpack","jetpack-protect-models":"plugins/jetpack","jetpack-protect-status":"plugins/jetpack","jetpack-publicize-pkg":"plugins/jetpack","jetpack-search-pkg":"plugins/jetpack","jetpack-stats":"plugins/jetpack","jetpack-stats-admin":"plugins/jetpack","jetpack-sync":"plugins/jetpack","jetpack-videopress-pkg":"plugins/jetpack","jetpack-waf":"plugins/jetpack","jetpack-wordads":"plugins/jetpack","woocommerce-analytics":"plugins/jetpack"},"domainPaths":{"jetpack-admin-ui":"jetpack_vendor/automattic/jetpack-admin-ui/","jetpack-assets":"jetpack_vendor/automattic/jetpack-assets/","jetpack-backup-pkg":"jetpack_vendor/automattic/jetpack-backup/","jetpack-blaze":"jetpack_vendor/automattic/jetpack-blaze/","jetpack-boost-core":"jetpack_vendor/automattic/jetpack-boost-core/","jetpack-boost-speed-score":"jetpack_vendor/automattic/jetpack-boost-speed-score/","jetpack-classic-theme-helper":"jetpack_vendor/automattic/jetpack-classic-theme-helper/","jetpack-compat":"jetpack_vendor/automattic/jetpack-compat/","jetpack-config":"jetpack_vendor/automattic/jetpack-config/","jetpack-connection":"jetpack_vendor/automattic/jetpack-connection/","jetpack-explat":"jetpack_vendor/automattic/jetpack-explat/","jetpack-forms":"jetpack_vendor/automattic/jetpack-forms/","jetpack-image-cdn":"jetpack_vendor/automattic/jetpack-image-cdn/","jetpack-import":"jetpack_vendor/automattic/jetpack-import/","jetpack-ip":"jetpack_vendor/automattic/jetpack-ip/","jetpack-jitm":"jetpack_vendor/automattic/jetpack-jitm/","jetpack-licensing":"jetpack_vendor/automattic/jetpack-licensing/","jetpack-masterbar":"jetpack_vendor/automattic/jetpack-masterbar/","jetpack-my-jetpack":"jetpack_vendor/automattic/jetpack-my-jetpack/","jetpack-password-checker":"jetpack_vendor/automattic/jetpack-password-checker/","jetpack-plugins-installer":"jetpack_vendor/automattic/jetpack-plugins-installer/","jetpack-post-list":"jetpack_vendor/automattic/jetpack-post-list/","jetpack-protect-models":"jetpack_vendor/automattic/jetpack-protect-models/","jetpack-protect-status":"jetpack_vendor/automattic/jetpack-protect-status/","jetpack-publicize-pkg":"jetpack_vendor/automattic/jetpack-publicize/","jetpack-search-pkg":"jetpack_vendor/automattic/jetpack-search/","jetpack-stats":"jetpack_vendor/automattic/jetpack-stats/","jetpack-stats-admin":"jetpack_vendor/automattic/jetpack-stats-admin/","jetpack-sync":"jetpack_vendor/automattic/jetpack-sync/","jetpack-videopress-pkg":"jetpack_vendor/automattic/jetpack-videopress/","jetpack-waf":"jetpack_vendor/automattic/jetpack-waf/","jetpack-wordads":"jetpack_vendor/automattic/jetpack-wordads/","woocommerce-analytics":"jetpack_vendor/automattic/woocommerce-analytics/"}}; </script> <script crossorigin='anonymous' src="https://s0.wp.com/wp-content/plugins/gutenberg-core/v19.7.0/build/url/index.min.js?m=1732574862i&ver=499ac283dc628dfb623e" id="wp-url-js"></script> <script id="jetpack-instant-search-js-before"> var JetpackInstantSearchOptions=JSON.parse(decodeURIComponent("%7B%22overlayOptions%22%3A%7B%22colorTheme%22%3A%22light%22%2C%22enableInfScroll%22%3Atrue%2C%22enableFilteringOpensOverlay%22%3Atrue%2C%22enablePostDate%22%3Atrue%2C%22enableSort%22%3Atrue%2C%22highlightColor%22%3A%22%23FFC%22%2C%22overlayTrigger%22%3A%22submit%22%2C%22resultFormat%22%3A%22expanded%22%2C%22showPoweredBy%22%3Atrue%2C%22defaultSort%22%3A%22relevance%22%2C%22excludedPostTypes%22%3A%5B%5D%7D%2C%22homeUrl%22%3A%22https%3A%5C%2F%5C%2Fblog.gravatar.com%22%2C%22locale%22%3A%22en%22%2C%22postsPerPage%22%3A10%2C%22siteId%22%3A1886259%2C%22postTypes%22%3A%7B%22post%22%3A%7B%22singular_name%22%3A%22Post%22%2C%22name%22%3A%22Posts%22%7D%2C%22page%22%3A%7B%22singular_name%22%3A%22Page%22%2C%22name%22%3A%22Pages%22%7D%2C%22attachment%22%3A%7B%22singular_name%22%3A%22Media%22%2C%22name%22%3A%22Media%22%7D%7D%2C%22webpackPublicPath%22%3A%22https%3A%5C%2F%5C%2Fs2.wp.com%5C%2Fwp-content%5C%2Fmu-plugins%5C%2Fjetpack-plugin%5C%2Fsun%5C%2Fjetpack_vendor%5C%2Fautomattic%5C%2Fjetpack-search%5C%2Fbuild%5C%2Finstant-search%5C%2F%22%2C%22isPhotonEnabled%22%3Atrue%2C%22isFreePlan%22%3Afalse%2C%22apiRoot%22%3A%22https%3A%5C%2F%5C%2Fpublic-api.wordpress.com%5C%2F%22%2C%22apiNonce%22%3A%22f54a021c98%22%2C%22isPrivateSite%22%3Afalse%2C%22isWpcom%22%3Atrue%2C%22hasOverlayWidgets%22%3Atrue%2C%22widgets%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Mentions%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22mentions%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_0%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_1%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22taxonomy_2%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%2C%22filter_id%22%3A%22date_histogram_3%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-2%22%7D%5D%2C%22widgetsOutsideOverlay%22%3A%5B%7B%22filters%22%3A%5B%7B%22name%22%3A%22Mentions%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22mentions%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_4%22%7D%2C%7B%22name%22%3A%22Categories%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22category%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_5%22%7D%2C%7B%22name%22%3A%22Tags%22%2C%22type%22%3A%22taxonomy%22%2C%22taxonomy%22%3A%22post_tag%22%2C%22count%22%3A5%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22taxonomy_6%22%7D%2C%7B%22name%22%3A%22Year%22%2C%22type%22%3A%22date_histogram%22%2C%22count%22%3A5%2C%22field%22%3A%22post_date%22%2C%22interval%22%3A%22year%22%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%2C%22filter_id%22%3A%22date_histogram_7%22%7D%5D%2C%22widget_id%22%3A%22jetpack-search-filters-3%22%7D%5D%2C%22hasNonSearchWidgets%22%3Afalse%2C%22preventTrackingCookiesReset%22%3Afalse%7D")); </script> <script crossorigin='anonymous' type='text/javascript' src='https://s0.wp.com/wp-content/mu-plugins/jetpack-plugin/sun/jetpack_vendor/automattic/jetpack-search/build/instant-search/jp-search.js?m=1731341983i'></script> <script crossorigin='anonymous' src="//stats.wp.com/w.js?ver=202448" id="jp-tracks-js"></script> <script id="comment-like-js-extra"> var comment_like_text = {"loading":"Loading...","swipeUrl":"https:\/\/s2.wp.com\/wp-content\/mu-plugins\/comment-likes\/js\/lib\/swipe.js?ver=20131008"}; </script> <script id="coblocks-loader-js-extra"> var wpcom_coblocks_js = {"coblocks_masonry_js":"https:\/\/s2.wp.com\/wp-content\/plugins\/coblocks\/2.18.1-simple-rev.4\/dist\/js\/coblocks-masonry.min.js","coblocks_lightbox_js":"https:\/\/s2.wp.com\/wp-content\/plugins\/coblocks\/2.18.1-simple-rev.4\/dist\/js\/coblocks-lightbox.min.js","jquery_core_js":"\/wp-includes\/js\/jquery\/jquery.min.js","jquery_migrate_js":"\/wp-includes\/js\/jquery\/jquery-migrate.min.js","masonry_js":"\/wp-includes\/js\/masonry.min.js","imagesloaded_js":"\/wp-includes\/js\/imagesloaded.min.js"}; var coblocksLigthboxData = {"closeLabel":"Close Gallery","leftLabel":"Previous","rightLabel":"Next"}; </script> <script id="verbum-settings-js-before"> window.VerbumComments = {"Log in or provide your name and email to leave a reply.":"Log in or provide your name and email to leave a reply.","Log in or provide your name and email to leave a comment.":"Log in or provide your name and email to leave a comment.","Receive web and mobile notifications for posts on this site.":"Receive web and mobile notifications for posts on this site.","Name":"Name","Email (address never made public)":"Email (address never made public)","Website (optional)":"Website (optional)","Leave a reply. (log in optional)":"Leave a reply. (log in optional)","Leave a comment. (log in optional)":"Leave a comment. (log in optional)","Log in to leave a reply.":"Log in to leave a reply.","Log in to leave a comment.":"Log in to leave a comment.","Logged in via %s":"Logged in via %s","Log out":"Log out","Email":"Email","(Address never made public)":"(Address never made public)","Instantly":"Instantly","Daily":"Daily","Reply":"Reply","Comment":"Comment","WordPress":"WordPress","Weekly":"Weekly","Notify me of new posts":"Notify me of new posts","Email me new posts":"Email me new posts","Email me new comments":"Email me new comments","Cancel":"Cancel","Write a comment...":"Write a comment...","Write a reply...":"Write a reply...","Website":"Website","Optional":"Optional","We'll keep you in the loop!":"We'll keep you in the loop!","Loading your comment...":"Loading your comment...","Discover more from":"Discover more from Gravatar Blog","Subscribe now to keep reading and get access to the full archive.":"Subscribe now to keep reading and get access to the full archive.","Continue reading":"Continue reading","Never miss a beat!":"Never miss a beat!","Interested in getting blog post updates? Simply click the button below to stay in the loop!":"Interested in getting blog post updates? Simply click the button below to stay in the loop!","Enter your email address":"Enter your email address","Subscribe":"Subscribe","Comment sent successfully":"Comment sent successfully","Save my name, email, and website in this browser for the next time I comment.":"Save my name, email, and website in this browser for the next time I comment.","siteId":1886259,"postId":2274,"mustLogIn":true,"requireNameEmail":false,"commentRegistration":true,"connectURL":"https:\/\/gravatar.wordpress.com\/public.api\/connect\/?action=request&domain=blog.gravatar.com","logoutURL":"https:\/\/gravatar.wordpress.com\/wp-login.php?action=logout&_wpnonce=0151358be9","homeURL":"https:\/\/blog.gravatar.com\/","subscribeToBlog":true,"subscribeToComment":true,"isJetpackCommentsLoggedIn":false,"jetpackUsername":"","jetpackUserId":0,"jetpackSignature":"","jetpackAvatar":"https:\/\/0.gravatar.com\/avatar\/?s=96&d=identicon&r=G","enableBlocks":true,"enableSubscriptionModal":true,"currentLocale":"en","isJetpackComments":false,"allowedBlocks":["core\/paragraph","core\/list","core\/code","core\/list-item","core\/quote","core\/image","core\/embed","core\/quote","core\/code"],"embedNonce":"0bbc833b6a","verbumBundleUrl":"https:\/\/s2.wp.com\/wp-content\/mu-plugins\/jetpack-mu-wpcom-plugin\/sun\/vendor\/automattic\/jetpack-mu-wpcom\/src\/features\/verbum-comments\/dist\/index.js","isRTL":false,"vbeCacheBuster":1721244820,"iframeUniqueId":0} </script> <script crossorigin='anonymous' type='text/javascript' src='https://s0.wp.com/_static/??-eJx9j90OwiAMhV9IVpk/88b4LAwaw0aBUNji20uyGeM0XjVtz+n5CnMUOviMPgMVEV25W88wYI5Kj6KO5qgDrQvg4mFCb0ICVXIglbPVX2rgpKEv1pkqTn2hGkFUIxgUM9ZiHl6R1cIFZTA1A+/gN8hqFM6OWLE2g63x7epd0CND28hLIwVbig5Fwqk5grGcl0uL6AVB1v8DUSkURrd++NlW342ustufZdvJw2l4Akk6f0Y='></script> <script type="text/javascript"> (function () { var wpcom_reblog = { source: 'toolbar', toggle_reblog_box_flair: function (obj_id, post_id) { // Go to site selector. This will redirect to their blog if they only have one. const postEndpoint = `https://wordpress.com/post`; // Ideally we would use the permalink here, but fortunately this will be replaced with the // post permalink in the editor. const originalURL = `${ document.location.href }?page_id=${ post_id }`; const url = postEndpoint + '?url=' + encodeURIComponent( originalURL ) + '&is_post_share=true' + '&v=5'; const redirect = function () { if ( ! window.open( url, '_blank' ) ) { location.href = url; } }; if ( /Firefox/.test( navigator.userAgent ) ) { setTimeout( redirect, 0 ); } else { redirect(); } }, }; window.wpcom_reblog = wpcom_reblog; })(); </script> <script type="text/javascript"> // <![CDATA[ (function() { try{ if ( window.external &&'msIsSiteMode' in window.external) { if (window.external.msIsSiteMode()) { var jl = document.createElement('script'); jl.type='text/javascript'; jl.async=true; jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(jl, s); } } }catch(e){} })(); // ]]> </script> <iframe src='https://widgets.wp.com/likes/master.html?ver=20241129#ver=20241129&origin=https://blog.gravatar.com' scrolling='no' id='likes-master' name='likes-master' style='display:none;'></iframe> <div id='likes-other-gravatars' class='wpl-new-layout' role="dialog" aria-hidden="true" tabindex="-1"> <div class="likes-text"> <span>%d</span> </div> <ul class="wpl-avatars sd-like-gravatars"></ul> </div> <script src="//stats.wp.com/w.js?67" defer></script> <script type="text/javascript"> _tkq = window._tkq || []; _stq = window._stq || []; _tkq.push(['storeContext', {'blog_id':'1886259','blog_tz':'-8','user_lang':'en','blog_lang':'en','user_id':'0'}]); _stq.push(['view', {'blog':'1886259','v':'wpcom','tz':'-8','user_id':'0','post':'2274','subd':'gravatar'}]); _stq.push(['extra', {'crypt':'UE40eW5QN0p8M2Y/RE1mNzc2NTVTamdsd0xoLz9RQkM2K298TXY9bERQMXc2MjhEaVZfb2wwakRoSj0mUkp1THptM1NdbkV1WjZIcU9mVWQmPUIvMlN6Jk8wW3NYVEJ3dWZOWExuWD9yS0RSOHRncHMxWXUyVF89T101R0RUTGowRm1sM2JsZjhNLWFUOFRhcDk/N2dmNTJrJV8tWkJNbn5MVls0NmdCQnlsOEd5dGVPJlYvSm4wLG9mSSYvZUduUHU3N2xNZ0gwTVRhZUFFMkJ3MVRaLT8mU2lZM2o3Vy0wcm13X0J6fE1JUXlxP1dlaEU2YTRmS1AmaFtOZjdsb1U2ZnNuR2d4cVE4P0svPVZXaVZjY3Q0d2lJW3M9ZHdiejJ1RG1IRjFzd3hLXW9iVjVWY1d0SltiWy5YLjI4Y3xO'}]); _stq.push([ 'clickTrackerInit', '1886259', '2274' ]); </script> <noscript><img src="https://pixel.wp.com/b.gif?v=noscript" style="height:1px;width:1px;overflow:hidden;position:absolute;bottom:1px;" alt="" /></noscript> <script> ( function() { function getMobileUserAgentInfo() { if ( typeof wpcom_mobile_user_agent_info === 'object' ) { wpcom_mobile_user_agent_info.init(); var mobileStatsQueryString = ''; if ( wpcom_mobile_user_agent_info.matchedPlatformName !== false ) { mobileStatsQueryString += '&x_' + 'mobile_platforms' + '=' + wpcom_mobile_user_agent_info.matchedPlatformName; } if ( wpcom_mobile_user_agent_info.matchedUserAgentName !== false ) { mobileStatsQueryString += '&x_' + 'mobile_devices' + '=' + wpcom_mobile_user_agent_info.matchedUserAgentName; } if ( wpcom_mobile_user_agent_info.isIPad() ) { mobileStatsQueryString += '&x_' + 'ipad_views' + '=' + 'views'; } if ( mobileStatsQueryString != '' ) { new Image().src = document.location.protocol + '//pixel.wp.com/g.gif?v=wpcom-no-pv' + mobileStatsQueryString + '&baba=' + Math.random(); } } } document.addEventListener( 'DOMContentLoaded', getMobileUserAgentInfo ); } )(); </script> <script> (function() { 'use strict'; const fetches = {}; const promises = {}; const urls = { 'verbum': 'https://s2.wp.com/wp-content/mu-plugins/jetpack-mu-wpcom-plugin/sun/vendor/automattic/jetpack-mu-wpcom/src/build/verbum-comments/verbum-comments.js?m=1731953849i&minify=false&ver=97043884103359931e09' }; const loaders = { 'verbum': () => { fetchExternalScript('verbum'); promises['verbum'] = promises['verbum'] || loadWPScript('verbum'); return promises['verbum']; }, }; const scriptExtras = { }; window.WP_Enqueue_Dynamic_Script = { loadScript: (handle) => { if (!loaders[handle]) { console.error('WP_Enqueue_Dynamic_Script: unregistered script `' + handle + '`.'); } return loaders[handle](); } }; function fetchExternalScript(handle) { if (!urls[handle]) { return Promise.resolve(); } fetches[handle] = fetches[handle] || fetch(urls[handle], { mode: 'no-cors' }); return fetches[handle]; } function runExtraScript(handle, type, index) { const id = 'wp-enqueue-dynamic-script:' + handle + ':' + type + ':' + (index + 1); const template = document.getElementById(id); if (!template) { return Promise.reject(); } const script = document.createElement( 'script' ); script.innerHTML = template.innerHTML; document.body.appendChild( script ); return Promise.resolve(); } function loadExternalScript(handle) { if (!urls[handle]) { return Promise.resolve(); } return fetches[handle].then(() => { return new Promise((resolve, reject) => { const script = document.createElement('script'); script.onload = () => resolve(); script.onerror = (e) => reject(e); script.src = urls[handle]; document.body.appendChild(script); }); }); } function loadExtra(handle, pos) { const count = (scriptExtras[handle] && scriptExtras[handle][pos]) || 0; let promise = Promise.resolve(); for (let i = 0; i < count; i++) { promise = promise.then(() => runExtraScript(handle, pos, i)); } return promise; } function loadWPScript(handle) { // Core loads scripts in this order. See: https://github.com/WordPress/WordPress/blob/a59eb9d39c4fcba834b70c9e8dfd64feeec10ba6/wp-includes/class-wp-scripts.php#L428. return loadExtra(handle, 'translations') .then(() => loadExtra(handle, 'before')) .then(() => loadExternalScript(handle)) .then(() => loadExtra(handle, 'after')); } } )(); </script> </body> </html>