1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7054],{1980:function(e,t,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/services",function(){return i(6301)}])},5227:function(e,t,i){"use strict";var n=i(5893),a=i(5697),s=i.n(a),r=i(512),o=i(7294),c=i(471),l=i(9474),d=i.n(l);let u=e=>{let{services:t,activeServiceId:i,onNavigate:a}=e,s=(0,o.useRef)(null);return(0,o.useEffect)(()=>{let e=s.current;if(!e||!i)return;let t=e.querySelector('[data-service-id="'.concat(i,'"]'));if(!t)return;let{left:n,right:a}=t.getBoundingClientRect(),r=e.offsetWidth;a>r?e.scrollTo({left:t.offsetLeft-r+t.offsetWidth+24,behavior:"smooth"}):n<0&&e.scrollTo({left:t.offsetLeft-24,behavior:"smooth"})},[i]),(0,n.jsx)("div",{ref:s,className:d().nav,"data-testid":"services-sticky-nav",children:(0,n.jsx)(c.Z,{children:(0,n.jsx)("div",{className:d().row,role:"tablist","aria-label":"Service areas",children:t.map(e=>{let t=i===e.id;return(0,n.jsxs)("div",{role:"tab",tabIndex:0,"aria-selected":t,"data-service-id":e.id,className:d().tab,onClick:()=>a(e.id),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),a(e.id))},children:[(0,n.jsx)("div",{className:(0,r.Z)(d().label,t&&d()["label-active"]),children:e.navLabel}),(0,n.jsx)("div",{className:(0,r.Z)(d().bar,t&&d()["bar-active"]),style:t?{"--nav-accent":e.navColor||"#006177"}:void 0})]},e.id)})})})})};u.propTypes={activeServiceId:s().string,onNavigate:s().func.isRequired,services:s().arrayOf(s().shape({id:s().string.isRequired,navLabel:s().string.isRequired,navColor:s().string})).isRequired},t.Z=u},8728:function(e,t,i){"use strict";i.d(t,{Z:function(){return d}});var n=i(5893),a=i(5697),s=i.n(a),r=i(512);let o={card:"rounded-card","card-sm":"rounded-card-sm","card-lg":"rounded-card-lg","card-xl":"rounded-card-xl"},c={none:"",resting:"shadow-cardResting",frame:"shadow-imageFrame",elevated:"shadow-imageElevated"},l=e=>{let{children:t,className:i,radius:a="card-lg",shadow:s="frame",bordered:l=!1,as:d="div",...u}=e;return(0,n.jsx)(d,{className:(0,r.Z)("relative overflow-hidden bg-gray-150",o[a],c[s],l&&"border border-divider",i),...u,children:t})};l.propTypes={children:s().node,className:s().string,radius:s().oneOf(["card","card-sm","card-lg","card-xl"]),shadow:s().oneOf(["none","resting","frame","elevated"]),bordered:s().bool,as:s().elementType};var d=l},3620:function(e,t,i){"use strict";i.d(t,{Z:function(){return y}});var n=i(5893),a=i(5697),s=i.n(a),r=i(3046),o=i(2018),c=i(2051),l=i(471),d=i(9887),u=i(1289),m=i(4898),g=i(512),p=i(4998),_=i.n(p),h=i(9524),v=i.n(h);let f=e=>{let{title:t,subtitle:i="",cardData:a,buttonText:s,href:p="/",variant:h,presentation:f="default"}=e,y=a||[];return"services"===f?(0,n.jsx)("section",{className:_().section,"data-testid":"services-case-studies","data-presentation":"services",children:(0,n.jsxs)(l.Z,{children:[(0,n.jsxs)("div",{className:_().intro,children:[(0,n.jsx)("h2",{className:_().title,children:t}),i?(0,n.jsx)("p",{className:_().subtitle,children:i}):null]}),(0,n.jsx)("div",{className:_().grid,"data-testid":"services-case-grid",children:y.map((e,t)=>(0,n.jsx)(d.ZP,{...e,variant:h,presentation:"services"},t))}),(0,n.jsx)("div",{className:_()["cta-wrap"],children:(0,n.jsx)("div",{className:_().cta,"data-testid":"services-case-cta",children:(0,n.jsx)(r.ZP,{color:"primary",href:p,borderRadius:"full",type:"outline",size:"lg",endIcon:(0,n.jsx)(u.ZP,{name:"arrow-right"}),children:s})})})]})}):"portfolio"===h?(0,n.jsx)("section",{className:v().section,"data-testid":"similar-posts","data-variant":"portfolio",children:(0,n.jsxs)(l.Z,{className:v().inner,children:[(0,n.jsxs)("div",{className:v().intro,children:[(0,n.jsx)(c.Z,{className:"text-gray-950",fontWeight:"bold",component:"h2",preset:"section",children:t}),i?(0,n.jsx)("p",{className:v().subtitle,children:i}):null]}),(0,n.jsx)("div",{className:v().grid,children:y.map((e,t)=>(0,n.jsx)(d.ZP,{...e,variant:h,presentation:"similar"},t))}),(0,n.jsx)("div",{className:v().cta,children:(0,n.jsx)(r.ZP,{color:"primary",href:p,borderRadius:"full",type:"outline",size:"lg",endIcon:(0,n.jsx)(u.ZP,{name:"arrow-right"}),children:s})})]})}):"blog"===h?(0,n.jsx)("section",{className:v().section,"data-testid":"similar-posts","data-variant":"blog",children:(0,n.jsxs)(l.Z,{className:v().inner,children:[(0,n.jsxs)("div",{className:v().blog_intro,children:[(0,n.jsx)(c.Z,{className:"text-gray-950",fontWeight:"bold",component:"h2",preset:"section",children:t}),(0,n.jsxs)(m.Z,{href:p,className:v().blog_link,children:[s,(0,n.jsx)(u.ZP,{name:"arrow-right",className:v().blog_link_icon,"aria-hidden":"true"})]})]}),(0,n.jsx)("div",{className:v().grid,children:y.map((e,t)=>(0,n.jsx)(d.ZP,{...e,variant:h,presentation:"similar"},t))})]})}):(0,n.jsxs)(o.Z,{containerClass:"grid grid-cols-2 gap-7 px-6 md:grid-cols-6 lg:grid-cols-12 lg:gap-7",sectionClass:"py-18 lg:py-25",background:"gray","data-testid":"similar-posts",children:[(0,n.jsx)(c.Z,{className:(0,g.Z)("col-span-full text-gray-950",{"pb-1 lg:pb-0":i,"pb-9 lg:pb-8 xl:pb-10":!i}),fontWeight:"semibold",component:"h2",size:"h2",children:t}),i?(0,n.jsx)("p",{className:"col-span-full pb-9 text-m text-gray-550 lg:col-span-9 lg:pb-8",children:i}):null,y.map((e,t)=>(0,n.jsx)(d.ZP,{...e,variant:h},t)),(0,n.jsx)("div",{className:"col-span-full mt-4 md:mx-auto",children:(0,n.jsx)(r.ZP,{color:"primary",href:p,border:"full",type:"outline",size:"lg",endIcon:(0,n.jsx)(u.ZP,{className:"ml-2",name:"arrow-right"}),children:s})})]})};f.propTypes={title:s().string.isRequired,subtitle:s().string,buttonText:s().string.isRequired,href:s().string,variant:s().oneOf(["blog","portfolio"]).isRequired,presentation:s().oneOf(["default","services"]),cardData:s().array};var y=f},6301:function(e,t,i){"use strict";i.r(t),i.d(t,{Services:function(){return ev},__N_SSP:function(){return eh},default:function(){return ef}}
1);var n=i(5893),a=i(5697),s=i.n(a),r=i(3620),o=i(7294),c=i(1163),l=i(512),d=i(471),u=i(1511),m=i.n(u);let g=e=>{let{title:t,subTitle:i,content:a,checkList:s=[],id:r,isOpen:o,onToggle:c}=e;return(0,n.jsxs)("div",{id:r,className:(0,l.Z)(m().card,o&&m()["card-open"]),"data-testid":"services-accordion-item-".concat(r),children:[(0,n.jsxs)("div",{className:m().head,role:"button",tabIndex:0,"aria-expanded":o,onClick:()=>c(r),onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&(e.preventDefault(),c(r))},children:[(0,n.jsx)("p",{className:m().title,children:t}),(0,n.jsx)("span",{className:(0,l.Z)(m().icon,o&&m()["icon-open"]),"aria-hidden":"true","data-testid":"services-accordion-toggle-icon"})]}),(0,n.jsx)("div",{className:(0,l.Z)(m().body,o&&m()["body-open"]),"data-services-accordion-body":"",children:(0,n.jsx)("div",{className:m()["body-inner"],children:(0,n.jsxs)("div",{className:m().inner,children:[(0,n.jsx)("p",{className:m()["sub-title"],children:i}),(0,n.jsx)("p",{className:m().content,children:a}),s.length>0?(0,n.jsx)("ul",{className:m()["check-list"],children:s.map(e=>(0,n.jsxs)("li",{className:m()["check-item"],children:[(0,n.jsx)("span",{className:m()["check-icon"],"aria-hidden":"true",children:(0,n.jsx)("span",{className:m()["check-mark"]})}),(0,n.jsx)("span",{children:e})]},e))}):null]})})})]})};g.propTypes={title:s().string.isRequired,id:s().string.isRequired,subTitle:s().string.isRequired,content:s().string.isRequired,checkList:s().arrayOf(s().string),isOpen:s().bool,onToggle:s().func.isRequired};let p=e=>{let{accordionItems:t,openItemId:i,onToggle:a}=e;return(0,n.jsx)("div",{className:m().list,"data-testid":"services-accordion",children:t.map(e=>(0,n.jsx)(g,{...e,isOpen:i===e.id,onToggle:a},e.id))})};p.propTypes={openItemId:s().string,onToggle:s().func.isRequired,accordionItems:s().arrayOf(s().shape({title:s().string.isRequired,id:s().string.isRequired,subTitle:s().string.isRequired,content:s().string.isRequired,checkList:s().arrayOf(s().string)})).isRequired};var _=i(5227);let h="software-engineering",v="digital-marketing",f="analytics-and-data-engineering",y=[h,v,f],k={CMS_and_lead_gen_tooling:h,Customer_facing_apps_and_product_delivery:h,Communication_workflows_and_integrations:h,Backend_systems_and_marketing_automation:h,acquisition_and_campaign_strategy:v,performance_marketing_audits:v,paid_media_execution_and_optimization:v,conversion_rate_and_funnel_optimization:v,Campaign_analytics_systems:f,User_behavior_tracking_and_on_site_analytics:f,Automated_reporting_and_dashboard_delivery:f,Ad_hoc_analysis_and_insight_delivery:f},b={organic_footprint_and_brand_messaging:"performance_marketing_audits",ad_trafficking_and_channel_ops_at_scale:"conversion_rate_and_funnel_optimization"},x=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";if(!e)return"";let t=e.indexOf("#");return -1!==t?e.slice(t+1)||"":e.startsWith("/")?"":e},w=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e)return{type:"none"};let i=b[e]||e,n=k[i];if(n)return{type:"item",groupId:n,itemId:i};if(y.includes(i)){var a,s,r;let e=t.find(e=>e.id===i);return{type:"group",groupId:i,itemId:null!==(r=null==e?void 0:null===(s=e.items)||void 0===s?void 0:null===(a=s[0])||void 0===a?void 0:a.id)&&void 0!==r?r:null}}return{type:"unknown"}},S=(e,t)=>{var i,n,a;let s=e.find(e=>e.id===t);return null!==(a=null==s?void 0:null===(n=s.items)||void 0===n?void 0:null===(i=n[0])||void 0===i?void 0:i.id)&&void 0!==a?a:null},j=()=>{let e=document.querySelector('[data-testid="services-sticky-nav"]');if(!e)return 172;let t=e.getBoundingClientRect();return t.top<=78?t.bottom+28:76+(t.height||68)+28},N=e=>{if("undefined"==typeof document||!e)return null;let t=document.getElementById(e);return t?"SECTION"===t.tagName&&t.querySelector("h2")||t:null},R=e=>{if(!(null==e?void 0:e.getBoundingClientRect))return!1;let t=j(),i=e.getBoundingClientRect().top-t;return!(1>=Math.abs(i))&&(window.scrollBy({top:i,behavior:"auto"}),!0)},q="[data-services-accordion-body]",C='[data-testid^="'.concat("services-accordion-item-",'"]'),A=(e,t)=>e.target===t&&(!e.propertyName||"grid-template-rows"===e.propertyName),T=e=>{var t,i,n,a;
1if(!e)return()=>{};let s=!1,r=()=>{s||R(e)};r(),window.requestAnimationFrame(()=>{r(),window.requestAnimationFrame(r)});let o=(null===(t=e.closest)||void 0===t?void 0:t.call(e,C))||e.id&&(null===(n=document.getElementById(e.id))||void 0===n?void 0:null===(i=n.closest)||void 0===i?void 0:i.call(n,C)),c=(null==o?void 0:null===(a=o.querySelector)||void 0===a?void 0:a.call(o,q))||null,l=e=>{A(e,c)&&(r(),c.removeEventListener("transitionend",l))};return c&&c.addEventListener("transitionend",l),()=>{s=!0,c&&c.removeEventListener("transitionend",l)}},I=()=>{var e;if("undefined"==typeof document)return null;let t=document.querySelector("".concat(C,' [aria-expanded="true"]'));return(null==t?void 0:null===(e=t.closest(C))||void 0===e?void 0:e.id)||null},E=e=>{var t;return e&&(null===(t=document.getElementById(e))||void 0===t?void 0:t.querySelector(q))||null},L=(e,t)=>{let i=[],n=E(e);if(n&&i.push(n),t&&t!==e){let e=E(t);e&&!i.includes(e)&&i.push(e)}return i},Z=(e,t)=>{let i=!1,n=new Set(e),a=new Map,s=()=>{i||T(t)};return e.forEach(e=>{let t=r=>{!i&&A(r,e)&&n.has(e)&&(n.delete(e),e.removeEventListener("transitionend",t),a.delete(e),0===n.size&&s())};a.set(e,t),e.addEventListener("transitionend",t)}),()=>{i=!0,a.forEach((e,t)=>{t.removeEventListener("transitionend",e)}),a.clear(),n.clear()}},P=e=>{let{groupId:t,openingItemId:i,previousItemId:n}=e;if(!t)return()=>{};let a=N(t);if(!a)return()=>{};let s=L(i,n);return(R(a),window.requestAnimationFrame(()=>R(a)),s.length)?Z(s,a):T(a)},M=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:172,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"auto";if(!e)return;let n=N(e);if(!n)return;let a=document.querySelector('[data-testid="services-sticky-nav"]')?j():t,s=n.getBoundingClientRect().top+window.pageYOffset-a;window.scrollTo({top:s,behavior:"smooth"===i?"smooth":"auto"}),T(n)};var O=i(8159),z=i.n(O);let W={dark:z()["section-dark"],light:z()["section-light"],sky:z()["section-sky"]},D={dark:z()["kicker-dark"],light:z()["kicker-light"],sky:z()["kicker-sky"]},B={dark:z()["title-dark"],light:z()["title-light"],sky:z()["title-sky"]},H={dark:z()["text-dark"],light:z()["text-light"],sky:z()["text-sky"]},F={dark:z()["theme-dark"],light:z()["theme-light"],sky:z()["theme-sky"]},G={dark:z()["mark-circle"],light:z()["mark-square"],sky:z()["mark-triangle"]},J=()=>{},X=(e,t)=>{J();let i="group"===e.type?e.groupId:e.itemId;window.requestAnimationFrame(()=>{M(i,void 0,"auto"),"group"===e.type&&e.itemId&&(J=P({groupId:e.groupId,openingItemId:e.itemId,previousItemId:t}))})},K=e=>{let{services:t}=e,i=(0,c.useRouter)(),[a,s]=(0,o.useState)(y[0]),[r,u]=(0,o.useState)(null),m=(0,o.useRef)(0),g=(0,o.useRef)(""),h=(0,o.useRef)(null);(0,o.useEffect)(()=>{h.current=r},[r]);let v=(0,o.useCallback)(function(e){let{scroll:i=!0}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=w(e,t);if("item"===n.type||"group"===n.type){let e=h.current||I();s(n.groupId),u(n.itemId),i&&(m.current=Date.now()+1e3,X(n,e));return}("unknown"===n.type||"none"===n.type)&&u(null)},[t]);(0,o.useEffect)(()=>{let e=x(i.asPath)||x(window.location.hash);e===g.current&&e||(g.current=e,v(e,{scroll:!!e}))},[i.asPath,v]),(0,o.useEffect)(()=>{let e=()=>{let e=x(window.location.hash);g.current=e,v(e,{scroll:!!e})};return window.addEventListener("hashchange",e),()=>window.removeEventListener("hashchange",e)},[v]),(0,o.useEffect)(()=>{let e=()=>{if(Date.now()<m.current)return;let e=y[0];for(let t of y){let i=document.getElementById(t);i&&i.getBoundingClientRect().top<=188&&(e=t)}s(t=>t===e?t:e)};return window.addEventListener("scroll",e,{passive:!0}),e(),()=>window.removeEventListener("scroll",e)},[]);let f=(0,o.useCallback)(e=>{var i;let n=S(t,e),a=h.current||I();s(e),u(n),m.current=Date.now()+800,g.current=e,(null===(i=window.history)||void 0===i?void 0:i.replaceState)&&window.history.replaceState(null,"","#".concat(e)),J(),M(e,void 0,"auto"),J=P({groupId:e,openingItemId:n,previousItemId:a})},[t]),k=(0,o.useCallback)(e=>{u(t=>{let i=t===e?null:e;return i&&window.requestAnimationFrame(()=>{let e=document.getElementById(i);e&&T(e)}),i})},[]),b=t.map(e=>{let{id:t,navLabel:i,navColor:n}=e;return{id:t,navLabel:i,navColor:n}});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(_.Z,{services:b,activeServiceId:a,onNavigate:f}),t.map(e=>{let t=e.theme||"dark";return(0,n.jsx)("section",{id:e.id,className:(0,l.Z)(z().section,W[t]),"data-testid":"services-section-".concat(e.id),children:(0,n.jsx)(d.Z,{className:z().inner,children:(0,n.jsxs)("div",{className:z().grid,children:[(0,n.jsxs)("div",{className:z()["sticky-copy"],children:[(0,n.jsx)("div",{className:G[t],"aria-hidden":"true"}),(0,n.jsx)("p",{className:(0,l.Z)(z().kicker,D[t]),children:e.kicker}),(0,n.jsx)("h2",{className:(0,l.Z)(z().title,B[t]),children:e.title}),(0,n.jsx)("p",{className:(0,l.Z)(z().text,H[t]),children:e.text})]}),(0,n.jsx)("div",{className:F[t],children:(0,n.jsx)(p,{accordionItems:e.items,openItemId:r,onToggle:k})})]})})},e.id)})]})};K.propTypes={services:s().arrayOf(s().shape({id:s().string.isRequired,navLabel:s().string.isRequired,navColor:s().string,kicker:s().string.isRequired,title:s().string.isRequired,text:s().string.isRequired,theme:s().oneOf(["dark","light","sky"]).isRequired,items:s().array.isRequired})).isRequired};var U=i(2962),Y=i(5680);let Q="Full-stack engineering, marketing, and analytics services",V="We build and improve software, develop and execute marketing strategies, and connect business data for reporting and analysis. We take projects from discovery through delivery and ongoing improvement, or work alongside your existing team.",$="".concat(Y.R,"/services"),{ogImage:ee}=Y.SOCIAL_MEDIA_DATA,et={SEO:{title:Q,canonical:$,description:V,openGraph:{url:$,title:Q,description:V,images:ee}},heroSection:{eyebrow:"WHAT WE DO",title:(0,n.jsx)(n.Fragment,{children:"Software engineering, marketing, and analytics."}),accentLine:"All from one team.",description:V,img:{src:"/next-assets/images/services-page/services-hero-team-redesign-v2.webp",alt:"Mamble team at work"},buttonText:"Discuss your project"},services:[{id:"software-engineering",navLabel:"Engineering",navColor:"#006177",kicker:"ENGINEERING",title:"Engineering",theme:"dark",text:"We design, build, and improve digital systems for product and marketing operations: customer applications, lead-processing automation, internal apps and tools, CRM systems and logic, custom CMS platforms, websites, integrations, and automated backend workflows.\n\nWe develop new systems and extend existing platforms, taking responsibility for architecture, development, testing, and deployment in collaboration with your team.",items:[{title:"CMS and lead-gen tooling",id:"CMS_and_lead_gen_tooling",subTitle:"Are your websites, landing pages, and content platforms built to capture, qualify, and hand off leads to sales?",content:"We deliver CMS-powered websites, landing pages, and lead-generation tools that connect to your CRM, with technical SEO, conversion tracking, lead-qualification flows, and lead routing built in. New builds and migrations both include marketing-to-sales handoff.",checkList:["CMS architecture built for performance and easy scaling","CRM and form integrations for lead handoff","SEO and UX built into the frontend structure","Migration support with clean code and stable analytics"]},{title:"Customer-facing apps and product delivery",id:"Customer_facing_apps_and_product_delivery",subTitle:"Do you have the right engineering support to move products and features from idea to production?",content:"We build and ship web-based products that support customer experience, internal ops, or onboarding funnels. Our team can own delivery from requirements to production or integrate with your backlog and design process to deliver new features.",checkList:["Embedded engineers with full ownership of product or scoped features","Agile delivery aligned with your design and product teams","Clean, modular frontends and backend services","Fast delivery with built-in analytics and testing hooks"]},{title:"Communication workflows and integrations",id:"Communication_workflows_and_integrations",subTitle:"Do SMS, calls, email, and internal tools run on one communication workflow?",content:"We design and build workflows for outbound calls, SMS, and email campaigns, tied into your lead lifecycle or CRM. That includes Twilio automations and form-to-call flows, with logged, traceable handoff across the stack.",checkList:["Lead-triggered SMS, email, and call workflows","Twilio or phone system integrations with CRM","Form-to-call routing with time and channel logic","Analytics-ready logs and tracking across channels"]},{title:"Backend systems and marketing automation",id:"Backend_systems_and_marketing_automation",subTitle:"Are you still relying on manual workflows between marketing, sales, and operations?",content:"We build backend systems that automate lead processing, routing logic, CRM updates, notifications, and marketing triggers. That cuts manual handoffs and makes the funnel easier to see.",checkList:["Automated lead capture and CRM update logic","Workflow engines triggered by behavior or stage","System-level visibility into funnel and pipeline","Custom logic that replaces repetitive manual work"]}]},{id:"digital-marketing",navLabel:"Marketing",navColor:"#B8860B",kicker:"MARKETING",title:"Marketing",theme:"light",text:"We develop and execute performance marketing strategies across search, native, social, display, and programmatic channels. Our work covers acquisition planning, campaign setup and management, creative testing, and landing page optimization.\n\nWe use campaign and CRM data to guide budget allocation and optimize for lead quality, conversions, and ROI.",items:[{id:"acquisition_and_campaign_strategy",title:"Acquisition and campaign strategy",subTitle:"Do you need structured planning for media spend, traffic sources, and landing funnel design?",content:"We define channel mix, targeting logic, and creative direction for new offers and programs already in market, informed by market research, competitor analysis, and existing performance data. Media planning, audience segmentation, message alignment, and landing page strategy sit in one plan, with budget allocation, acquisition KPIs, and testing priorities.",checkList:["Channel and budget recommendations aligned with KPIs","Audience segmentation strategies","Message frameworks aligned to funnel stages","Landing page wireframes and performance assumptions"]},{id:"performance_marketing_audits",title:"Performance marketing audits",subTitle:"Do you know
1whatâs limiting campaign performance and what to fix first?",content:"We assess existing paid media accounts against your acquisition KPIs, evaluating campaign efficiency and the reliability of performance measurement. You receive documented findings and a prioritized action plan covering performance gaps, wasted spend, and opportunities for improvement, with recommended fixes and tests.",checkList:["Account and targeting review to identify performance gaps","Spend and lead-quality analysis to assess acquisition efficiency","Tracking and attribution checks to flag reporting issues","Recommendations prioritized by impact and implementation effort"]},{id:"paid_media_execution_and_optimization",title:"Paid media execution and optimization",subTitle:"Do you have the support you need to launch, test, and scale paid campaigns efficiently?",content:"We plan and run paid campaigns across search, native, social, display, and programmatic platforms, covering campaign setup and ad trafficking, bid and budget management, keyword and audience targeting, publisher optimization, creative and landing page testing, and performance reporting. Learning cycles stay short, with cost control and clean data structures.",checkList:["Campaign setup and launch on relevant platforms","Test-and-learn iteration cycles for fast insight gathering","Budget planning and real-time pacing support","Attribution, cost, and ROI reporting aligned to KPIs"]},{id:"conversion_rate_and_funnel_optimization",title:"Conversion rate and funnel optimization",subTitle:"Are you getting traffic but losing potential customers before they convert?",content:"We analyze post-click journeys to identify conversion bottlenecks across landing pages, forms, and qualification flows. We prioritize and test changes to message alignment, page structure, CTAs, and form logic, using conversion rates and lead quality to determine which changes to roll out.",checkList:["Funnel analysis to prioritize conversion improvements","Ad-to-page message alignment to match visitor intent","Landing page and form testing to reduce friction","A/B test reporting tied to conversion and lead quality"]}]},{id:"analytics-and-data-engineering",navLabel:"Analytics",navColor:"#008594",kicker:"ANALYTICS",title:"Analytics",theme:"sky",text:"We implement event tracking and attribution, integrate data from ad platforms, websites, CRMs, and internal systems, and build automated reporting pipelines and dashboards.\n\nWork covers live funnel views and one-off deep dives to explain performance changes and inform marketing, product, and operational decisions.",items:[{title:"Campaign analytics systems",id:"Campaign_analytics_systems",subTitle:"Is your team set up to analyze channel performance and allocate spend across funnels?",content:"We build analytics layers that track performance across paid media, landing pages, CRMs, and down-funnel events. Structured tracking and integrated attribution logic connect campaign costs with lead quality, conversions, and revenue. Automated dashboards support analysis at channel, campaign, ad, keyword, creative, and publisher level.",checkList:["End-to-end tracking across campaign, site, and CRM","Channel-level insights across the full funnel","Custom dashboards for campaign and creative insights","Attribution setup and validation support"]},{title:"User behavior tracking and on-site analytics",id:"User_behavior_tracking_and_on_site_analytics",subTitle:"Are you capturing the right signals to improve conversion and inform experimentation?",content:"We configure and validate on-site analytics: user behavior, interaction funnels, scroll depth, and form completion. Marketing and product teams use that data to find friction, improve UX, and form test hypotheses.",checkList:["Structured tracking plans for key user interactions","Behavioral data collection (scroll, click, time, etc.)","Tag manager and GA4 implementation support","On-site insights that fuel experimentation and CRO"]},{title:"Automated reporting and dashboard delivery",id:"Automated_reporting_and_dashboard_delivery",subTitle:"Is your team spending too much time building reports instead of acting on them?",content:"We build and maintain reporting pipelines that update automatically, pulling from ad platforms, CRMs, and internal systems. Dashboards match the role (marketing, product, or executive) and stay current.",checkList:["Automated data pulls from multiple sources","Role-based dashboards for ops, exec, and media team
1s","Data validation, cleanup, and schema management","Self-serve dashboards with automated data refreshes"]},{title:"Ad hoc analysis and insight delivery",id:"Ad_hoc_analysis_and_insight_delivery",subTitle:"Do stakeholders need timely answers from campaign and CRM data?",content:"We run ad hoc queries and one-off reporting for leadership, operations, and finance, using cross-platform data. Typical asks: validate a trend, support a decision, or explain a performance shift.",checkList:["Fast-turnaround analysis for urgent stakeholder needs","Custom views and exports across media, CRM, and revenue","Narrative support for reporting decks and presentations","Cross-platform analysis and root cause investigation"]}]}],appointmentSection:{textSection:{title:"Have a product, marketing, or analytics project in mind?",text:"Tell us what you want to build or improve. Letâs discuss the scope, delivery approach, and next steps.",img:{src:"/next-assets/images/services-page/services-appointment-collaborate-redesign-v2.webp",alt:"Mamble specialists collaborating"}},buttonText:"Book a call"},similarPostsSection:{title:"Work that reflects our capabilities",subtitle:"We partner with product, marketing, and analytics teams on systems, acquisition, and reporting. Explore the case studies below.",buttonText:"View all case studies",href:"/portfolio",variant:"portfolio",presentation:"services"}};var ei=i(8796),en=i(5675),ea=i.n(en),es=i(6456),er=i(3046),eo=i(1289),ec=i(8728),el=i(7269),ed=i.n(el);let eu=e=>{let{eyebrow:t,title:i,accentLine:a,description:s,buttonText:r,image:o}=e,{openBookingModal:c}=(0,es.C)();return(0,n.jsx)("section",{className:"overflow-x-hidden bg-white","data-testid":"services-hero",children:(0,n.jsx)(d.Z,{className:"pb-section-72 pt-section-84 max-nav:py-section-64",children:(0,n.jsxs)("div",{className:ed().grid,children:[(0,n.jsxs)("div",{children:[t?(0,n.jsx)("p",{className:ed().eyebrow,children:t}):null,(0,n.jsxs)("h1",{className:ed().title,children:[i,a?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("br",{}),(0,n.jsx)("span",{className:ed().accent,children:a})]}):null]}),s?(0,n.jsx)("p",{className:ed().copy,children:s}):null,(0,n.jsx)("div",{className:ed().cta,"data-testid":"services-hero-book",children:(0,n.jsx)(er.Co,{type:"filled",color:"secondary",size:"lg",borderRadius:"full",onClick:e=>{e.stopPropagation(),c({trackingData:{section:"hero_modal_section"}})},endIcon:(0,n.jsx)(eo.ZP,{name:"arrow-right",className:"ml-2 text-[15px]"}),children:r})})]}),(0,n.jsxs)("div",{className:ed().art,children:[(0,n.jsx)("div",{className:ed().offset,"aria-hidden":"true"}),(0,n.jsx)(ec.Z,{className:ed().frame,radius:"card-xl",shadow:"frame",children:(0,n.jsx)(ea(),{src:o.src,alt:o.alt,fill:!0,sizes:"(max-width: 980px) calc(100vw - 40px), 536px",priority:!0,className:ed()["frame-img"]})})]})]})})})};eu.propTypes={eyebrow:s().string,title:s().node.isRequired,accentLine:s().string,description:s().string,buttonText:s().string.isRequired,image:s().shape({src:s().string.isRequired,alt:s().string.isRequired}).isRequired};var em=i(1102),eg=i.n(em);let ep=e=>{let{title:t,text:i,buttonText:a,image:s}=e,{openBookingModal:r}=(0,es.C)();return(0,n.jsx)("section",{className:eg().section,"data-testid":"services-appointment-cta",children:(0,n.jsx)(d.Z,{children:(0,n.jsxs)("div",{className:eg().card,children:[(0,n.jsxs)("div",{className:eg().copy,children:[(0,n.jsx)("h2",{className:eg().title,children:t}),(0,n.jsx)("p",{className:eg().text,children:i}),(0,n.jsx)(er.Co,{type:"filled",color:"secondary",size:"lg",borderRadius:"full",onClick:e=>{e.stopPropagation(),r({trackingData:{section:"modal_section"}})},className:eg().cta,endIcon:(0,n.jsx)(eo.ZP,{name:"arrow-right",className:eg().arrow}),children:a})]}),(0,n.jsxs)("div",{className:eg().art,children:[(0,n.jsx)(ea(),{src:s.src,alt:s.alt,fill:!0,sizes:"(max-width: 980px) 100vw, 50vw",className:eg().img}),(0,n.jsx)("div",{className:eg().corner,"aria-hidden":"true"})]})]})})})};ep.propTypes={title:s().string.isRequired,text:s().string.isRequired,buttonText:s().string.isRequired,image:s().shape({src:s().string.isRequired,alt:s().string.isRequired}).isRequired};let e_=e=>{let{similarPosts:t}=e,{SEO:i,heroSection:a,services:s,appointmentSection:o,similarPostsSection:c}=et;c.cardData=t;let l=ei.v.getOrganizationSchema(),d=ei.v.getServicesPageSchema(et);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(U.PB,{...i}),(0,n.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(l)}}),(0,n.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(d)}}),(0,n.jsx)(eu,{eyebrow:a.eyebrow,title:a.title,accentLine:a.accentLine,description:a.description,buttonText:a.buttonText,image:a.img}),(0,n.jsx)(K,{services:s}),(0,n.jsx)(ep,{title:o.textSection.title,text:o.textSection.text,buttonText:o.buttonText,image:o.textSection.img}),(0,n.jsx)(r.Z,{...c})]})};e_.propTypes={similarPosts:s().arrayOf(s().shape({href:s().string.isRequired,image:s().shape({alt:s().string.isRequired,src:s().string.isRequired}),keywords:s().array.isRequired,title:s().string.isRequired}))};var eh=!0;let ev=e=>(0,n.jsx)(e_,{...e});var ef=ev},1102:function(e){e.exports={section:"AppointmentSection_section__49s7l",card:"AppointmentSection_card__5Se_E",copy:"AppointmentSection_copy__9HkI3",title:"Ap
1pointmentSection_title__njncv",text:"AppointmentSection_text__Vz6ov",cta:"AppointmentSection_cta__h8qKc",arrow:"AppointmentSection_arrow__sAi52",art:"AppointmentSection_art__2ce6P",img:"AppointmentSection_img__q2Btz",corner:"AppointmentSection_corner__IhuBo"}},7269:function(e){e.exports={grid:"HeroSection_grid__yeIQT",eyebrow:"HeroSection_eyebrow__Qev7Z",title:"HeroSection_title__sd4Jk",accent:"HeroSection_accent__oRecJ",copy:"HeroSection_copy__an7ul",cta:"HeroSection_cta__DNDt8",art:"HeroSection_art__i7Cbi",offset:"HeroSection_offset__yyO_n",frame:"HeroSection_frame__NPeh3","frame-img":"HeroSection_frame-img__MUZqT"}},1511:function(e){e.exports={list:"Accordion_list__BbY8f",card:"Accordion_card__aa4Wa","card-open":"Accordion_card-open__a4qDf",head:"Accordion_head__4pmnR",title:"Accordion_title__RxOSW",icon:"Accordion_icon__flfs4","icon-open":"Accordion_icon-open__rJOj1","focus-visible":"Accordion_focus-visible__qUqmb",body:"Accordion_body__WDac3","body-open":"Accordion_body-open__ZXYXn","body-inner":"Accordion_body-inner__xv_oC",inner:"Accordion_inner__fCDBg","sub-title":"Accordion_sub-title__z_APm",content:"Accordion_content__7ID8H","check-list":"Accordion_check-list__9oMdL","check-item":"Accordion_check-item__S_C5_","check-icon":"Accordion_check-icon__uOI1g","check-mark":"Accordion_check-mark__zCG1R"}},9474:function(e){e.exports={nav:"Navigation_nav__kzmBN",row:"Navigation_row____WeY",tab:"Navigation_tab__Ugzjp",label:"Navigation_label__zGJ7N","label-active":"Navigation_label-active__fIAvc",bar:"Navigation_bar__ZlODh","bar-active":"Navigation_bar-active__Ovwgp"}},8159:function(e){e.exports={section:"Services_section__MoH3_","section-dark":"Services_section-dark__lulE_","section-light":"Services_section-light__IO5SQ","section-sky":"Services_section-sky___Eb3z",inner:"Services_inner__5x_h5",grid:"Services_grid__G3WvD","sticky-copy":"Services_sticky-copy__WFrLH","mark-circle":"Services_mark-circle__dYXQT","mark-square":"Services_mark-square__6O64v","mark-triangle":"Services_mark-triangle__GPXhF",kicker:"Services_kicker__uNzT3","kicker-dark":"Services_kicker-dark__uv68b","kicker-light":"Services_kicker-light__bRAi5","kicker-sky":"Services_kicker-sky__CJBlU",title:"Services_title__8h5By","title-dark":"Services_title-dark__0sDMl","title-light":"Services_title-light__RxIv8","title-sky":"Services_title-sky__sQ6ws",text:"Services_text__mgrqq","text-dark":"Services_text-dark__AlSi9","text-light":"Services_text-light__pdfn7","text-sky":"Services_text-sky___azLc","theme-dark":"Services_theme-dark__rw8Ny","theme-light":"Services_theme-light__griEd","theme-sky":"Services_theme-sky__jJboh"}},4998:function(e){e.exports={section:"ServicesCaseStudies_section__5TKp9",intro:"ServicesCaseStudies_intro__oDwJq",title:"ServicesCaseStudies_title__xei4N",subtitle:"ServicesCaseStudies_subtitle__edQx5",grid:"ServicesCaseStudies_grid__4NXip","cta-wrap":"ServicesCaseStudies_cta-wrap__N6gGa",cta:"ServicesCaseStudies_cta___lbQD"}},9524:function(e){e.exports={section:"SimilarPosts_section__0OYAG",inner:"SimilarPosts_inner__wbH1Z",intro:"SimilarPosts_intro__kQtXu",subtitle:"SimilarPosts_subtitle__T9Jh9",blog_intro:"SimilarPosts_blog_intro__qeyx9",blog_link:"SimilarPosts_blog_link__rxAz_","focus-visible":"SimilarPosts_focus-visible__o2A0j",blog_link_icon:"SimilarPosts_blog_link_icon__GxgSz",grid:"SimilarPosts_grid__F1XVp",cta:"SimilarPosts_cta__mJYn_"}}},function(e){e.O(0,[2962,8796,2018,9887,2888,9774,179],function(){return e(e.s=1980)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.