1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="utf-8"/> 5 <link href="https://media.base44.com/images/public/69c55066b86bf5910c6d54fc/d5711a19b_sketchhausfavicon.jpg" rel="icon" type="image/jpeg"/> 6 <link href="https://media.base44.com/images/public/69c55066b86bf5910c6d54fc/d5711a19b_sketchhausfavicon.jpg" rel="apple-touch-icon"/> 7 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 8 <link href="/manifest.json" rel="manifest"/> 9 <!-- Google tag (gtag.js) -->
vendor: 69 bytes, lines 9-10
9 10 <script async="" src="https://www.googletagmanager.com/gtag/js?id=
10G-LKDT31HT89
vendor: 17 bytes, lines 10-12
10"> 11 </script> 12
12<script> 13
vendor: 139 bytes, lines 13-16
13window.dataLayer = window.dataLayer || []; 14 function gtag(){dataLayer.push(arguments);} 15 gtag('js', new Date()); 16 gtag('config', '
16G-LKDT31HT89
vendor: 8 bytes, lines 16-17
16'); 17
17gtag('config', 'AW-18399611827'); 18 </script>
18 19 <meta content="hl3h25ol68klgygmzpkegu96ita0rg" name="facebook-domain-verification"/> 20 <title> 21 Our Story | SketchHaus Architects 22 </title> 23 <meta content="Our Story on SketchHaus Architects. An all-in-one management platform for architecture and design studios to." name="description"/> 24
24<script type="application/ld+json"> 25 { 26 "@context": "https://schema.org", 27 "@type": "ArchitecturalService", 28 "name": "SketchHaus", 29 "url": "https://www.sketchhaus.com", 30 "logo": "https://media.base44.com/images/public/69c55066b86bf5910c6d54fc/4beef9012_SketchHauslogo_2026.jpg", 31 "description": "SketchHaus is a residential architecture firm serving homeowners in Atlanta, GA, Jacksonville, FL, and Nashville, TN, specializing in home renovations, facelifts, and new construction permit documents.", 32 "telephone": "+1-844-222-3326", 33 "address": { 34 "@type": "PostalAddress", 35 "streetAddress": "Atlanta", 36 "addressLocality": "Atlanta", 37 "addressRegion": "GA", 38 "postalCode": "30326", 39 "addressCountry": "US" 40 }, 41 "geo": { 42 "@type": "GeoCoordinates", 43 "latitude": 33.749, 44 "longitude": -84.388 45 }, 46 "areaServed": [ 47 { "@type": "City", "name": "Atlanta" }, 48 { "@type": "City", "name": "Jacksonville" }, 49 { "@type": "City", "name": "Nashville" } 50 ], 51 "priceRange": "$$$$", 52 "sameAs": [] 53 } 54 </script>
54 55 <!-- Meta Pixel Code --> 56
56<script>
vendor: 418 bytes, lines 56-65
56 57 !function(f,b,e,v,n,t,s) 58 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 59 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 60 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 61 n.queue=[];t=b.createElement(e);t.async=!0; 62 t.src=v;s=b.getElementsByTagName(e)[0]; 63 s.parentNode.insertBefore(t,s)}(window, document,'script', 64 'https://connect.facebook.net/en_US/fbevents.js'); 65 fbq('init', '
65553956308908666
vendor: 34 bytes, lines 65-67
65'); 66 fbq('track', 'PageView'); 67
67</script>
67 68 <!-- End Meta Pixel Code --> 69
69<script crossorigin="" src="/assets/index-src9JL14.js" type="module"> 70 </script>
70 71 <link crossorigin="" href="/assets/index-Ux8rhe9T.css" rel="stylesheet"/> 72
72<script type="module"> 73 if (window.self === window.top) { 74 let lastPath = ""; 75 function getPageNameFromPath(path) { 76 const segments = path.split("/").filter(Boolean); 77 return segments[0] || null; 78 } 79 function trackPageView() { 80 const path = window.location.pathname; 81 if (path === lastPath) return; 82 lastPath = path; 83 const pageName = getPageNameFromPath(path) || "home"; 84 const appId = "69c55066b86bf5910c6d54fc"; 85 if (!appId) return; 86 fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, { 87 method: "POST", 88 }).catch(() => {}); 89 } 90 const originalPushState = history.pushState.bind(history); 91 history.pushState = function (...args) { 92 originalPushState(...args); 93 trackPageView(); 94 }; 95 const originalReplaceState = history.replaceState.bind(history); 96 history.replaceState = function (...args) { 97 originalReplaceState(...args); 98 trackPageView(); 99 }; 100 window.addEventListener("popstate", trackPageView); 101 trackPageView(); 102} 103 </script>
103 104 <meta content="Our Story | SketchHaus Architects" property="og:title"/> 105 <meta content="Our Story on SketchHaus Architects. An all-in-one management platform for architecture and design studios to." property="og:description"/> 106 <meta content="https://media.base44.com/images/public/69c55066b86bf5910c6d54fc/334a7f28d_sketchhausfavicon.jpg/v1/fill/w_1200,h_630/334a7f28d_sketchhausfavicon.jpg" property="og:image"/> 107 <meta content="https://sketchhaus.com/our-story" property="og:url"/> 108 <meta content="website" property="og:type"/> 109 <meta content="SketchHaus Architects" property="og:site_name"/> 110 <meta content="Our Story | SketchHaus Architects" name="twitter:title"/> 111 <meta content="Our Story on SketchHaus Architects. An all-in-one management platform for architecture and design studios to." name="twitter:description"/> 112 <meta content="https://media.base44.com/images/public/69c55066b86bf5910c6d54fc/334a7f28d_sketchhausfavicon.jpg/v1/fill/w_1200,h_630/334a7f28d_sketchhausfavicon.jpg" name="twitter:image"/> 113 <meta content="summary_large_image" name="twitter:card"/> 114 <meta content="https://sketchhaus.com/our-story" name="twitter:url"/> 115
115<script> 116 (function () { 117 var titles = {"/": "SketchHaus Architects", "/services": "Services | SketchHaus Architects", "/our-story": "Our Story | SketchHaus Architects", "/work-samples": "Work Samples | SketchHaus Architects", "/resources": "Resources | SketchHaus Architects", "/insights": "Insights | SketchHaus Architects", "/renovation-bundle": "Renovation Bundle | SketchHaus Architects", "/schedule-appointment": "Schedule Appointment | SketchHaus Architects", "/black-label-experience": "Black Label Experience | SketchHaus Architects", "/new-construction-bundle": "New Construction Bundle | SketchHaus Architects", "/reschedule-appointment": "Reschedule Appointment | SketchHaus Architects", "/access-pending": "Access Pending | SketchHaus Architects", "/contact": "Contact Us | SketchHaus Architects", "/residential-architects-atlanta": "Residential Architects Atlanta | SketchHaus Architects", "/jacksonville-architect": "Jacksonville Architect | SketchHaus Architects", "/nashville-architect": "Nashville Architect | SketchHaus Architects", "/contact-facelift": "Contact Facelift | SketchHaus Architects", "/contact-renovation": "Contact Renovation | SketchHaus Architects", "/contact-new-construction": "Contact New Construction | SketchHaus Architects", "/contact-black-label": "Contact Black Label | SketchHaus Architects", "/deposit-renovation-bundle": "Deposit Renovation Bundle | SketchHaus Architects", "/privacy-policy": "Privacy Policy | SketchHaus Architects", "/admin": "Admin / Admin Dashboard | SketchHaus Architects", "/admin/boards": "Admin / Admin Boards | SketchHaus Architects", "/admin/projects": "Admin / Admin Projects | SketchHaus Architects", "/admin/sbn": "Admin / Admin SBN | SketchHaus Architects", "/admin/insights": "Admin / Admin Insights | SketchHaus Architects", "/admin/resources": "Admin / Admin Resources | SketchHaus Architects", "/admin/chatbot": "Admin / Admin Chatbot | SketchHaus Architects", "/admin/settings": "Admin / Admin Settings | SketchHaus Architects", "/admin/appointments": "Admin / Admin Appointments | SketchHaus Architects", "/admin/users": "Admin / Admin Users | SketchHaus Architects", "/admin/calendar": "Admin / Admin Calendar | SketchHaus Architects", "/admin/marketing": "Admin / Admin Marketing | SketchHaus Architects", "/admin/image-optimizer": "Admin / Admin Image Optimizer | SketchHaus Architects", "/admin/customers": "Admin / Admin Customers | SketchHaus Architects", "/client-dashboard": "Client Dashboard | SketchHaus Architects", "/builder": "Builder / Builder Dashboard | SketchHaus Architects", "/builder/profile": "Builder / Builder Profile | SketchHaus Architects", "/profile": "User Profile | SketchHaus Architects", "/home": "SketchHaus Architects"}; 118 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 119 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 120 var dashed = function (s) { 121 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 122 }; 123 var decode = function (s) { 124 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 125 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 126 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 127 }; 128 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 129 var norm = function (path) { 130 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 131 return parts.length ? "/" + parts.join("/") : "/"; 132 }; 133 var lastPath = location.pathname, written = document.title, on = true; 134 var sync = function () { 135 // Path only: a hash/query change is the same page, and the SDK strips its own auth 136 // params with replaceState -- neither must clobber a server-rendered title in place. 137 if (!on || location.pathname === lastPath) return; 138 lastPath = location.pathname; 139 if (document.title !== written) { on = false; return; } 140 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 141 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 142 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 143 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 144 // a redirect landing on an unmapped path would bake the placeholder into the stored 145 // snapshot. Leaving the title alone degrades to today's behavior instead. 146 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 147 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 148 // dashes there, and the client cannot tell the two apart. The map emits every reach
148able 149 // shape per segment instead (_client_url_variants). 150 var title = titles[norm(location.pathname)]; 151 if (title === undefined) return; 152 document.title = title; 153 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 154 // keeping the assigned string would make the next sync() read our own write as the app's. 155 written = document.title; 156 }; 157 var wrap = function (fn) { 158 // The history entry is already pushed by the time sync() runs, so a throw here would 159 // surface inside the host app's router and break navigation. This is injected into apps 160 // we cannot test, so it swallows rather than trusting the trace. 161 return function () { 162 var r = fn.apply(this, arguments); 163 try { sync(); } catch (e) {} 164 return r; 165 }; 166 }; 167 history.pushState = wrap(history.pushState); 168 history.replaceState = wrap(history.replaceState); 169 window.addEventListener("popstate", sync); 170})(); 171 </script>
171 172 <meta content="yes" name="mobile-web-app-capable"/> 173 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 174 <meta content="SketchHaus Architects" name="apple-mobile-web-app-title"/> 175 <link href="https://sketchhaus.com/our-story" rel="canonical"/> 176
176<script data-seo-source="builder" type="application/ld+json"> 177 {"name": "SketchHaus Architects", "@context": "https://schema.org", "@type": "WebSite", "url": "https://sketchhaus.com"} 178 </script>
178 179
179<script data-seo-source="builder" type="application/ld+json"> 180 {"name": "SketchHaus Architects", "logo": "https://media.base44.com/images/public/69c55066b86bf5910c6d54fc/3d2d8548e_sketchhausfavicon.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://sketchhaus.com"} 181 </script>
181 182
182<script data-seo-source="builder" type="application/ld+json"> 183 {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://sketchhaus.com/"}, {"@type": "ListItem", "position": 2, "name": "Our Story", "item": "https://sketchhaus.com/our-story"}]} 184 </script>
184 185
185<script> 186 (function(){var SAMPLING_RATE=1.0;var sid=(crypto.randomUUID&&crypto.randomUUID())||(Date.now()+'-'+Math.random().toString(36).slice(2));function samplingValue(v){var h=2166136261;for(var i=0;i<v.length;i++){h^=v.charCodeAt(i);h=Math.imul(h,16777619);}return(h>>>0)/4294967296;}var _sampledOut=samplingValue(sid)>=SAMPLING_RATE;window.Base44=window.Base44||{};if(_sampledOut){var _noop=function(){};window.Base44.recordings=Object.freeze({version:'1',setUserID:_noop,setUserAnonymousID:_noop,setMetadata:_noop,event:_noop,issue:_noop,start:_noop,stop:_noop,isActive:function(){return false;},getSessionID:function(){return null;},getSessionURL:function(){return null;},forceFlushBatch:_noop});try{console.debug('[base44 recordings] session sampled out');}catch(_){}return;}var s=document.createElement('script');window.Base44.__preQ=window.Base44.__preQ||[];if(!window.Base44.recordings){var _pre=function(m){return function(){if(window.Base44.__preQ.length<100)window.Base44.__preQ.push([m,Array.prototype.slice.call(arguments)]);};};window.Base44.recordings={version:'1',setUserID:_pre('setUserID'),setUserAnonymousID:_pre('setUserAnonymousID'),setMetadata:_pre('setMetadata'),event:_pre('event'),issue:_pre('issue'),start:_pre('start'),stop:_pre('stop'),isActive:function(){return false;},getSessionID:function(){return null;},getSessionURL:function(){return null;},forceFlushBatch:_pre('forceFlushBatch')};}s.src='https://unpkg.com/[email protected]/dist/rrweb.umd.cjs';s.integrity='sha384-vi2VGEOczLoSZVrAqXzYd5VWgeBvxiOEgda6/sVzRK+lvhbs9TuqZ474UUptLXLB';s.crossOrigin='anonymous';s.async=true;s.onload=function(){if(!window.rrweb)return;var _started=false;var APP_ID="69c55066b86bf5910c6d54fc";var INGEST_TOKEN="D1Iu4BuTY_KRLITqo3pMhATSCKdw60_-GdnWt_4umTc";var NETWORK_IGNORE_HEADERS=["cookie", "set-cookie", "authorization", "x-api-key"];var buffer=[];var lastFlush=Date.now();var recorderStopFn=null;var _stopRequested=false;var MAX_SESSION_MS=1800000;var IDLE_TIMEOUT_MS=900000;var lastActivityAt=0;var idleTimer=null;var maxTimer=null;var _sdkActive=null;var _sdkPending=[];var SDK_CAP=256;var sdkSafe=function(v){try{return String(v).slice(0,SDK_CAP);}catch(_){return '';}};var sdkDeep=function(v){try{return JSON.parse(JSON.stringify(v||{}));}catch(_){return {};}};var sdkEmit=function(method,payload){if(_sampledOut)return;var ev={method:method,payload:payload||{}};if(_sdkActive){try{_sdkActive('base44_sdk',Object.assign({method:method},payload||{}));}catch(_){}return;}if(_sdkPending.length<100)_sdkPending.push(ev);};window.Base44=window.Base44||{};window.Base44.recordings=Object.freeze({version:'1',setUserID:function(id){sdkEmit('setUserID',{value:sdkSafe(id)});},setUserAnonymousID:function(id){sdkEmit('setUserAnonymousID',{value:sdkSafe(id)});},setMetadata:function(key,value){if(_sampledOut)return;if(typeof key!=='string'||key.length>64)return;var v;try{v=JSON.parse(JSON.stringify(value));}catch(_){return;}sdkEmit('setMetadata',{key:key,value:v});},event:function(name,payload){if(_sampledOut)return;if(typeof name!=='string')return;sdkEmit('event',{name:name.slice(0,64),payload:sdkDeep(payload)});},issue:function(name,payload){if(_sampledOut)return;if(typeof name!=='string')return;sdkEmit('issue',{name:name.slice(0,64),payload:sdkDeep(payload)});},start:function(){},stop:function(){stopRecording('manual',true);},isActive:function(){return !_sampledOut&&!_stopRequested&&!!recorderStopFn;},getSessionID:function(){return _sampledOut?null:sid;},getSessionURL:function(){return null;},forceFlushBatch:function(){if(_sampledOut)return;try{flush(false);}catch(_){}}});if(window.Base44.__preQ&&window.Base44.__preQ.length){var _pq=window.Base44.__preQ;window.Base44.__preQ=[];for(var _qi=0;_qi<_pq.length;_qi++){var _m=_pq[_qi][0],_a=_pq[_qi][1];try{var _fn=window.Base44.recordings[_m];if(typeof _fn==='function')_fn.apply(null,_a);}catch(_){}}}function redactUrl(u){try{u=String(u||'');var q=u.indexOf('?');if(q>=0)u=u.slice(0,q);var h=u.indexOf('#');if(h>=0)u=u.slice(0,h);return u;}catch(_){return'';}}function redactText(s){try{s=String(s||'');return s.replace(/https?:\/\/[^\s)'\"]+|\/[^\s)'\"]*[?#][^\s)'\"]*/g,function(m){return redactUrl(m);});}catch(_){return'';}}function stopRecording(reason,dropBuffered){if(_stopRequested){if(dropBuffered)buffer.length=0;return;}if(!dropBuffered){try{flush(false);}catch(_){}}_stopRequested=true;buffer.length=0;if(idleTimer){try{clearTimeout(idleTimer);}catch(_){}idleTimer=null;}if(maxTimer){try{clearTimeout(maxTimer);}catch(_){}maxTimer=null;}if(recorderStopFn){try{recorderStopFn();recorderStopFn=null;}catch(_){}}
186try{if(reason)console.debug('[base44 recordings] stopped: '+reason);}catch(_){}}function scheduleIdleStop(){if(_stopRequested)return;if(idleTimer){try{clearTimeout(idleTimer);}catch(_){}}var wait=IDLE_TIMEOUT_MS-(Date.now()-lastActivityAt);if(wait<0)wait=0;idleTimer=setTimeout(function(){if(_stopRequested)return;if(Date.now()-lastActivityAt>=IDLE_TIMEOUT_MS)stopRecording('idle_timeout',false);else scheduleIdleStop();},wait);}function markActivity(){if(_stopRequested)return;lastActivityAt=Date.now();scheduleIdleStop();}function isMeaningfulActivityEvent(ev){try{return !!(ev&&ev.type===3&&ev.data&&((ev.data.source===2&&(ev.data.type===2||ev.data.type===4||ev.data.type===9))||ev.data.source===3||ev.data.source===5));}catch(_){return false;}}function sessionLifetimeCapture(){lastActivityAt=Date.now();maxTimer=setTimeout(function(){stopRecording('max_duration',false);},MAX_SESSION_MS);scheduleIdleStop();}function flush(ka){if(_stopRequested){buffer.length=0;return;}if(!buffer.length)return;var tok=null;try{tok=localStorage.getItem('base44_access_token');}catch(_){}var payload={app_id:APP_ID,session_id:sid,events:buffer.splice(0),page_url:redactUrl(location.href),user_agent:navigator.userAgent,access_token:tok};lastFlush=Date.now();var opts={method:'POST',headers:{'Content-Type':'application/json','X-Base44-Recording-Token':INGEST_TOKEN},body:JSON.stringify(payload)};if(ka)opts.keepalive=true;fetch('/api/runtime/session-recordings/ingest',opts).then(function(r){try{var skip=r.headers.get('X-Base44-Recording-Skip');if(skip==='excluded'||skip==='admin'){stopRecording('excluded',true);return;}if(skip==='sampled'){stopRecording('sampled',true);return;}}catch(_){}if(!r.ok){try{console.warn('session-recordings ingest http',r.status);}catch(_){}try{if(r.status===429&&r.headers.get('X-Base44-Recording-Limit')==='reached'){stopRecording('quota_reached',true);}}catch(_){}}}).catch(function(e){try{console.warn('session-recordings ingest err',e);}catch(_){}});}function devtoolsCapture(){if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var add=window.rrweb.record.addCustomEvent;var inside=false;function safe(fn){return function(){if(inside)return;inside=true;try{return fn.apply(this,arguments);}finally{inside=false;}};}['log','info','warn','error','debug'].forEach(function(level){var orig=console[level];if(!orig)return;console[level]=function(){try{add('console',{level:level});}catch(_){}return orig.apply(console,arguments);};});window.addEventListener('error',safe(function(e){add('error',{message:redactText(String(e.message||'unknown')),source:redactUrl(e.filename||''),line:e.lineno||0,col:e.colno||0,stack:e.error&&e.error.stack?redactText(String(e.error.stack).slice(0,1000)):''});}));window.addEventListener('unhandledrejection',safe(function(e){var r=e.reason||{};add('error',{message:redactText(String(r.message||r||'unhandled rejection')),stack:r.stack?redactText(String(r.stack).slice(0,1000)):'',rejection:true});}));if(window.fetch){var of=window.fetch.bind(window);window.fetch=function(input,init){var t0=performance.now();var method=(init&&init.method)||(input&&input.method)||'GET';var url=typeof input==='string'?input:(input&&input.url)||'';if(url.indexOf('/api/runtime/session-recordings/ingest')>=0)return of(input,init);var rurl=redactUrl(url);return of(input,init).then(function(r){try{add('network',{kind:'fetch',method:method,url:rurl,status:r.status,duration:Math.round(performance.now()-t0)});}catch(_){}return r;}).catch(function(e){try{add('network',{kind:'fetch',method:method,url:rurl,status:0,duration:Math.round(performance.now()-t0),error:String(e&&e.message||e)});}catch(_){}throw e;});};}if(window.XMLHttpRequest){var xp=window.XMLHttpRequest.prototype;var oo=xp.open,os=xp.send;xp.open=function(m,u){this.__gp_m=m;this.__gp_u=u;return oo.apply(this,arguments);};xp.send=function(){var xhr=this,t0=performance.now();xhr.addEventListener('loadend',function(){try{if((xhr.__gp_u||'').indexOf('/api/runtime/session-recordings/ingest')<0)add('network',{kind:'xhr',method:xhr.__gp_m||'GET',url:redactUrl(xhr.__gp_u),status:xhr.status,duration:Math.round(performance.now()-t0)});}catch(_){}});return os.apply(this,arguments);};}}var EMAIL_RE=/([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/g;var MASK_EMAILS=true;var MASK_NUMBERS=false;var CAPTURE_IFRAMES=true;function maskTextFn(text){if(!MASK_EMAILS||typeof text!=='string')return text;return text.replace(EMAIL_RE,'[email]');}function performanceCapture(){if(!('PerformanceObserver' in window))return;if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var addPerf=window.rrweb.record.addCustomEvent;function emit(metric,value){try{addPerf('performance',{metric:metric,value:value,timestamp:Date.now()});}catch(_){}}try{new PerformanceObserver(function(list){var entries=list.getEntries();var last=entries[entries.length-1];if(last)emit('LCP',Math.round(last.renderTime||last.loadTime||last.startTime||0));}).observe({type:'largest-contentful-paint',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];emit('FID',Math.round(e.processingStart-e.startTime));}}).observe({type:'first-input',buffered:true});}catch(_){}try{var clsValue=0;new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];if(!e.hadRecentInput){clsValue+=e.value;}}emit('CLS',Math.round(clsValue*1000)/1000);}).observe({type:'layout-shift',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];if(e.name==='first-contentful-paint')emit('FCP',Math.round(e.startTime));}}).observe({type:'paint',buffered:true});}catch(_){}try{new PerformanceObserver(function(list){var entries=list.getEntries();for(var i=0;i<entries.length;i++){var e=entries[i];emit('TTFB',Math.round(e.responseStart));}}).observe({type:'navigation',buffered:true});}catch(_){}}function issueCapture(){if(_sampledOut)return;if(!(window.rrweb&&window.rrweb.record&&window.rrweb.record.addCustomEvent))return;var addIssue=window.rrweb.record.addCustomEvent;var _crashEmitted=false;function emitIssue(kind){var page='';try{page=location.pathname;}catch(_){}try{addIssue('base44_issue',{kind:kind,page:page});}catch(_){}}var isReload=false;try{if(performance.getEntriesByType){var navEntry=performance.getEntriesByType('navigation')[0];if(navEntry&&navEntry.type==='reload')isReload=true;}}catch(_){}if(!isReload){try{if(performance.navigation&&performance.navigation.type===1)isReload=true;}catch(_){}}if(isReload)emitIssue('page_refresh');try{window.addEventListener('unhandledrejection',function(){try{if(_crashEmitted)return;_crashEmitted=true;emitIssue('app_crash');}catch(_){}},true);}catch(_){}}function startRecord(){if(_started)return;if(_stopRequested){try{console.debug('[base44 recordings] stop requested before start; not recording');}catch(_){}return;}if(_sampledOut){try{console.debug('[base44 recordings] session sampled out');}catch(_){}return;}_started=true;var maskInputOptions={password:true,email:true};if(MASK_NUMBERS){maskInputOptions.number=true;maskInputOptions.tel=true;maskInputOptions.date=true;}var recordOpts={emit:function(ev){if(_stopRequested)return;if(isMeaningfulActivityEvent(ev))markActivity();try{if(ev&&ev.type===4&&ev.data&&typeof ev.data.href==='string')ev.data.href=redactUrl(ev.data.href);}catch(_){}buffer.push(ev);if(ev.type===2){flush(false);return;}if(buffer.length>=50||Date.now()-lastFlush>5000)flush(false);},maskAllInputs:true,maskInputOptions:maskInputOptions,maskTextFn:maskTextFn,maskTextSelector:'.session-record-mask,[data-no-record]',blockSelector:'.session-record-block,[data-no-record-block]',recordCanvas:false,inlineStylesheet:true,checkoutEveryNms:60000};if(CAPTURE_IFRAMES)recordOpts.iframe=true;recorderStopFn=window.rrweb.record(recordOpts);if(window.rrweb.record.addCustomEvent){_sdkActive=window.rrweb.record.addCustomEvent;for(var _i=0;_i<_sdkPending.length;_i++){var _e=_sdkPending[_i];try{_sdkActive('base44_sdk',Object.assign({method:_e.method},_e.payload||{}));}catch(_){}}_sdkPending=[];}devtoolsCapture();performanceCapture();issueCapture();sessionLifetimeCapture();setTimeout(function(){try{window.rrweb.record.takeFullSnapshot&&window.rrweb.record.takeFullSnapshot(true);}catch(_){}},1500);setInterval(function(){flush(false);},5000);window.addEventListener('beforeunload',function(){flush(true);});}function whenReady(){var tries=0;function check(){var root=document.getElementById('root')||document.querySelector('main')||document.body;if(root&&root.childElementCount>0)return startRecord();if(++tries>50)return startRecord();setTimeout(check,100);}check();}
186if(document.readyState==='complete')whenReady();else window.addEventListener('load',whenReady);};(document.head||document.body).appendChild(s);})(); 187 </script>
187 188 </head> 189 <body> 190 <noscript> 191 <img height="1" src="https://www.facebook.com/tr?id=553956308908666&ev=PageView&noscript=1" style="display:none" width="1"/> 192 </noscript> 193 <div id="root"> 194 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 195 <main> 196 <header> 197 <h1> 198 Our Story | SketchHaus Architects 199 </h1> 200 <p> 201 Our Story on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 202 </p> 203 </header> 204 <nav aria-label="Pages"> 205 <h2> 206 Pages 207 </h2> 208 <ul> 209 <li> 210 <a href="/"> 211 Home 212 </a> 213 </li> 214 <li> 215 <a href="/services"> 216 Services 217 </a> 218 â Services on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 219 </li> 220 <li> 221 <a href="/our-story"> 222 Our Story 223 </a> 224 â Our Story on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 225 </li> 226 <li> 227 <a href="/work-samples"> 228 Work Samples 229 </a> 230 â Work Samples on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 231 </li> 232 <li> 233 <a href="/resources"> 234 Resources 235 </a> 236 â Resources on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 237 </li> 238 <li> 239 <a href="/insights"> 240 Insights 241 </a> 242 â Insights on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 243 </li> 244 <li> 245 <a href="/renovation-bundle"> 246 Renovation Bundle 247 </a> 248 â Renovation Bundle on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 249 </li> 250 <li> 251 <a href="/schedule-appointment"> 252 Schedule Appointment 253 </a> 254 â Schedule Appointment on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 255 </li> 256 <li> 257 <a href="/black-label-experience"> 258 Black Label Experience 259 </a> 260 â Black Label Experience on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 261 </li> 262 <li> 263 <a href="/new-construction-bundle"> 264 New Construction Bundle 265 </a> 266 â New Construction Bundle on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 267 </li> 268 <li> 269 <a href="/reschedule-appointment"> 270 Reschedule Appointment 271 </a> 272 â Reschedule Appointment on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 273 </li> 274 <li> 275 <a href="/access-pending"> 276 Access Pending 277 </a> 278 â Access Pending on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 279 </li> 280 <li> 281 <a href="/contact"> 282 Contact Us 283 </a> 284 â Contact Us on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 285 </li> 286 <li> 287 <a href="/residential-architects-atlanta"> 288 Residential Architects Atlanta 289 </a> 290 â Residential Architects Atlanta on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 291 </li> 292 <li> 293 <a href="/jacksonville-architect"> 294 Jacksonville Architect 295 </a> 296 â Jacksonville Architect on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 297 </li> 298 <li> 299 <a href="/nashville-architect"> 300 Nashville Architect 301 </a> 302 â Nashville Architect on SketchHaus Architects. An all-in-one management platform for ar
302chitecture and design studios to. 303 </li> 304 <li> 305 <a href="/contact-facelift"> 306 Contact Facelift 307 </a> 308 â Contact Facelift on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 309 </li> 310 <li> 311 <a href="/contact-renovation"> 312 Contact Renovation 313 </a> 314 â Contact Renovation on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 315 </li> 316 <li> 317 <a href="/contact-new-construction"> 318 Contact New Construction 319 </a> 320 â Contact New Construction on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 321 </li> 322 <li> 323 <a href="/contact-black-label"> 324 Contact Black Label 325 </a> 326 â Contact Black Label on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 327 </li> 328 <li> 329 <a href="/deposit-renovation-bundle"> 330 Deposit Renovation Bundle 331 </a> 332 â Deposit Renovation Bundle on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 333 </li> 334 <li> 335 <a href="/privacy-policy"> 336 Privacy Policy 337 </a> 338 â Privacy Policy on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 339 </li> 340 <li> 341 <a href="/admin"> 342 Admin Dashboard 343 </a> 344 â Admin / Admin Dashboard on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 345 </li> 346 <li> 347 <a href="/admin/boards"> 348 Admin Boards 349 </a> 350 â Admin / Admin Boards on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 351 </li> 352 <li> 353 <a href="/admin/projects"> 354 Admin Projects 355 </a> 356 â Admin / Admin Projects on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 357 </li> 358 <li> 359 <a href="/admin/sbn"> 360 Admin SBN 361 </a> 362 â Admin / Admin SBN on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 363 </li> 364 <li> 365 <a href="/admin/insights"> 366 Admin Insights 367 </a> 368 â Admin / Admin Insights on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 369 </li> 370 <li> 371 <a href="/admin/resources"> 372 Admin Resources 373 </a> 374 â Admin / Admin Resources on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 375 </li> 376 <li> 377 <a href="/admin/chatbot"> 378 Admin Chatbot 379 </a> 380 â Admin / Admin Chatbot on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 381 </li> 382 <li> 383 <a href="/admin/settings"> 384 Admin Settings 385 </a> 386 â Admin / Admin Settings on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 387 </li> 388 <li> 389 <a href="/admin/appointments"> 390 Admin Appointments 391 </a> 392 â Admin / Admin Appointments on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 393 </li> 394 <li> 395 <a href="/admin/users"> 396 Admin Users 397 </a> 398 â Admin / Admin Users on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 399 </li> 400 <li> 401 <a href="/admin/calendar"> 402 Admin Calendar 403 </a> 404 â Admin / Admin Calendar on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 405 </li> 406 <li> 407 <a href="/admin/marketing"> 408 Admin Marketing 409 </a> 410 â Admin / Admin Marketing on SketchHaus Architects. An all-in-one management platform for ar
410chitecture and design studios to. 411 </li> 412 <li> 413 <a href="/admin/image-optimizer"> 414 Admin Image Optimizer 415 </a> 416 â Admin / Admin Image Optimizer on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 417 </li> 418 <li> 419 <a href="/admin/customers"> 420 Admin Customers 421 </a> 422 â Admin / Admin Customers on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 423 </li> 424 <li> 425 <a href="/client-dashboard"> 426 Client Dashboard 427 </a> 428 â Client Dashboard on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 429 </li> 430 <li> 431 <a href="/builder"> 432 Builder Dashboard 433 </a> 434 â Builder / Builder Dashboard on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 435 </li> 436 <li> 437 <a href="/builder/profile"> 438 Builder Profile 439 </a> 440 â Builder / Builder Profile on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 441 </li> 442 <li> 443 <a href="/profile"> 444 User Profile 445 </a> 446 â User Profile on SketchHaus Architects. An all-in-one management platform for architecture and design studios to. 447 </li> 448 </ul> 449 </nav> 450 </main> 451 </div> 452 </div> 453 </body> 454</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.