CINXE.COM

Picture Hanging and Shelf Installation Services | Handy

<!DOCTYPE html> <html class='no-js' data-request-country='US' dir='ltr' lang='en'> <head> <link rel="shortcut icon" type="image/x-icon" href="https://cache-landingpages.services.handy.com/assets/favicon-465fb4e7d7152f5abb6b2ecf7330aefa8a067f174110dcd80324b56aeedfea59.ico" /> <meta charset='utf-8'> <script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"fee8387e35","applicationID":"153245944","transactionName":"IQwNRkoKXlVcSh5KAwQKDVdKHB1JWF9US0kRCwxF","queueTime":0,"applicationTime":266,"agent":""}</script> <script>(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"fee8387e35",applicationID:"153245944"};;/*! For license information please see nr-loader-rum-1.274.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>g,gD:()=>h,xN:()=>p});var n=r(993);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,harvestTimeSeconds:10,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},feature_flags:[],generic_events:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},harvest:{tooManyRequestsDelay:60},jserrors:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},logging:{enabled:!0,harvestTimeSeconds:10,autoStart:!0,level:n.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,harvestTimeSeconds:60,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},soft_navigations:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},spa:{enabled:!0,harvestTimeSeconds:10,autoStart:!0},ssl:void 0,user_actions:{enabled:!0}}},l={},f="All configuration objects require an agent identifier!";function g(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function p(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function h(e,t){if(!e)throw new Error(f);var r=g(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.274.0",i="PROD",o="CDN"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>d,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,d=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),g(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return g(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),g(e,t)})))}function g(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=g(n),c=h(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=m()[s[e]];p&&p.push([f,e,r,a]);return a},get:v,listeners:h,context:g,buffer:function(e,t){const r=m();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!m()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=h(e).concat(t)}function h(e){return n[e]||[]}function v(t){return d[t]=d[t]||e(f,t)}function m(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},3434:(e,t,r)=>{"use strict";r.d(t,{YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(2614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7603:(e,t,r)=>{"use strict";r.d(t,{j:()=>P});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),g=r(384),p=r(6344);const h=["setErrorHandler","finished","addToTrace","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],v=["setErrorHandler","finished","addToTrace","addRelease"];var m=r(1863),b=r(2614),y=r(993);var w=r(2646),A=r(3434);function R(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,A.YM)(i),a=new w.y(s.P);return a.level=n.level,a.customAttributes=n.customAttributes,o.inPlace(t,[r],"wrap-logger-",a),i}function E(){const e=(0,g.pV)();h.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function _(e,t,g=!1){t||(0,c.Ak)(e,"api");const h={};var w=s.ee.get(e),A=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var E="api-",_=E+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),j(E,n,!0,o||null===r?"session":void 0)(t,r)}function T(){}h.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,m.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},h.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),R(w,e,t,{customAttributes:r,level:i})},v.forEach((e=>{h[e]=j(E,e,!0,"api")})),h.addPageAction=j(E,"addPageAction",!0,n.K7.genericEvents),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(E,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},h.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},h.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},h.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},h[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},h[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},h.interaction=function(e){return(new T).get("object"==typeof e?e:{})};const S=T.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),g||(0,a.p)(_+"tracer",[(0,m.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,m.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,m.t)()],r)}}}};function j(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[(0,m.t)(),...arguments],r?null:this,i,w),r?void 0:this}}function k(){r.e(296).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{S[e]=j(_,e,void 0,g?n.K7.softNav:n.K7.spa)})),h.setCurrentRouteName=g?j(_,"routeName",void 0,n.K7.softNav):j(E,"routeName",!0,n.K7.spa),h.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,m.t)(),!1,r,!!x[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>k()),!0):k(),h}var N=r(9417),T=r(8122);const S={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},j={};var k=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let O=!1;function P(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:l={},exposed:f=!0}=t;l.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,N.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");j[e]=(0,T.a)(t,S);const r=(0,g.nY)(e);r&&(r.loader_config=j[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},d.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const h=(0,N.D0)(e.agentIdentifier),v=[c.beacon,c.errorBeacon];O||(h.proxy.assets&&(I(h.proxy.assets),v.push(h.proxy.assets)),h.proxy.beacon&&v.push(h.proxy.beacon),E(),(0,g.US)("activatedFeatures",k.B),e.runSoftNavOverSpa&&=!0===h.soft_navigations.enabled&&h.feature_flags.includes("soft_nav")),l.denyList=[...h.ajax.deny_list||[],...h.ajax.block_internal?v:[]],l.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,l),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=_(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),O=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>o,K7:()=>n,P3:()=>i});const n={ajax:"ajax",genericEvents:"generic_events",jserrors:"jserrors",logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.spa]:5,[n.ajax]:6,[n.sessionTrace]:7,[n.softNav]:8,[n.sessionReplay]:9,[n.logging]:10,[n.genericEvents]:11},o={[n.pageViewTiming]:"events",[n.ajax]:"events",[n.spa]:"events",[n.softNav]:"events",[n.metrics]:"jserrors",[n.jserrors]:"jserrors",[n.sessionTrace]:"browser/blobs",[n.sessionReplay]:"browser/blobs",[n.logging]:"browser/logs",[n.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>"nr-rum-1.274.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.274.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={296:"sha512-gkYkZDAwQ9PwaDXs2YM+rNIdRej1Ac1mupWobRJ8eahQcXz6/sunGZCKklrzi5kWxhOGRZr2tn0rEKuLTXzfAA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={840:0,374:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.274.0.PROD"]=self["webpackChunk:NRBA-1.274.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(e=(0,r.LA)(16)){this.agentIdentifier=e}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(7603);var l=i(1687),f=i(4234),g=i(5289),p=i(6154),h=i(384);const v=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function m(e){return!!(0,h.dV)().o.MO&&v(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(6389);class y extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if(v(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,3861));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(t.sharedAggregator)await t.sharedAggregator;else{t.sharedAggregator=i.e(296).then(i.bind(i,9337));const{EventAggregator:e}=await t.sharedAggregator;t.sharedAggregator=new e}if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return m(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(6630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(9908),E=i(2843),x=i(3878),_=i(782),N=i(1863);class T extends y{static featureName=_.T;constructor(e,t=!0){super(e,_.T,t),p.RI&&((0,E.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,_.T,this.ee)),!0),(0,x.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,_.T,this.ee))),this.importAggregator(e))}}var S=i(3969);class j extends y{static featureName=S.TZ;constructor(e,t=!0){super(e,S.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t,r){super(r),p.gm?(this.features={},(0,h.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,h.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[A,T,j],loaderType:"lite"})})()})();</script> <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'> <title>Picture Hanging and Shelf Installation Services | Handy</title> <script type="text/javascript"> window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t("ee"),a=t(15),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,n,e){r(e.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,n){return t}).join(", ")))},{}],2:[function(t,n,e){function r(t,n,e,r,s){try{p?p-=1:o(s||new UncaughtException(t,n,e),!0)}catch(f){try{i("ierr",[f,c.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,n,e){this.message=t||"Uncaught error with no additional information",this.sourceURL=n,this.line=e}function o(t,n){var e=n?null:c.now();i("err",[t,e])}var i=t("handle"),a=t(16),s=t("ee"),c=t("loader"),f=t("gos"),u=window.onerror,d=!1,l="nr@seenError",p=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(8),t(7),"addEventListener"in window&&t(5),c.xhrWrappable&&t(9),d=!0)}s.on("fn-start",function(t,n,e){d&&(p+=1)}),s.on("fn-err",function(t,n,e){d&&!e[l]&&(f(e,l,function(){return!0}),this.thrown=!0,o(e))}),s.on("fn-end",function(){d&&!this.thrown&&p>0&&(p-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(8),s=t(7),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",y="pushState",g=t("loader");g.features.stn=!0,t(6);var b=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e instanceof b&&(this.bstStart=g.now())}),o.on(w,function(t,n){var e=t[0];e instanceof b&&i("bst",[e,n,this.bstStart,g.now()])}),a.on(m,function(t,n,e){this.bstStart=g.now(),this.bstType=e}),a.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),this.bstType])}),s.on(m,function(){this.bstStart=g.now()}),s.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),"requestAnimationFrame"])}),o.on(y+p,function(t){this.time=g.now(),this.startPath=location.pathname+location.hash}),o.on(y+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performance[f](u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["c"+c]()},!1):window.performance[f]("webkit"+u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["webkitC"+c]()},!1)),document[f]("scroll",r,{passive:!0}),document[f]("keypress",r,!1),document[f]("click",r,!1)}},{}],5:[function(t,n,e){function r(t){for(var n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var a=t("ee").get("events"),s=t(18)(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var e=t[1],r=c(e,"nr@wrapped",function(){function t(){if("function"==typeof e.handleEvent)return e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof e];return n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){var r=t("ee").get("history"),o=t(18)(r);n.exports=r,o.inPlace(window.history,["pushState","replaceState"],"-")},{}],7:[function(t,n,e){var r=t("ee").get("raf"),o=t(18)(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],8:[function(t,n,e){function r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var i=t("ee").get("timer"),a=t(18)(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],9:[function(t,n,e){function r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,y,"fn-",s)}function i(t){g.push(t),h&&(x?x.then(a):w?w(a):(E=-E,O.data=E))}function a(){for(var t=0;t<g.length;t++)r([],g[t]);g.length&&(g=[])}function s(t,n){return n}function c(t,n){for(var e in t)n[e]=t[e];return n}t(5);var f=t("ee"),u=f.get("xhr"),d=t(18)(u),l=NREUM.o,p=l.XHR,h=l.MO,m=l.PR,w=l.SI,v="readystatechange",y=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],g=[];n.exports=u;var b=window.XMLHttpRequest=function(t){var n=new p(t);try{u.emit("new-xhr",[n],n),n.addEventListener(v,o,!1)}catch(e){try{u.emit("internal-error",[e])}catch(r){}}return n};if(c(p,b),b.prototype=p.prototype,d.inPlace(b.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,n){r(t,n),i(n)}),u.on("open-xhr-start",r),h){var x=m&&m.resolve();if(!w&&!m){var E=1,O=document.createTextNode(E);new h(a).observe(O,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===v||a()})},{}],10:[function(t,n,e){function r(t){var n=this.params,e=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<d;r++)t.removeEventListener(u[r],this.listener,!1);if(!n.aborted){if(e.duration=a.now()-this.startTime,4===t.readyState){n.status=t.status;var i=o(t,this.lastSize);if(i&&(e.rxSize=i),this.sameOrigin){var c=t.getResponseHeader("X-NewRelic-App-Data");c&&(n.cat=c.split(", ").pop())}}else n.status=0;e.cbTime=this.cbTime,f.emit("xhr-done",[t],t),s("xhr",[n,e,this.startTime])}}}function o(t,n){var e=t.responseType;if("json"===e&&null!==n)return n;var r="arraybuffer"===e||"blob"===e||"json"===e?t.response:t.responseText;return h(r)}function i(t,n){var e=c(n),r=t.params;r.host=e.hostname+":"+e.port,r.pathname=e.pathname,t.sameOrigin=e.sameOrigin}var a=t("loader");if(a.xhrWrappable){var s=t("handle"),c=t(11),f=t("ee"),u=["load","error","abort","timeout"],d=u.length,l=t("id"),p=t(14),h=t(13),m=window.XMLHttpRequest;a.features.xhr=!0,t(9),f.on("new-xhr",function(t){var n=this;n.totalCbs=0,n.called=0,n.cbTime=0,n.end=r,n.ended=!1,n.xhrGuids={},n.lastSize=null,p&&(p>34||p<10)||window.opera||t.addEventListener("progress",function(t){n.lastSize=t.loaded},!1)}),f.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),f.on("open-xhr-end",function(t,n){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),f.on("send-xhr-start",function(t,n){var e=this.metrics,r=t[0],o=this;if(e&&r){var i=h(r);i&&(e.txSize=i)}this.startTime=a.now(),this.listener=function(t){try{"abort"===t.type&&(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof n.onload))&&o.end(n)}catch(e){try{f.emit("internal-error",[e])}catch(r){}}};for(var s=0;s<d;s++)n.addEventListener(u[s],this.listener,!1)}),f.on("xhr-cb-time",function(t,n,e){this.cbTime+=t,n?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof e.onload||this.end(e)}),f.on("xhr-load-added",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&!this.xhrGuids[e]&&(this.xhrGuids[e]=!0,this.totalCbs+=1)}),f.on("xhr-load-removed",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&this.xhrGuids[e]&&(delete this.xhrGuids[e],this.totalCbs-=1)}),f.on("addEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-added",[t[1],t[2]],n)}),f.on("removeEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-removed",[t[1],t[2]],n)}),f.on("fn-start",function(t,n,e){n instanceof m&&("onload"===e&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),f.on("fn-end",function(t,n){this.xhrCbStart&&f.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,n],n)})}},{}],11:[function(t,n,e){n.exports=function(t){var n=document.createElement("a"),e=window.location,r={};n.href=t,r.port=n.port;var o=n.href.split("://");!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=n.hostname||e.hostname,r.pathname=n.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname);var i=!n.protocol||":"===n.protocol||n.protocol===e.protocol,a=n.hostname===document.domain&&n.port===e.port;return r.sameOrigin=i&&(!n.hostname||a),r}},{}],12:[function(t,n,e){function r(){}function o(t,n,e){return function(){return i(t,[f.now()].concat(s(arguments)),n?null:this,e),n?void 0:this}}var i=t("handle"),a=t(15),s=t(16),c=t("ee").get("tracer"),f=t("loader"),u=NREUM;"undefined"==typeof window.newrelic&&(newrelic=u);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(d,function(t,n){u[n]=o(l+n,!0,"api")}),u.addPageAction=o(l+"addPageAction",!0),u.setCurrentRouteName=o(l+"routeName",!0),n.exports=newrelic,u.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,n){var e={},r=this,o="function"==typeof n;return i(p+"tracer",[f.now(),t,e],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],e),o)try{return n.apply(this,arguments)}catch(t){throw c.emit("fn-err",[arguments,this,t],e),t}finally{c.emit("fn-end",[f.now()],e)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,n){h[n]=o(p+n)}),newrelic.noticeError=function(t){"string"==typeof t&&(t=new Error(t)),i("err",[t,f.now()])}},{}],13:[function(t,n,e){n.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(n){return}}}},{}],14:[function(t,n,e){var r=0,o=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);o&&(r=+o[1]),n.exports=r},{}],15:[function(t,n,e){function r(t,n){var e=[],r="",i=0;for(r in t)o.call(t,r)&&(e[i]=n(r,t[r]),i+=1);return e}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],16:[function(t,n,e){function r(t,n,e){n||(n=0),"undefined"==typeof e&&(e=t?t.length:0);for(var r=-1,o=e-n||0,i=Array(o<0?0:o);++r<o;)i[r]=t[n+r];return i}n.exports=r},{}],17:[function(t,n,e){n.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],18:[function(t,n,e){function r(t){return!(t&&t instanceof Function&&t.apply&&!t[a])}var o=t("ee"),i=t(16),a="nr@original",s=Object.prototype.hasOwnProperty,c=!1;n.exports=function(t,n){function e(t,n,e,o){function nrWrapper(){var r,a,s,c;try{a=this,r=i(arguments),s="function"==typeof e?e(r,a):e||{}}catch(f){l([f,"",[r,a,o],s])}u(n+"start",[r,a,o],s);try{return c=t.apply(a,r)}catch(d){throw u(n+"err",[r,a,d],s),d}finally{u(n+"end",[r,a,c],s)}}return r(t)?t:(n||(n=""),nrWrapper[a]=t,d(t,nrWrapper),nrWrapper)}function f(t,n,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c<n.length;c++)s=n[c],a=t[s],r(a)||(t[s]=e(a,f?s+o:o,i,s))}function u(e,r,o){if(!c||n){var i=c;c=!0;try{t.emit(e,r,o,n)}catch(a){l([a,e,r,o])}c=i}}function d(t,n){if(Object.defineProperty&&Object.keys)try{var e=Object.keys(t);return e.forEach(function(e){Object.defineProperty(n,e,{get:function(){return t[e]},set:function(n){return t[e]=n,n}})}),n}catch(r){l([r])}for(var o in t)s.call(t,o)&&(n[o]=t[o]);return n}function l(n){try{t.emit("internal-error",n)}catch(e){}}return t||(t=o),e.inPlace=f,e.flag=a,e}},{}],ee:[function(t,n,e){function r(){}function o(t){function n(t){return t&&t instanceof r?t:t?c(t,s,i):i()}function e(e,r,o,i){if(!l.aborted||i){t&&t(e,r,o);for(var a=n(o),s=h(e),c=s.length,f=0;f<c;f++)s[f].apply(a,r);var d=u[y[e]];return d&&d.push([g,e,r,a]),a}}function p(t,n){v[t]=h(t).concat(n)}function h(t){return v[t]||[]}function m(t){return d[t]=d[t]||o(e)}function w(t,n){f(t,function(t,e){n=n||"feature",y[e]=n,n in u||(u[n]=[])})}var v={},y={},g={on:p,emit:e,get:m,listeners:h,context:n,buffer:w,abort:a,aborted:!1};return g}function i(){return new r}function a(){(u.api||u.feature)&&(l.aborted=!0,u=l.backlog={})}var s="nr@context",c=t("gos"),f=t(15),u={},d={},l=n.exports=o();l.backlog=u},{}],gos:[function(t,n,e){function r(t,n,e){if(o.call(t,n))return t[n];var r=e();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,n,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[n]=r,r}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],handle:[function(t,n,e){function r(t,n,e,r){o.buffer([t],r),o.emit(t,n,e)}var o=t("ee").get("handle");n.exports=r,r.ee=o},{}],id:[function(t,n,e){function r(t){var n=typeof t;return!t||"object"!==n&&"function"!==n?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");n.exports=r},{}],loader:[function(t,n,e){function r(){if(!x++){var t=b.info=NREUM.info,n=l.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&n))return u.abort();f(y,function(n,e){t[n]||(t[n]=e)}),c("mark",["onload",a()+b.offset],null,"api");var e=l.createElement("script");e.src="https://"+t.agent,n.parentNode.insertBefore(e,n)}}function o(){"complete"===l.readyState&&i()}function i(){c("mark",["domContent",a()+b.offset],null,"api")}function a(){return E.exists&&performance.now?Math.round(performance.now()):(s=Math.max((new Date).getTime(),s))-b.offset}var s=(new Date).getTime(),c=t("handle"),f=t(15),u=t("ee"),d=window,l=d.document,p="addEventListener",h="attachEvent",m=d.XMLHttpRequest,w=m&&m.prototype;NREUM.o={ST:setTimeout,SI:d.setImmediate,CT:clearTimeout,XHR:m,REQ:d.Request,EV:d.Event,PR:d.Promise,MO:d.MutationObserver};var v=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1071.min.js"},g=m&&w&&w[p]&&!/CriOS/.test(navigator.userAgent),b=n.exports={offset:s,now:a,origin:v,features:{},xhrWrappable:g};t(12),l[p]?(l[p]("DOMContentLoaded",i,!1),d[p]("load",r,!1)):(l[h]("onreadystatechange",o),d[h]("onload",r)),c("mark",["firstbyte",s],null,"api");var x=0,E=t(17)},{}]},{},["loader",2,10,4,3]); ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"fee8387e35",applicationID:"133284765",sa:1} </script> <meta name="description" content="Hanging Pictures and Installing Shelves Services. Find the best picture hanging and shelf installation professionals. Handy connects you with professional shelf installers and picture hangers. Compare, read reviews and book picture hanging services online. " /> <meta name="author" content="Handy for Pros is Now Angi Services" /> <meta name="og:site_name" content="Handy for Pros is Now Angi Services" /> <link href="https://www.handy.com/services/hanging-pictures-shelves" rel="canonical" /> <link rel="stylesheet" media="screen" href="https://cache-landingpages.services.handy.com/assets/application-45fdc41962174f3be9ed4c15ee4b7f762e625aa9907455126ec08b7588cc0bbc.css" /> <!-- asynchronous google analytics snippet --> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-31442860-1', 'auto'); ga('send', 'pageview'); </script> <!-- End Google Analytics --> <script class="handy-analytics" id="handy-analytics--properties"> window.Handy = window.Handy || {}; (function setupHandyAnalytics(){ window.Handy.analytics = window.Handy.analytics || {"utm":{"handy_utm_source":null,"handy_utm_campaign":null,"handy_utm_coupon":null,"handy_utm_term":null,"handy_utm_medium":null,"handy_utm_content":null},"env":{"scully_fingerprint":["f61e014e-5439-4aec-b1d2-39ac89120a5e","45877b80-bef0-4387-905f-8bbebc0bd9ce","936de6b5-bd9b-4c89-ad4d-c5d48742b09b","f02f2481-da6a-4612-b5cc-f3cd24c3d273","80179280-47c2-44b9-9b61-e76d576affaa","8262a1e2-4111-4016-97f6-b3379cf61f43","f76bb87a-24d8-4f46-84fe-e3f2cd131a26","ad30d738-4fee-4801-9852-8f37c732e2db","148a89d5-a2dd-4fde-ae5b-af77c162b066","9d39ed29-6db1-4512-8367-892b9167c51c","22f1e458-b0a0-459d-bed5-5c5fe7fa2c7e","9085bc5d-35ff-40a9-a7a8-37ff61c626d3","4a005674-3d4f-409a-88a9-d413af06e5fd","8a27e092-a629-4bc8-8c5a-5a74cd8041d0","022ae9ae-f5c5-40ef-bb5c-3dccfd6930ab","0b12fa2e-0a04-47b9-9150-edf9162bb68f","a48b4f5d-5bc2-473b-af88-25c2756d1008","20def8ec-aece-496e-80bc-8b608943c526","32faf179-c8fc-488f-a8d1-ff864e3be35e","72128813-e90f-45bf-8610-42980db57e90","0982159d-bc11-4173-b706-3123595ec604","b108499f-2e65-44e0-bb1d-fb8adfd675ef","30ecbfb0-ac32-4782-89c9-7aa751b9c540","3ef14d53-b7e4-408b-bb82-11106f2e12f4","78476689-4e12-4656-b509-f50e7c7190ee","34264c8c-942e-4051-b79f-bb3b67a4b9e9","8b1b9adb-5c3e-4fb1-a3d3-04a5db56a0d0","f39efb97-6942-4f29-ab22-19872ff8138c","7eb84b52-de6a-420f-ab00-739b72dcc716","281f397f-066f-4cca-8161-184db8a399e2","aee2200d-50e7-4cdb-b707-47bfea3e57fc","66d4b66b-ca20-4259-9fed-e0cd6856997c","65cf9460-893b-4155-bf93-a20ebb96167f","b5bbd335-1824-4e09-9810-2564222500c9","0d8c92ef-07bb-4bdb-9e78-698da974ba61","2db075b9-0c02-4e1e-9e81-2afaeeb4156b","bf779d91-45fa-44ed-98d7-05802e5c24b3","e975b5e5-c2d3-4991-a9d1-a399b27b1b37","1dcebcb7-550f-4c69-873e-57fc6734b2d3","0644d3ac-1eec-4513-9d16-7c41a61c41cf","37dffef4-caf2-47ec-a0b7-effc326b18aa","f7166369-537f-4cc5-8076-9fc369d1f33a"],"browser_uid":"MJYhPpmzoi2Tn2S/CcNAZBbPQe0QgTpHBENvVGULd5vLCo8s6MmRArSWWbb/Gq0J8iPYfoHNmuRhPeEGrS7ikw==","from_native":false,"native_session_uid":null},"user":{"impersonating":false,"brand":"handy","new":false},"booking":{},"quote_request":{},"pageInfo":{"bookingId":null,"conversionType":null,"serviceName":null,"serviceCategory":null,"serviceId":null,"recurringFrequency":null,"zipcode":null,"dateOfBooking":null,"timeOfBooking":null,"dateAdded":null,"hourlyRate":null,"bookingHrs":null,"discount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":0,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false}}; }()); window.dataLayer ||= []; window.dataLayer.push(window.Handy.analytics); </script> <script type="text/javascript">(function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments, 0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.unset people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" "); for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]); mixpanel.init("285f70ac22992c5c5a2a0639a095aa59");</script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-31442860-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA‌-31442860-1', { 'optimize_id': 'GTM-MDBGCQC'}); </script> <!-- Google Tag Manager --> <script class="handy-analytics" id="gtm">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5JWM6VD');</script> <!-- End Google Tag Manager --> <link href='https://www.handy.com/services/hanging-pictures-shelves?page=2' rel='next'> <script type="application/ld+json"> {"@context":"http://schema.org","@type":"LocalBusiness","parentOrganization":{"@type":"Organization","name":"Handy"},"name":"Handy","image":"https://cache-landingpages.services.handy.com/assets/handy-pros-592276a0b34bc70437438bd93f150b9f9677f128f118bf2a901e0181191f42d4.png","openingHours":"07:00-23:00","aggregateRating":{"@type":"AggregateRating","ratingValue":4.6,"reviewCount":2326,"bestRating":5,"worstRating":0}} </script> <script> window.mixpanelMetadata = {"product_type":"consumer","referer":null,"browser_uid":"MJYhPpmzoi2Tn2S/CcNAZBbPQe0QgTpHBENvVGULd5vLCo8s6MmRArSWWbb/Gq0J8iPYfoHNmuRhPeEGrS7ikw==","device":"web","session_id":"6974bcd8c890c1a1","session_uid":"MJYhPpmzoi2Tn2S/CcNAZBbPQe0QgTpHBENvVGULd5vLCo8s6MmRArSWWbb/Gq0J8iPYfoHNmuRhPeEGrS7ikw==_6974bcd8c890c1a1","session_event_count":0,"logged_in":false}; var onLoadMixpanelData = null; // in case onLoadMixpanelData is not set if (onLoadMixpanelData != null) { var eventName = onLoadMixpanelData["event"]; delete onLoadMixpanelData["event"]; var allProperties = Object.assign( {}, onLoadMixpanelData, window.mixpanelMetadata ); //merge properties together mixpanel.track(eventName, allProperties); } </script> </head> <body class='template-service' id='hanging-pictures-shelves-page'> <!-- Google Tag Manager --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5JWM6VD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class='off-canvas position-right' data-content-scroll='false' data-off-canvas='' id='off-canvas-right-push'> <ul class='mobile-nav-menu menu vertical drilldown' data-back-button='&lt;li class=&#39;js-drilldown-back&#39;&gt;&lt;a class=&#39;back-title&#39;&gt;&lt;/a&gt;&lt;/li&gt;' data-drilldown=''> <br> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='login' data-mixpanel-trigger='click' href='/login'> Log In </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'> Help </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply'> Become a Professional </a> </li> <div class='nav__line'></div> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> All Services </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='#'> Services by Category </a> <ul class='menu vertical nested'> <li> <a href='#'> Cleaning </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_move_out_in_cleaning' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_office_cleaning' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deep_cleaning' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <a href='#'> Installation </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_mount_tv' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_hanging_pictures_shelves' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_light_fixtures' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_ceiling_fan' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <a href='#'> Handyman </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_faucets_replacement' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_toilet_trouble' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_outlets' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <a href='#'> Outdoor Projects </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_lawn_care_maintenance_service' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_gutter_installation' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_removal' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_trimming' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_fence_installation' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_and_porch_repair' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_repair_installation' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_exterior_painting' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_power_washing' data-mixpanel-trigger='click' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <a href='#'> Home Renovations </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_bathroom_remodeling' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_kitchen_remodeling' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_basement_remodeling' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_major_home_renovations' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_installing_wood_flooring' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_repair_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_6_windows_installation' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_window_treatments' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </li> <div class='nav__line'></div> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> <li class='nav-link nav-menu__control'> <a href='/about'> About </a> <ul class='menu vertical'> <li class='nav-link'> <a href='/handy-guarantee'> The Handy Happiness Guarantee </a> </li> <li class='nav-link'> <a href='/press'> Press </a> </li> <li class='nav-link'> <a href='/retail'> Retail Partnerships </a> </li> <li class='nav-link'> <a href='http://blog.handy.com/'> Blog </a> </li> <li class='nav-link'> <a href='/careers'> Careers </a> </li> <li class='nav-link'> <a href='/help'> Contact Us </a> </li> <div class='nav__line'></div> <li class='nav-link'> <a href='/privacy'> Privacy </a> </li> <li class='nav-link'> <a href='/privacy#section5a'> CA Pre-Collection Notice </a> </li> <li class='nav-link'> <a href='/do_not_sell'> Do Not Sell or Share My Personal Information </a> </li> <li class='nav-link'> <a href='/cookies'> Cookies </a> </li> <li class='nav-link'> <a href='/terms'> Terms </a> </li> <li> <a> <form html="{:class=&gt;&quot;nav__select&quot;}" action="/country_select" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /> <select name="request_country" id="request_country" onchange="this.form.submit()"><option selected="selected" value="US">United States</option> <option value="CA">Canada</option> <option value="GB">United Kingdom</option></select> </form> </a> </li> </ul> </li> </ul> </div> <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> <div class='off-canvas-content' data-off-canvas-content=''> <script src="https://cache-landingpages.services.handy.com/assets/application-97e37d2e044e4420f7ad4a4ea07c375282d14a9487e88cc3057f035a520733c0.js"></script> <script src="https://cache-landingpages.services.handy.com/assets/accessibility-cca6ca545c47db43401f96309237acaf72f7cb060e90d5adc5b893a38c66cd4c.js"></script> <div id='page_container'> <header id='header' role='banner'> <section id='header'> <div class='grid-container'> <div class='navigation'> <nav class='grid-x align-middle navigation--collapsed title-bar' data-hide-for='large' data-responsive-toggle='navigation--expanded'> <div class='navigation__logo left'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='home' data-mixpanel-trigger='click' href='/home'> <img src="https://cache-landingpages.services.handy.com/assets/pages/region/handy_logo-e5d858d96595ec001c5268a2d7a0f91800da2c7c2f963a5307154917289c347a.svg" alt="Handy logo" /> </a> </div> <button class='menu-icon right' data-toggle='off-canvas-right-push' type='button'></button> </nav> <nav class='align-middle stacked-for-medium navigation--expanded top-bar' id='navigation--expanded'> <div class='navigation__logo show-for-large'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='home' data-mixpanel-trigger='click' href='/home'> <img src="https://cache-landingpages.services.handy.com/assets/pages/region/handy_logo-e5d858d96595ec001c5268a2d7a0f91800da2c7c2f963a5307154917289c347a.svg" alt="Handy logo" /> </a> </div> <div class='navigation__left top-bar-left'> <ul class='menu dropdown all-services-menu' data-dropdown-menu='' data-options='closingTime:0;'> <li class='all-services mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_hover' data-mixpanel-trigger='hover-once' href='/services'> All Services <i class='fal fa-angle-down fa-shown'></i> <i class='fal fa-angle-up fa-hidden'></i> </a> </li> </ul> <div class='grid-container services-panel'> <div class='grid-x'> <div class='cell'> <ul class='four-columns services-columns'> <li> <span> Cleaning </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_move_out_in_cleaning' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_office_cleaning' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deep_cleaning' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <span> Installation </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_mount_tv' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_hanging_pictures_shelves' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_light_fixtures' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_ceiling_fan' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <span> Handyman </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_faucets_replacement' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_toilet_trouble' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_outlets' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <span> Outdoor Projects </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_lawn_care_maintenance_service' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_gutter_installation' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_removal' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_trimming' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_fence_installation' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_and_porch_repair' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_repair_installation' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_exterior_painting' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_power_washing' data-mixpanel-trigger='click' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <span> Home Renovations <span class='new-category'>NEW!</span> </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_bathroom_remodeling' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_kitchen_remodeling' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_basement_remodeling' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_major_home_renovations' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_installing_wood_flooring' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_repair_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_6_windows_installation' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_window_treatments' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </div> </div> <div class='grid-x align-center'> <div class='cell all-services__button'> <a class='button radius mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> See All Services </a> </div> </div> </div> <script> $('.services-panel').hover( function() { $('.all-services-menu').addClass('chevron-hack'); }, function() { $('.all-services-menu').removeClass('chevron-hack'); } ); </script> <ul class='menu has-submenu dropdown' data-dropdown-menu='' data-options='closingTime:0;'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> </ul> </div> <div class='navigation__right top-bar-right'> <ul class='menu dropdown' data-dropdown-menu='' data-options='closingTime:0;'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply'> Become a Pro </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'> Help </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='login' data-mixpanel-trigger='click' href='/login'> Log In </a> </li> </ul> </div> </nav> </div> </div> </section> </header> <main id='page' role='main'> <section class='mixpanel' data-is-cms-page='true' data-mixpanel-event-context='booking_funnel' data-mixpanel-event='zip_shown' data-mixpanel-service-name='hanging_pictures_shelves' data-mixpanel-trigger='shown' id='service-image'> <div class='grid-x service-image'> <div class='cell service-image__image' data-interchange='[, small], [https://cache-landingpages.services.handy.com/assets/services/large_hanging_pictures_shelves-8b5f521101255e0937a73395b43b3c076c1f03de9601c9e11904efa049a24986.jpg, medium]'></div> </div> </section> <section id='head'> <div class='grid-container'> <div class='grid-x align-center head'> <div class='grid-x head'> <div class='cell small-12 medium-7'> <div class='cell head__title show-for-medium'> <h1><p>Hanging Pictures and Installing Shelves</p></h1> </div> <div class='cell grid-x head__rating show-for-medium'> <div class='cell small-6 medium-shrink stars'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 60%'></i> </i> </div> </div> </div> <div class='cell small-6 medium-auto reviews'> <a data-smooth-scroll='' href='#customer-reviews'> 2,326 Reviews </a> </div> </div> <div class='cell head__description'> <p>If you&rsquo;re looking for the best professional picture hangers in your area, look no further than Handy. The picture hanging and shelf installation professionals on the Handy platform offer expert wall hanging services for those who need that critical eye. From ensuring that your picture frames are secure and level to installing load-bearing shelves, we'll match you with a picture hanging service professional that ticks all the boxes. Plus, your experienced professional is been rated and reviewed by past customers, so you&rsquo;ll know you&rsquo;re in good hands.</p> </div> <div class='cell head__capabilities'> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Vetted and&nbsp;</p><a class='media-card__link' href='/trust-and-safety'>screened professionals</a>. </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Friendly 24/7 customer service.</p> </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Backed by the&nbsp;</p><a class='media-card__link' href='/handy-guarantee'>Handy Happiness Guarantee</a>. </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Affordable, upfront pricing.</p> </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>No time windows, book when you want.</p> </div> </div> </div> </div> <div class='cell small-12 medium-offset-1 medium-4'> <div class='cell grid-x'> <div data-react-class="QuotesFormContainer" data-react-props="{&quot;service&quot;:{&quot;id&quot;:8,&quot;machine_name&quot;:&quot;hanging_pictures_shelves&quot;,&quot;name&quot;:&quot;Hanging Items (Mirrors, TV, Art or Shelves)&quot;,&quot;short_display_name&quot;:&quot;Hanging Items&quot;,&quot;description&quot;:&quot;Our professional handymen are experts at hanging all sorts of wall decor. From pictures to mirrors and even shelves, we have you covered. Professionals always come prepared with the proper tools and supplies to get your job done right.&quot;,&quot;form&quot;:{&quot;min_base_hours&quot;:2.0,&quot;max_base_hours&quot;:10.0,&quot;need_comment_box&quot;:true,&quot;questions&quot;:[{&quot;text&quot;:&quot;Will a ladder be required?&quot;,&quot;options&quot;:[[&quot;No&quot;,0],[&quot;Yes - 6 ft (1.8 m)&quot;,1],[&quot;Yes - 10 ft (3.0 m)&quot;,2]],&quot;selected&quot;:0,&quot;custom_warning&quot;:&quot;There will be an additional fee.&quot;,&quot;option_params&quot;:[null,{&quot;extra_machine_name&quot;:&quot;ladder_six_feet&quot;},{&quot;extra_machine_name&quot;:&quot;ladder_ten_feet&quot;}],&quot;extra_charge&quot;:[0,50,50],&quot;appears_as&quot;:[null,&quot;Ladder Required: 6 ft&quot;,&quot;Ladder Required: 10 ft&quot;],&quot;id&quot;:&quot;q1&quot;,&quot;warn_on_option&quot;:[&quot;1&quot;,&quot;2&quot;]}],&quot;all_questions&quot;:[{&quot;text&quot;:&quot;Will a ladder be required?&quot;,&quot;options&quot;:[[&quot;No&quot;,0],[&quot;Yes - 6 ft (1.8 m)&quot;,1],[&quot;Yes - 10 ft (3.0 m)&quot;,2]],&quot;selected&quot;:0,&quot;custom_warning&quot;:&quot;There will be an additional fee.&quot;,&quot;option_params&quot;:[null,{&quot;extra_machine_name&quot;:&quot;ladder_six_feet&quot;},{&quot;extra_machine_name&quot;:&quot;ladder_ten_feet&quot;}],&quot;extra_charge&quot;:[0,50,50],&quot;appears_as&quot;:[null,&quot;Ladder Required: 6 ft&quot;,&quot;Ladder Required: 10 ft&quot;],&quot;id&quot;:&quot;q1&quot;,&quot;warn_on_option&quot;:[&quot;1&quot;,&quot;2&quot;]}],&quot;base_hours_values&quot;:{},&quot;service_intro&quot;:&quot;Tell us about the job&quot;,&quot;tab_name&quot;:&quot;Pieces&quot;,&quot;default_hours&quot;:2,&quot;comment_box_placeholder&quot;:&quot;Please describe the job in detail. (optional)&quot;,&quot;comment_box_required&quot;:false,&quot;attributes&quot;:[{&quot;name&quot;:&quot;Small Items&quot;,&quot;default_value&quot;:0,&quot;hours_value&quot;:0.25,&quot;description&quot;:&quot;Pictures, mirrors or shelves smaller than 3 ft by 3 ft (1m by 1m)&quot;},{&quot;name&quot;:&quot;Large Items&quot;,&quot;default_value&quot;:1,&quot;hours_value&quot;:0.5,&quot;description&quot;:&quot;Pictures, mirrors or shelves larger than 3 ft by 3 ft (1m by 1m)&quot;}]},&quot;meta_data&quot;:{&quot;review_count&quot;:2329,&quot;rating&quot;:&quot;4.6&quot;}},&quot;region&quot;:{},&quot;metadata&quot;:{&quot;average_rating&quot;:&quot;4.6&quot;,&quot;review_count&quot;:2326,&quot;pro_count&quot;:481730,&quot;reviews_gtet_four_starts&quot;:35709,&quot;reviews_with_min_rating&quot;:35709},&quot;mixpanel_metadata&quot;:{&quot;product_type&quot;:&quot;consumer&quot;,&quot;referer&quot;:null,&quot;browser_uid&quot;:&quot;MJYhPpmzoi2Tn2S/CcNAZBbPQe0QgTpHBENvVGULd5vLCo8s6MmRArSWWbb/Gq0J8iPYfoHNmuRhPeEGrS7ikw==&quot;,&quot;device&quot;:&quot;web&quot;,&quot;session_id&quot;:&quot;6974bcd8c890c1a1&quot;,&quot;session_uid&quot;:&quot;MJYhPpmzoi2Tn2S/CcNAZBbPQe0QgTpHBENvVGULd5vLCo8s6MmRArSWWbb/Gq0J8iPYfoHNmuRhPeEGrS7ikw==_6974bcd8c890c1a1&quot;,&quot;session_event_count&quot;:0,&quot;logged_in&quot;:false},&quot;authenticity_token&quot;:&quot;c7gyGNSXOCcdtJwP3xMWueWCkOSml7mv1gRMXovgKnv6Fuukbkarm8ArAvCQJjDZ77pPmnOtQGUfdxJsrYHOdw==&quot;,&quot;userIsLoggedIn&quot;:false,&quot;userZipcode&quot;:null,&quot;quotes_form&quot;:{&quot;default_date_start&quot;:&quot;11/23/2024&quot;,&quot;subscription_offer_coupon&quot;:null},&quot;voucher_id&quot;:null,&quot;promotion&quot;:null,&quot;quotes_path&quot;:&quot;/services/quotes&quot;,&quot;ratingStarsHtml&quot;:&quot;\u003cdiv class=&#39;rating-stars&#39;\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39;\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class=&#39;star&#39;\u003e\n\u003ci class=&#39;far fa-star&#39;\u003e\n\u003ci class=&#39;fas fa-star&#39; style=&#39;width: 60%&#39;\u003e\u003c/i\u003e\n\u003c/i\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n&quot;,&quot;reviewCountText&quot;:&quot;2,326 Reviews&quot;,&quot;showReviewCount&quot;:true,&quot;serviceSlug&quot;:&quot;Picture Hanging and Shelf Installation &quot;,&quot;template&quot;:&quot;service&quot;,&quot;mobileFormTitle&quot;:null,&quot;email&quot;:&quot;&quot;,&quot;showPhoneCollection&quot;:true}" class="quote-form-container"></div> </div> </div> </div> </div> </div> </section> <section id='how-it-works'> <div class='grid-container'> <div class='grid-x how-it-works'> <div class='cell small-12 medium-12 text-align-center how-it-works__title'> <h2>How Handy Works</h2> <div class='cell grid-x how-it-works__media-cards-container'> <div class='cell grid-x small-12 large-4 align-center media-card'> <div class='cell media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/pick_time_icon-fc7dab822f3dd585f10fcb5dea47b7040131a1b219c1aa624e19a728e15f7722.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='cell small-10 main-section'> <h3 class='media-card__title'>Pick a Time</h3> <p class='media-card__description'>Select the day and time for your service and get instant, affordable pricing.</p> </div> </div> <div class='cell grid-x small-12 large-4 align-center media-card'> <div class='cell media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/phone_icon-40ab9380da932637856628868c2ab9821a2d2802d3c2cef796b12a8798114724.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='cell small-10 main-section'> <h3 class='media-card__title'>Book instantly</h3> <p class='media-card__description'>We'll confirm your appointment and take care of payment electronically and securely.</p> </div> </div> <div class='cell grid-x small-12 large-4 align-center media-card'> <div class='cell media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/handy_man-abe2faed1401777d51e1f154c2e841e61f6e2d0880fad6462d217cce11c7d387.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='cell small-10 main-section'> <h3 class='media-card__title'>Your pro arrives</h3> <p class='media-card__description'>An experienced, fully-equipped professional will show up on time at your doorstep.</p> </div> </div> </div> </div> </div> </div> </section> <section id='trusted-name'> <div class='grid-container'> <div class='grid-x align-center trusted-name'> <div class='cell text-align-center trusted-name__title'> <h2>The Trusted Name in Picture Hanging and Shelf Installation  Referrals</h2> </div> <div class='cell grid-x grid-margin-x grid-padding-y small-12 trusted-name__capabilities'> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/experienced_icon-060722cd4dafc62554de73ccf5319c33bc4b54c360a1105a36b997c84959b8be.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Experienced</span> </div> <div class='capability__description'> <p>Since Handy was founded in 2012, we have connected thousands of our customers to professional picture hangers. The wall hanging experts on the Handy platform have seen it all and done jobs large and small. With years of experience, they&rsquo;ve been able to create impressive, high-impact wall hanging displays according to the exact specifications of their customers. If the idea of hanging picture frames or installing a shelf leaves you feeling uneasy, the extensive experience of your professional picture hangers should assuage your nerves.</p> </div> </div> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/handyman_icon-a69b8bcb9a19a2305deb331ab16deb9cb80b6c11454ebc22de4daf756d79018a.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Skilled and Capable</span> </div> <div class='capability__description'> <p>If you need to hang shelves or picture frames and you need it done by a particular date, there's nothing worse than booking professional picture hangers who don't turn up when they're supposed to. Book through Handy and you'll be connected with reliable wall hanging service providers who respect your time. Your wall hanging expert will arrive on time and ready to work. And they'll bring all the necessary equipment with them, so there's no need to rush out to the store at the last minute to stock up on expensive tools. Handy will work to connect you with the wall hanging services you need at a time that works for you.&nbsp;</p> </div> </div> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/reliable_icon-24581e4e61b5af5e0b55b8e77056e865c4a039613f7e74dbf907c0ca812e4cfa.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Reliable</span> </div> <div class='capability__description'> <p>When you book professional picture hangers, you want the assurance that they're experienced and capable enough to meet your needs. From installing shelves to hanging picture frames to achieve the greatest visual effect, the wall hanging service providers on the Handy platform are&nbsp;<a style="background-color: #ffffff;" href="https://www.handy.com/trust-and-safety" target="_blank">screened and vetted</a>. You can even see your professional&rsquo;s ratings and reviews from past satisfied customers. Also, wall hanging service providers booked through the Handy platform come with the Handy Happiness Guarantee. In the unlikely event that you&rsquo;re not satisfied, Handy will work hard to make things right.&nbsp;</p> </div> </div> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/flexible_icon-978e3a88f69893389b44aea966dac48058e288a71db083a46e695447fdb42887.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Flexible</span> </div> <div class='capability__description'> <p>Booking professional picture hangers through Handy gives you complete control over when and where they turn up. Whether you need wall hanging services first thing in the morning or in a few weeks' time, Handy will connect you with the right pro for the job. All you need to do is type in your zip code, tell us a little about what you need, and within seconds, you'll be set up with one of the best shelf installation experts in your area. Handy will work to connect you with a professional who will leave your home looking absolutely marvelous.</p> </div> </div> </div> <div class='cell trusted-name__button'> <a class='button radius' data-smooth-scroll='' href='#hanging-pictures-shelves-page'>Get Started</a> </div> </div> </div> </section> <section id='service-description'> <div class='grid-x align-center service-description'> <div class='cell small-10 text-align-center service-description__title'> <h2>The Best Picture Hanging and Shelf Installation  Referral Agency</h2> </div> <div class='cell grid-x section'> <div class='cell small-shrink medium-shrink large-shrink section__image'> <img data-interchange="[https://cache-landingpages.services.handy.com/assets/services/small_hanging_pictures_shelves_1-87e55f93878e582cb7f278c9e8c4f119a79892d32e1bebdfd7ef8035270fc6ce.jpg, small], [https://cache-landingpages.services.handy.com/assets/services/large_hanging_pictures_shelves_1-e0c367580b2f2c5dc4d94f13723d873b39fc2a4b17c17bfac2480805ffa5dbe8.jpg, medium]" src="" /> </div> <div class='cell small-11 large-auto section__description'> <h3>Leave It to the Wall Hanging Experts</h3> <p>While hanging pictures might not seem like a complicated task, it is not one to skimp on. When you receive professional picture hanging referrals through the Handy platform, you're allowing them to put holes in your wall, and we know how scary that can be! Best to leave it to an experienced expert who knows how to get the most impact from your art and secure your picture frames firmly on the wall. The walls of your house or apartment are the first thing you, your family, and your visitors will notice when they enter. Using professional picture hangers booked through Handy ensures that your home or office makes the best first impression, every single time.</p> </div> </div> <div class='cell grid-x section'> <div class='cell small-shrink medium-shrink large-shrink section__image'> <img data-interchange="[https://cache-landingpages.services.handy.com/assets/services/small_hanging_pictures_shelves_2-027d19eb02c5428700ef52ae53f4b9a90c3d64e27ed054b711ee100d291f2e1e.jpg, small], [https://cache-landingpages.services.handy.com/assets/services/large_hanging_pictures_shelves_2-7cadf0e11b52987fd3d45bcf33eb491793dd465d232fe2f5fb10ae14f1a6995b.jpg, medium]" src="" /> </div> <div class='cell small-11 large-auto section__description'> <h3>Shelf Installation is No Joke</h3> <p>There&rsquo;s nothing scarier than knowing that the only thing standing between the fifty pounds of books resting on your floating bookshelf above your bed and a painful midnight surprise collapse is a tiny nail or two. That&rsquo;s why thousands have turned to Handy to connect them with experienced shelf installation professionals. Stop worrying about gravity and start worrying about the color scheme of your book covers. And your pro will bring all the tools they need so work can be as quick and efficient as possible. Use Handy to book professional shelving installation services and make the best use of your time.</p> </div> </div> <div class='cell grid-x section'> <div class='cell small-shrink medium-shrink large-shrink section__image'> <img data-interchange="[https://cache-landingpages.services.handy.com/assets/services/small_hanging_pictures_shelves_3-168d14992b5589e3ae6c180c1a8f5a665bbf557cf8fc5be403158a3c94376a50.jpg, small], [https://cache-landingpages.services.handy.com/assets/services/large_hanging_pictures_shelves_3-7e794fb88a766d9392e6751ef923143259c20998e3896dce637c5ec7c03abc4c.jpg, medium]" src="" /> </div> <div class='cell small-11 large-auto section__description'> <h3>Wall Hanging Services for Everyone</h3> <p>You don't have to be opening an art exhibit or redecorating a grand foyer to book a picture hanging service through Handy. Many Handy customers are regular people who want to make sure that their home decor looks as neat and professional as possible. Or they&rsquo;re simply too strapped for time to be able to do it themselves. You can use Handy to find picture hangers for jobs big and small, for as many pictures or shelves as you need. Just tell us just what you need done and we&rsquo;ll connect you with a hanging service pro with the relevant experience.</p> </div> </div> </div> </section> <section id='faq'> <div class='grid-container'> <div class='grid-x align-center'> <div class='grid-x align-center small-10 faq'> <div class='cell text-align-center faq__title'> <h2>Frequently Asked Questions</h2> </div> <div class='cell grid-x align-middle faq__question'> <div class='cell small-11 question'> <p>Will I need tools or will my&nbsp;hanging professional bring them?</p> </div> <i class='cell icon'></i> </div> <div class='cell small-12 faq__answer'> <p>Professionals always come prepared with the proper tools and supplies to get your job done right. They will not bring frames or shelves -- customer is responsible for providing these. Please make sure you let your professional know any specifics ahead of time.</p> </div> <div class='cell grid-x align-middle faq__question'> <div class='cell small-11 question'> <p>What is the difference between small items and large items in the booking form?</p> </div> <i class='cell icon'></i> </div> <div class='cell small-12 faq__answer'> <p>Small items include pictures, mirrors, or shelves smaller than 3&nbsp;ft x 3 ft. Large items include anything&nbsp;larger than this. Providing an accurate description of&nbsp;your job requirements helps&nbsp;us ensure that&nbsp;your professional books enough time to complete your job on time.</p> </div> <div class='cell grid-x align-middle faq__question'> <div class='cell small-11 question'> <p>When should I expect my professional to get in touch with me?</p> </div> <i class='cell icon'></i> </div> <div class='cell small-12 faq__answer'> <p>After your booking is confirmed, Handy will send you confirmation emails and messages about your booking and professional. You can contact your professional at any time with questions or concerns you might have.</p> </div> <div class='cell grid-x align-middle faq__question'> <div class='cell small-11 question'> <p>I need more help.</p> </div> <i class='cell icon'></i> </div> <div class='cell small-12 faq__answer'> <p>Please see the&nbsp;<a style="background-color: #ffffff;" href="https://www.handy.com/help" target="_blank">Help Center</a>.</p> </div> <div class='cell faq__button'> <a class='button radius' data-smooth-scroll='' href='#hanging-pictures-shelves-page'>Get Started</a> </div> </div> </div> </div> </section> <section id='top-professionals'> <div class='grid-container'> <div class='grid-x align-center top-professionals'> <div class='cell small-12 medium-8 top-professionals__title'> <h2>Meet Some of the Top Picture Hanging and Shelf Installation  Pros on Handy</h2> </div> <div class='cell small-12 medium-8 top-professionals__description'> <p>Download the app to search and book top professionals in your area. Build a pro team so that you always have a great group of go-to professionals for all your household needs.</p> </div> <div class='cell grid-x grid-margin-x grid-margin-y small-12 medium-12 top-professionals__cards-container'> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/526d8e45-4a4c-449c-a6fa-6ca21fc3f83e?ixlib=rb-1.1.0&amp;w=200&amp;h=200&amp;s=37ce4b6f1037e7c5d109c2f4aa1140d8" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'> Stan G. </p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 72%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 140 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> Hello my name is Stan, I’ve been doing home repairs in Boise and the surrounding area for many years. </div> </div> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/59cb2636-1aaf-4813-927f-62beaa2040de?ixlib=rb-1.1.0&amp;w=200&amp;h=200&amp;s=47a19598f8a45d7424a41190564bdadc" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'> Timothy R. </p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 83%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 43 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> Lots of life experience. I can fix almost anything. I&#39;m very hard working and experienced in many construction trades. Really a jack of all master of many. I have an associate degree in applied science and can communicate well. Thanks </div> </div> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/2ad02f05-2667-481a-b521-ebdfbc2bd246?ixlib=rb-1.1.0&amp;w=200&amp;h=200&amp;s=a5404f19202a7e91462000a4cbbcf89a" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'> Dzmitry S. </p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 11 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> Hi! Im Handyman. I am 41 years old . I have many years of experience in this business. I always perform my job well. And my client is always happy with me . Attention: I can perform complex tasks related to low voltages devices! I can: -TV mouting -Home security cameras - repair of sockets, switches. -furniture assembly - replacement of chandeliers, lamps and other </div> </div> </div> </div> </div> </section> <section id='customer-reviews'> <div class='grid-container'> <div class='grid-x customer-reviews'> <div class='cell grid-x small-12 medium-8'> <div class='cell text-center customer-reviews__title'> <h2>Customer Reviews</h2> </div> <div class='cell text-center customer-reviews__counter'> <p>2,326 Reviews for Picture Hanging and Shelf Installation </p> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Christine R.</p> </div> <div class='cell professional__description'> <p>Carlos was amazing with hanging frames for my gallery wall! He was on time and very pleasant to work with! </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Prashant R.</p> </div> <div class='cell professional__description'> <p>He arrived early, did a quality job, was extremely charming and had a good chat about history to boot.</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Alessandra M.</p> </div> <div class='cell professional__description'> <p>Very professional, quick and did a great job. Cleaned up everything. Very impressed. Highly recommend. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Melissa L.</p> </div> <div class='cell professional__description'> <p>Gary was professional but also warm and friendly. I also felt he was trustworthy. I appreciated his friendliness and concern for my satisfaction! Highly recommend. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Aliya L.</p> </div> <div class='cell professional__description'> <p>Mamady was friendly &amp; very efficient - he&#39;s an IKEA furniture whiz. What would have taken us a whole day he did in a flash. Recommend!!!!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Vivica C.</p> </div> <div class='cell professional__description'> <p>William did a quick and detailed job- asked me specifically where I wanted my mirrors hung and didn’t assume anything and very respectful..will definitely hire him again </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Meredith H.</p> </div> <div class='cell professional__description'> <p>Pro did a great job! Brought a small ladder as requested, hd high quality tools, and was able to finish the task as desired.</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Ioannis T.</p> </div> <div class='cell professional__description'> <p>Great guy, very positive and friendly! Most importantly very professional and reliable! So happy with the outcome!!!!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Luiza B.</p> </div> <div class='cell professional__description'> <p>Skilled, patient, friendly guy! After trying handy several times I finally found my pro! Thanks TJ! You are the best! </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>James H.</p> </div> <div class='cell professional__description'> <p>Martin did a great job of hanging my pictures. He had the right equipment and knew how to calculate the measurements. He was punctual and polite. Would definitely recommend him.</p> </div> </div> <div class='cell grid-x align-center'> <div class='cell customer-reviews__pagination'> <nav aria-label='Pagination' class='grid-x' id='pagination'> <div class='cell small-1 pagination-previous'> </div> <ul class='cell pagination text-center'> <li class='current'> <span class='show-for-sr'>You're on page</span> 1 </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='hanging_pictures_shelves' data-mixpanel-trigger='click' href='https://www.handy.com/services/hanging-pictures-shelves?page=2#customer-reviews'>2</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='hanging_pictures_shelves' data-mixpanel-trigger='click' href='https://www.handy.com/services/hanging-pictures-shelves?page=3#customer-reviews'>3</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='hanging_pictures_shelves' data-mixpanel-trigger='click' href='https://www.handy.com/services/hanging-pictures-shelves?page=4#customer-reviews'>4</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='hanging_pictures_shelves' data-mixpanel-trigger='click' href='https://www.handy.com/services/hanging-pictures-shelves?page=5#customer-reviews'>5</a> </li> </ul> <div class='cell small-1 pagination-next'> <a aria-label='Next page' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='hanging_pictures_shelves' data-mixpanel-trigger='click' href='https://www.handy.com/services/hanging-pictures-shelves?page=2#customer-reviews'> <i class='fas fa-chevron-right'></i> </a> </div> </nav> </div> </div> <div class='cell grid-x align-center'> <div class='cell customer-reviews__button'> <a class='button radius' data-smooth-scroll='' href='#hanging-pictures-shelves-page'>Get Started</a> </div> </div> </div> </div> </div> </section> <section id='sample-project'> <div class='grid-container'> <div class='sample-projects small-12 medium-10 large-8 columns end small-centered'> <div class='sample-projects__header row'> <h2>Recent Job Requests</h2> </div> <div class='sample-projects__container row'> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 20, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 34113 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 3.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: # of Small Items (Smaller than #ft by #ft) A: # Q: # of Large Items (Larger than #ft by #ft) A: # Q: Will a ladder be required? A: Yes (# ft.) Q: Do you need assistance purchasing materials / parts ... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 17, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 36830 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Need to hang up a tv stand, a few picture frames, mirrors and hanging racks </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 27, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 20171 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 3.5 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: # of Small Items (Smaller than #ft by #ft)* A: # Q: # of Large Items (Larger than #ft by #ft)* A: # Q: Will a ladder be required?* A: Yes (# ft.) Q: Do you need assistance purchasing materials / par... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 21, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 60411 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: # of Small Items (Smaller than #ft by #ft) A: # Q: # of Large Items (Larger than #ft by #ft) A: # Q: Will a ladder be required? A: Yes (# ft.) Q: Do you need assistance purchasing materials / parts ... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 17, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 11206 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> I’d like to hang a large mirror and two shelves Mirror: https://www.shopstyle.com/g/living/anthropologie/georgine-mirror/# Shelves: https://www.etsy.com/listing/#/fast-easy-mount-wood-floating-shelf </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 17, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 07424 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 5.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Just moved in and I have pictures and coat hangers to hang throughout the house </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 19, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 75023 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Need curtain rod hung, and large outdoor wreath. This requires drilling into brick. I do not have a drill for this. </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 23, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 10475 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: # of Small Items (Smaller than #ft by #ft) A: # Q: # of Large Items (Larger than #ft by #ft) A: # Q: Will a ladder be required? A: Yes (# ft.) Q: Do you need assistance purchasing materials / parts ... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 17, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 23832 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: # of Small Items (Smaller than #ft by #ft) A: # Q: # of Large Items (Larger than #ft by #ft) A: # Q: Will a ladder be required? A: Yes (# ft.) Q: Do you need assistance purchasing materials / parts ... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Picture Hanging and Shelf Installation  </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> November 16, 2024 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> November 20, 2024 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 32937 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: # of Small Items (Smaller than #ft by #ft)* A: # Q: # of Large Items (Larger than #ft by #ft)* A: # Q: Will a ladder be required?* A: No Q: Do you need assistance purchasing materials / parts for th... </div> </div> </div> </div> </div> </div> </div> </div> </section> <section id='where-does-handy-operate'> <div class='grid-container'> <div class='grid-x align-center'> <div class='grid-x small-10 align-center where-does-handy-operate'> <div class='cell small-11 text-align-center where-does-handy-operate__title'> <h2>Where Does Handy Operate?</h2> </div> <div class='cell small-11 text-align-center where-does-handy-operate__description'> <p>Handy operates in hundreds of cities around the United States, Canada, and the U.K. No matter where you live, Handy has you covered.</p> </div> <div class='cell grid-x where-does-handy-operate__content'> <div class='cell grid-x small-12 medium-12 large-7 align-middle locations'> <ul class='cell small-12 medium-5 locations__list'> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/new-york">NYC</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/san-francisco">SF</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/boston">Boston</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/chicago">Chicago</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/miami">Miami</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/washington-dc">DC</a> </li> </ul> <ul class='cell small-12 medium-7 locations__list'> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/los-angeles">Los Angeles</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/houston">Houston</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/london">London</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/vancouver">Vancouver</a> </li> <li class='fas fa-caret-right'> <a href="/services/hanging-pictures-shelves/toronto">Toronto</a> </li> <li> <a href="/locations">and hundreds more!</a> </li> </ul> </div> <div class='cell grid-x large-5 hide-for-small show-for-large image'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/locations_map-7aa2f2a22ee5dabd12caf07653caf7e4aec4e23add6f889eaef5c99bf362737a.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> </div> </div> </div> </div> </section> <section id='foot'> <div class='grid-container'> <div class='grid-x align-center'> <div class='grid-x small-10 align-center foot'> <div class='cell foot__content'> <h2>No Need to&nbsp;Hang Around for Your Picture Hanging Pro</h2> <p>Once your professional has arrived, the only things that'll be hanging around will be your picture frames. Your picture hanger or shelf installation professional will turn up on time, every time, ensuring that you get the best job at a reasonable and affordable price. Prompt, professional, and detail-oriented, you can book them to arrive at a time that&rsquo;s best for you. Professionals booked through the Handy platform are available to come to your home between the hours of 7 AM and 11 PM. Why sift through unreliable Craigslist postings or trust the opinions of friends of friends when Handy provides a platform to find rated and reviewed shelf hangers and hanging professionals that are ready to go?</p> <p style="font-size: 11px;">&nbsp;</p> <h2>Book an Expert Eye to Help Install Shelves and Hang Pictures</h2> <p>Hanging pictures might not seem like the most challenging job in the world at first glance, but it's incredible how quickly the best-laid plans can fall apart. You&rsquo;re putting holes in your wall, after all! Many professional picture hangers on the Handy platform bring years of experience and expertise with them to your booking. Within minutes, they'll know how to make the most of your space, while listening carefully to your requirements and specifications. If you have large numbers of picture frames that need to go up on your walls, hiring a professional to help will make short work of a big job.</p> <p style="font-size: 11px;">&nbsp;</p> <h2>Hanging Professionals Have Seen It All</h2> <p>Hanging pictures to deliver the best visual experience can be a daunting task. Whether you want to upgrade your interior decor with floating shelves or create an eye-catching arrangement of picture frames on your wall, there are several pitfalls to be wary of. Book professional wall hanging services through Handy and you'll connect with individuals who have turned their <a href="https://www.handy.com/services/other-handyman-service" target="_blank" data-interlink="">handyman</a> skills into a career. Regardless of the size of the job or the number of pictures or shelves involved, they'll give you the best advice and help you create something truly memorable, without any hassle.&nbsp;&nbsp;</p> </div> <div class='cell foot__button'> <a class='button radius' data-smooth-scroll='' href='#hanging-pictures-shelves-page'>Get Started</a> </div> </div> </div> </div> </section> </main> <footer role='contentinfo'> <script class="handy-analytics" id="bright_tagjs"> window.pageData = {}; (function() { var btjs = document.createElement('script'), s = document.getElementsByTagName('script')[0]; btjs.async = true; btjs.src = '//s.btstatic.com/tag.js#site=FT5eU6D'; s.parentNode.insertBefore(btjs, s); }()); </script> <noscript> <iframe src="//s.thebrighttag.com/iframe?c=FT5eU6D" width="1" height="1" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe> </noscript> <script src="https://cache-landingpages.services.handy.com/packs/application-662e8b84e901e8802df2.js"></script> <section id='crumbs'> <div class='grid-container'> <div class='grid-x align-center crumbs'> <div class='cell crumbs__content'> <ul class='breadcrumbs'> <li> <i class='fa fa-home'></i> <a href="/">Home</a> <li><a href="/services">services</a></li> <li>hanging-pictures-shelves</li> </li> </ul> </div> </div> </div> </section> <section id='footer'> <div class='grid-container'> <div class='grid-x align-center footer'> <div class='cell grid-x footer__navigation hide-for-small-only'> <nav class='cell grid-x small-5'> <ul class='menu vertical'> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='happiness_guarantee' data-mixpanel-trigger='click' href='/handy-guarantee'>The Handy Happiness Guarantee</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='about' data-mixpanel-trigger='click' href='/about'>About</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='press' data-mixpanel-trigger='click' href='/press'>Press</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='careers' data-mixpanel-trigger='click' href='/careers'>Careers</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'>Blog</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'>Help</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'>Contact Us</a> </li> <br> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply?utm_source=home_footer'>Be a Professional</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='retail' data-mixpanel-trigger='click' href='/retail'>Retail Partnerships</a> </li> </ul> </nav> <nav class='cell grid-x small-4'> <ul class='menu vertical'> <li class='menu-text'>LOCATIONS</li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_boston' data-mixpanel-trigger='click' href='/services/home-cleaning/boston'>Boston</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_chicago' data-mixpanel-trigger='click' href='/services/home-cleaning/chicago'>Chicago</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_london' data-mixpanel-trigger='click' href='/services/home-cleaning/london'>London</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_los_angeles' data-mixpanel-trigger='click' href='/services/home-cleaning/los-angeles'>Los Angeles</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_new_york' data-mixpanel-trigger='click' href='/services/home-cleaning/new-york'>New York</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_san_francisco' data-mixpanel-trigger='click' href='/services/home-cleaning/san-francisco'>San Francisco</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_toronto' data-mixpanel-trigger='click' href='/services/home-cleaning/toronto'>Toronto</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_vancouver' data-mixpanel-trigger='click' href='/services/home-cleaning/vancouver'>Vancouver</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations' data-mixpanel-trigger='click' href='/locations'>See all locations</a> </li> <li id='locale'> <form action="/country_select" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" /> <select name="request_country" id="request_country" onchange="this.form.submit()"><option selected="selected" value="US">United States</option> <option value="CA">Canada</option> <option value="GB">United Kingdom</option></select> </form> </li> </ul> </nav> <nav class='cell grid-x small-3'> <ul class='menu vertical'> <li class='menu-text'>POPULAR SERVICES</li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'>Cleaning</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'>Handyman</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'>Plumbing</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'>Electrical</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'>Moving Help</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'>Painting</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'>Furniture Assembly</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'>See all services</a> </li> </ul> </nav> </div> <div class='cell grid-x footer__stores hide-for-small-only'> <a href="https://handy.app.link/app"><img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/app-store-badge-4a71a8c7f185bad9ad8653a3267dafec0a9a649da7d5764c582fec70b8dc9f45.svg" data-alt="Download from Apple Store" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a> <a href="https://handy.app.link/app"><img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/play-store-badge-49e311a794277c754af75084413fbc788682c55ad83b651c681c99d6197c6bc1.svg" data-alt="Download from Google Play Market" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a> </div> <div class='cell grid-x footer__social hide-for-small-only'> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='twitter' data-mixpanel-trigger='click' href='https://twitter.com/handy' target='_blank'> <i class='fab fa-twitter'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='facebook' data-mixpanel-trigger='click' href='https://facebook.com/handyhq' target='_blank'> <i class='fab fa-facebook'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='instagram' data-mixpanel-trigger='click' href='http://instagram.com/handy_hq' target='_blank'> <i class='fab fa-instagram'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='wikipedia' data-mixpanel-trigger='click' href='https://en.wikipedia.org/wiki/Handy_(company)' target='_blank'> <i class='fab fa-wikipedia-w'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='linkedin' data-mixpanel-trigger='click' href='https://www.linkedin.com/company/handyhq' target='_blank'> <i class='fab fa-linkedin'></i> </a> <a class='mixpanel fa-cb' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='crunchbase' data-mixpanel-trigger='click' href='https://crunchbase.com/organization/handybook' target='_blank'></a> </div> <div class='cell grid-x footer__interlinks'> <div class='cell grid-x headline'>Other Handy Services</div> <div class='cell grid-x medium-5'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/apartment-cleaning">apartment cleaning</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/chicago">chicago cleaning service</a> </li> <li> <a href="https://www.handy.com/services/home-cleaning/near-me">cleaners near me</a> </li> </ul> </div> <div class='cell grid-x medium-4'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/home-cleaning/near-me">home cleaning services near me</a> </li> <li> <a href="https://www.handy.com/services/office-cleaning/seattle">janitorial service seattle</a> </li> <li> <a href="https://www.handy.com/services/move-out-in-cleaning/london">london move in move out cleaning services</a> </li> </ul> </div> <div class='cell grid-x medium-3'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/maid-service/near-me">maid services near me</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/philadelphia">philadelphia cleaning service</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/san-antonio">san antonio cleaning services</a> </li> </ul> </div> </div> <div class='cell grid-x footer__lower-footer footer-term-links'> <div class='cell grid-x medium-shrink lower-menu'> <ul class='menu'> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='contact' data-mixpanel-trigger='click' href='/help'>Contact</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='privacy' data-mixpanel-trigger='click' href='/privacy'>Privacy</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='ccpa' data-mixpanel-trigger='click' href='/privacy#section5a'>CA Pre-Collection Notice</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='do_not_sell' data-mixpanel-trigger='click' href='/do_not_sell'>Do Not Sell or Share My Personal Information</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='cookies' data-mixpanel-trigger='click' href='/cookies'>Cookies</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='terms' data-mixpanel-trigger='click' href='/terms'>Terms</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='cancellation_policy' data-mixpanel-trigger='click' href='https://help.handy.com/hc/en-us/articles/215568487-What-s-the-cancellation-policy-'>Cancellation Policy</a> </li> </ul> </div> <div class='cell grid-x medium-auto align-right copy'> <div class='lower-attribution'> <span> 2024 Handy. All rights reserved. </span> <strong> Handy powered by Angi </strong> </div> </div> </div> </div> </div> </section> <!-- BEGIN TRACERS --> <!-- handy_request_trace_id=31b87e13b8121a9e6c460e3005b93113 --> <!-- handy_user_trace_id=CsoF12dG4+i37AAHQDdmAg== --> <!-- END TRACERS --> </footer> </div> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10