PageSourceSearch

https://ivorysoft.co/_next/static/chunks/pages/portfolio/powerwatts-f804a3e60481bf29.js

js ivorysoft.co collected 2026-10-07 00:39:48 UTC 19,424 bytes, 21 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5812],{94612:function(i,e,t){"use strict";t.d(e,{W:function(){return w}});var n=t(41664),a=t.n(n),o=t(51192),s=t(6720),d=t(18269),r=t(10733),p=t(94203),l=t(85893);let m=o.ZP.div.withConfig({displayName:"HandleCurrentPortfolio__Container",componentId:"sc-1j2fyiy-0"})(["position:absolute;bottom:348px;left:50%;transform:translateX(-50%);display:flex;justify-content:space-between;width:100%;max-width:calc(100% - 34px);@media (min-width:329px){bottom:307px;}@media (min-width:389px){bottom:266px;}@media (min-width:726px){bottom:224px;}@media (min-width:768px){bottom:284px;}@media (min-width:1200px){bottom:495px;}@media (min-width:1344px){bottom:440px;}@media (min-width:","){max-width:calc(100% - 42px);}@media (min-width:","){max-width:1200px;}"],r.ZP.M,r.ZP.XL),c=o.ZP.div.withConfig({displayName:"HandleCurrentPortfolio__ArrowContainer",componentId:"sc-1j2fyiy-1"})(["display:flex;flex-direction:row;align-items:center;gap:11px;cursor:pointer;@media (min-width:","){padding:0 120px;gap:12px;}@media (min-width:","){padding:0;}"],r.ZP.XL,r.ZP.XXL),h=o.ZP.img.withConfig({displayName:"HandleCurrentPortfolio__ArrowRight",componentId:"sc-1j2fyiy-2"})(["width:28px;height:16px;order:1;"]),x=(0,o.ZP)(h).withConfig({displayName:"HandleCurrentPortfolio__ArrowLeft",componentId:"sc-1j2fyiy-3"})(["transform:rotate(180deg);order:initial;"]),g=o.ZP.span.withConfig({displayName:"HandleCurrentPortfolio__Text",componentId:"sc-1j2fyiy-4"})(["font-family:'Gilroy-Medium';font-size:16px;line-height:19px;color:",";@media (min-width:","){font-size:24px;line-height:29px;}"],i=>i.color||s.Z.burntSienna,r.ZP.XL),f=o.ZP.div.withConfig({displayName:"HandleCurrentPortfolio__Placeholder",componentId:"sc-1j2fyiy-5"})(["width:28px;height:16px;pointer-events:none;"]),w=i=>{let{id:e,color:t}=i,{prev:n,next:o}=(i=>{let e=p._M.findIndex(e=>e.id===i),t=p._M[e+1]||p._M[0],n=p._M[e-1]||p._M[p._M.length-1];return{prev:p.Zg[n.id],next:p.Zg[t.id]}})(e);return(0,l.jsxs)(m,{children:[n?(0,l.jsx)(a(),{href:n.path,as:n.path,children:(0,l.jsxs)(c,{children:[(0,l.jsx)(x,{src:d.HZ.LONG_ARROW,alt:`open ${n.name} page`}),(0,l.jsx)(g,{color:t,children:n.name})]})}):(0,l.jsx)(f,{}),o?(0,l.jsx)(a(),{href:o.path,as:o.path,children:(0,l.jsxs)(c,{children:[(0,l.jsx)(h,{src:d.HZ.LONG_ARROW,alt:`open ${o.name} page`}),(0,l.jsx)(g,{color:t,children:o.name})]})}):(0,l.jsx)(f,{})]})}},73844:function(i,e,t){"use strict";let n;t.r(e),t.d(e,{default:function(){return id}}),t(67294);var a,o=t(43640),s=t(3674),d=t(51192),r=t(10733),p=t(90064),l=t(6720),m=t(85893);let c=d.ZP.section.withConfig({displayName:"MainScreen__Container",componentId:"sc-9zqh51-0"})(["padding:0 16px;@media (min-width:","){padding:0 20px;}@media (min-width:","){padding:0 120px;}@media (min-width:","){padding:0 calc((100% - 1200px) / 2);max-width:1200px;}"],r.ZP.M,r.ZP.XL,r.ZP.XXL),h=d.ZP.img.withConfig({displayName:"MainScreen__Logo",componentId:"sc-9zqh51-1"})(["margin:0 0 24px;height:26px;@media (min-width:","){margin:0 0 40px;height:43px;}"],r.ZP.M),x=d.ZP.h1.withConfig({displayName:"MainScreen__Title",componentId:"sc-9zqh51-2"})(["margin:0 0 24px;font-family:",";font-size:16px;line-height:22px;letter-spacing:-0.3px;@media (min-width:","){margin:0 0 40px;font-size:24px;line-height:33px;}@media (min-width:","){font-size:34px;line-height:46px;}"],p.uP.BOLD,r.ZP.M,r.ZP.XL),g=d.ZP.p.withConfig({displayName:"MainScreen__Description",componentId:"sc-9zqh51-3"})(["margin:0 0 32px;font-family:",";font-size:16px;line-height:22px;letter-spacing:-0.3px;@media (min-width:","){margin:0 0 40px;font-size:18px;line-height:25px;}"],p.uP.MEDIUM,r.ZP.M),f=d.ZP.ul.withConfig({displayName:"MainScreen__List",componentId:"sc-9zqh51-4"})(["padding:0;margin:0;list-style:none;display:flex;gap:16px 40px;flex-wrap:wrap;@media (min-width:","){gap:40px 80px;}@media (min-width:","){gap:60px 80px;}"],r.ZP.M,r.ZP.XL),w=d.ZP.li.withConfig({displayName:"MainScreen__Item",componentId:"sc-9zqh51-5"})(["font-family:",";display:flex;flex-direction:column;gap:4px;&:last-child{gap:16px;& p{font-family:",";font-size:16px;line-height:22px;@media (min-width:","){font-family:",";font-size:18px;line-height:25px;}}}"],p.uP.BOLD,p.uP.MEDIUM,r.ZP.M,p.uP.BOLD),u=d.ZP.h6.withConfig({displayName:"MainScreen__Question",componentId:"sc-9zqh51-6"})(["font-size:12px;line-height:16px;color:",";@media (min-width:","){font-family:",";font-size:14px;line-height:19px;}"],l.Z.dustyGray,r.ZP.M,p.uP.BOLD),y=d.ZP.p.withConfig({displayName:"MainScreen__Answer",componentId:"sc-9zqh51-7"})(["font-family:",";font-size:14px;line-height:19px;color:",";@media (min-width:","){font-size:18px;line-height:25px;}"],p.uP.BOLD,l.Z.mineShaft,r.ZP.M),P=i=>{let{info:e}=i;return(0,m.jsxs)(c,{children:[(0,m.jsx)(h,{src:e.logo,alt:"powerwatts logo"}),(0,m.jsx)(x,{children:e.title}),(0,m.jsx)(g,{children:e.description}),(0,m.jsx)(f,{children:e.qna.map(i=>(0,m.jsxs)(w,{children:[(0,m.jsx)(u,{children:i.question}),(0,m.jsx)(y,{children:i.answer})]},i.question))})]})}
1,_=d.ZP.section.withConfig({displayName:"ListWithIcon__Container",componentId:"sc-t0ycxc-0"})(["padding:0 16px;@media (min-width:","){padding:0 20px;}@media (min-width:","){padding:0 120px;}@media (min-width:","){padding:0 calc((100% - 1200px) / 2);max-width:1200px;}"],r.ZP.M,r.ZP.XL,r.ZP.XXL),Z=d.ZP.h2.withConfig({displayName:"ListWithIcon__Title",componentId:"sc-t0ycxc-1"})(["margin:0 0 40px;font-family:",";font-size:34px;line-height:46px;letter-spacing:-0.3px;text-transform:uppercase;color:",";@media (min-width:","){margin:0 0 60px;}"],p.uP.EXTRA_BOLD,l.Z.green,r.ZP.XL),L=d.ZP.ul.withConfig({displayName:"ListWithIcon__List",componentId:"sc-t0ycxc-2"})(["list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px;",""],i=>{let{isMargin:e}=i;return e&&`
2    margin: 0 0 80px;
3
4    @media (min-width: ${r.ZP.M}) {
5      margin: 0 0 120px;
6    }
7
8    @media (min-width: ${r.ZP.XL}) {
9      margin: 0 0 80px;
10    }
11  `}),I=d.ZP.li.withConfig({displayName:"ListWithIcon__Item",componentId:"sc-t0ycxc-3"})(["display:flex;gap:8px;@media (min-width:","){gap:16px;align-items:center;}"],r.ZP.M),C=d.ZP.img.withConfig({displayName:"ListWithIcon__Icon",componentId:"sc-t0ycxc-4"})(["height:24px;@media (min-width:","){height:32px;}"],r.ZP.M),j=d.ZP.p.withConfig({displayName:"ListWithIcon__Text",componentId:"sc-t0ycxc-5"})(["font-family:",";font-size:16px;line-height:22px;letter-spacing:-0.3px;@media (min-width:","){font-size:18px;line-height:25px;}"],p.uP.REGULAR,r.ZP.M),b=d.ZP.div.withConfig({displayName:"ListWithIcon__AdditionalContainer",componentId:"sc-t0ycxc-6"})(["padding:24px 20px;position:relative;display:flex;flex-direction:column;align-items:center;gap:24px;font-size:16px;line-height:22px;letter-spacing:-0.3px;background:rgba(31,207,10,0.07);border-radius:20px;@media (min-width:","){flex-direction:row;}@media (min-width:","){padding:60px 68px 60px 45px;}"],r.ZP.M,r.ZP.XL),v=d.ZP.p.withConfig({displayName:"ListWithIcon__AdditionalTitle",componentId:"sc-t0ycxc-7"})(["font-family:",";white-space:pre;text-align:center;@media (min-width:","){min-width:137px;width:137px;white-space:normal;text-align:left;}@media (min-width:","){min-width:212px;width:212px;font-size:24px;line-height:33px;}"],p.uP.MEDIUM,r.ZP.M,r.ZP.XL),M=d.ZP.p.withConfig({displayName:"ListWithIcon__AdditionalDescription",componentId:"sc-t0ycxc-8"})(["padding:24px 0 0;font-family:",";text-align:center;border-width:1px 0 0 0;border-style:solid;border-color:rgba(80,121,77,0.2);@media (min-width:","){padding:0 0 0 24px;border-width:0 0 0 1px;}@media (min-width:","){padding:0 0 0 70px;font-size:24px;line-height:33px;}"],p.uP.BOLD,r.ZP.M,r.ZP.XL),N=i=>{let{info:e}=i;return(0,m.jsxs)(_,{children:[(0,m.jsx)(Z,{children:e.title}),(0,m.jsx)(L,{isMargin:!!e.additional,children:e.list.map(i=>(0,m.jsxs)(I,{children:[(0,m.jsx)(C,{src:e.icon,alt:"list-item"}),(0,m.jsx)(j,{children:i})]},i))}),e.additional&&(0,m.jsxs)(b,{children:[(0,m.jsx)(v,{children:e.additional.title}),(0,m.jsx)(M,{children:e.additional.text})]})]})},z=d.ZP.section.withConfig({displayName:"Review__Container",componentId:"sc-16c88sv-0"})(["padding:0 16px;@media (min-width:","){padding:0 20px;}@media (min-width:","){padding:0 120px;}@media (min-width:","){padding:0 calc((100% - 1200px) / 2);max-width:1200px;}"],r.ZP.M,r.ZP.XL,r.ZP.XXL),E=d.ZP.h2.withConfig({displayName:"Review__Name",componentId:"sc-16c88sv-1"})(["margin:0 0 8px;font-family:",";font-size:24px;line-height:33px;@media (min-width:","){font-size:28px;line-height:38px;}@media (min-width:","){font-size:40px;line-height:55px;}"],p.uP.EXTRA_BOLD,r.ZP.M,r.ZP.XL),X=d.ZP.h3.withConfig({displayName:"Review__Position",componentId:"sc-16c88sv-2"})(["margin:0 0 24px;font-family:",";font-size:14px;line-height:19px;color:",";@media (min-width:","){font-size:16px;line-height:22px;}@media (min-width:","){margin:0 0 40px;}"],p.uP.BOLD,l.Z.grey,r.ZP.M,r.ZP.XL),R=d.ZP.h6.withConfig({displayName:"Review__ReviewTitle",componentId:"sc-16c88sv-3"})(["margin:0 0 8px;font-family:",";font-size:12px;line-height:16px;color:",";"],p.uP.BOLD,l.Z.green),T=d.ZP.p.withConfig({displayName:"Review__ReviewText",componentId:"sc-16c88sv-4"})(["font-family:",";font-size:16px;line-height:22px;"],p.uP.BOLD),S=i=>{let{info:e}=i;return(0,m.jsxs)(z,{children:[(0,m.jsx)(E,{children:e.name}),(0,m.jsx)(X,{children:e.position}),(0,m.jsx)(R,{children:e.title}),(0,m.jsx)(T,{children:e.description})]})},A=d.ZP.section.withConfig({displayName:"Features__Container",componentId:"sc-1h5utx2-0"})([""]),k=d.ZP.h2.withConfig({displayName:"Features__Title",componentId:"sc-1h5utx2-1"})(["margin:0 0 40px;padding:0 16px;font-family:",";font-size:34px;line-height:46px;letter-spacing:-0.3px;text-transform:uppercase;color:",";@media (min-width:","){padding:0 20px;margin:0 0 60px;}@media (min-width:","){padding:0 120px;}@media (min-width:","){padding:0 calc((100% - 1200px) / 2);max-width:1200px;}"],p.uP.EXTRA_BOLD,l.Z.green,r.ZP.M,r.ZP.XL,r.ZP.XXL),F=d.ZP.ul.withConfig({displayName:"Features__FeaturesList",componentId:"sc-1h5utx2-2"})(["padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:40px;@media (min-width:","){gap:80px;}@media (min-width:","){gap:150px;}"],r.ZP.M,r.ZP.XL),O=d.ZP.li.withConfig({displayName:"Features__FeatureContainer",componentId:"sc-1h5utx2-3"})(["padding:20px 16px 16px;background-color:rgba(221,238,215,0.3);@media (min-width:","){padding:36px 32px 32px;}@media (min-width:","){padding:64px 180px 60px;}@media (min-width:","){padding:64px calc((100% - 1200px) / 2) 60px;max-width:1200px;}"],r.ZP.M,r.ZP.XL,r.ZP.XXL),W=d.ZP.img.withConfig({displayName:"Features__FeatureExample",componentId:"sc-1h5utx2-4"})(["width:100%;"]),D=d.ZP.ul.withConfig({displayName:"Features__List",componentId:"sc-1h5utx2-5"})(["padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:20px;@media (min-width:","){gap:24px;}",";"],r.ZP.M,i=>{let{isMargin:e}=i;return e&&`
12    margin: 0 0 24px;
13
14    @media (min-width: ${r.ZP.M}) {
15      margin: 0 0 32px;
16    }
17
18    @media (min-width: ${r.ZP.XL}) {
19      margin: 0 0 60px;
20    }
21 `}),U=i=>{let{info:e}=i;return(0,m.jsxs)(A,{children:[(0,m.jsx)(k,{children:e.title}),(0,m.jsx)(F,{children:e.list.map(i=>(0,m.jsxs)(O,{children:[(0,m.jsx)(D,{isMargin:!!i.image,children:i.items.map(i=>{let t="string"==typeof i?i:i.title;return(0,m.jsx)(Q,{item:i,itemIcon:e.icon},t)}
21)}),i.image&&(0,m.jsx)(W,{src:i.image,alt:"application example"})]},i.key))})]})};var q=t(25935);let B=d.ZP.li.withConfig({displayName:"FeatureListItem__Item",componentId:"sc-da5cg6-0"})(["position:relative;display:flex;align-items:flex-start;gap:16px;"]),G=d.ZP.img.withConfig({displayName:"FeatureListItem__Point",componentId:"sc-da5cg6-1"})(["padding-top:2.5px;"]),H=d.ZP.p.withConfig({displayName:"FeatureListItem__Text",componentId:"sc-da5cg6-2"})(["font-family:",";font-size:18px;line-height:25px;letter-spacing:-0.3px;.green{color:",";}.bold{font-family:",";font-style:italic;}"],p.uP.REGULAR,l.Z.pastelGreen,p.uP.BOLD),$=d.ZP.div.withConfig({displayName:"FeatureListItem__SubListContainer",componentId:"sc-da5cg6-3"})(["display:flex;flex-direction:column;gap:16px;"]),K=d.ZP.ul.withConfig({displayName:"FeatureListItem__SubList",componentId:"sc-da5cg6-4"})(["padding:0 0 0 36px;margin:0;list-style:disc;display:flex;flex-direction:column;gap:8px;@media (min-width:","){padding:0 0 0 44px;}@media (min-width:","){padding:0 0 0 48px;}"],r.ZP.M,r.ZP.XL),J=d.ZP.li.withConfig({displayName:"FeatureListItem__SubListItem",componentId:"sc-da5cg6-5"})(["font-family:",";font-size:18px;line-height:25px;letter-spacing:-0.3px;"],p.uP.REGULAR),Q=i=>{let{item:e,itemIcon:t}=i;return"string"==typeof e?(0,m.jsxs)(B,{children:[(0,m.jsx)(G,{src:t,alt:"list-item"}),(0,m.jsx)(H,{children:(0,q.ZP)(e)})]}):(0,m.jsxs)(B,{children:[(0,m.jsx)(G,{src:t,alt:"list-item"}),(0,m.jsxs)($,{children:[(0,m.jsx)(H,{children:(0,q.ZP)(e.title)}),(0,m.jsx)(K,{children:e.additionalList.map(i=>(0,m.jsx)(J,{children:i},i))})]})]})};var Y=t(94203);(a=n||(n={})).LOGO="/img/Powerwatts/logo-powerwatts.svg",a.ARROW="/img/Powerwatts/arrow-icon.svg",a.CHECK="/img/Powerwatts/check-icon.svg",a.GOAL="/img/Powerwatts/goal-icon.svg",a.FEATURES_1="/img/Powerwatts/features-1.webp",a.FEATURES_2="/img/Powerwatts/features-2.webp",a.FEATURES_3="/img/Powerwatts/features-3.webp",a.FEATURES_4="/img/Powerwatts/features-4.webp",a.FEATURES_5="/img/Powerwatts/features-5.webp";let V={id:Y.z5.POWERWATTS,mainScreen:{logo:n.LOGO,title:"Top-notch indoor cycling app for high-performers and not only",description:"The ultimate app for at-home training with online live classes, coached workout videos, and a colossal training library.",qna:[{question:"Industry",answer:"Sports, Fitness, Coaching"},{question:"Type of project",answer:"Web/iPad app development"},{question:"Project background:",answer:"PowerWatts is a Canadian sports-technology company that offers one of the most effective indoor cycling training solutions across the globe. The client came with the app’s prototype without design and with a bad codebase. The feature set was basic, such as connecting to a cycle, with no metrics and record system integrated. "}]},goals:{title:"goals:",list:["Full optimization of the whole user experience","Expand the feature set","Transition to React Native Web platform","iPad adaptation","Setting a huge number of calculations per second and their optimization in frontend","Integrate metrics, and make them loggable each second without compromising an interface and overall performance","Integrate the record system, previously hosted on an external app"],icon:n.GOAL,additional:{title:"A fully customized app for \ncycling at home or in the gym",text:"“Simply the best indoor training system. With a busy schedule, I get \nthe most out of my training each and every time. Even though I’m no \nprofessional athlete, it feels great to be treated as such.” \n— Ghislain Grandisson, business owner"}},userReview:{name:"James Smith",position:"Professional triathlete",title:"Story",description:"“I’m a professional triathlete and this thing is just a godsend. Literally! What we do need when prepping for cycle races is clarity on speed, power, cadence, and other metrics. So, this app helps significantly assess where you are right now and plan steps to perform better”."},features:{title:"features:",list:[{key:"features-1",items:["Subscription-based use","Complete compatibility with cycles for the best possible data logging and processing",{title:"Connection of Bluetooth devices to read metrics and provide the most accurate data:",additionalList:["Smart Trainer","Power Meter","Heart Rate Meter","Speed and Cadence Sensor"]}],image:n.FEATURES_1},{key:"features-2",items:["Metrics are being logged every second, and users can check them out"],image:n.FEATURES_2},{key:"features-3",items:["Tell-all stats in the gauge","Metrics essential for efficient training: speeds, pulse, power, cadence, pace, etc.","Every second of training is logged for users to check performance and modify plans"],image:n.FEATURES_3},{key:"features-4",items:["Introduction workouts to make you aware of how it all works"],image:n.FEATURES_4},{key:"features-5",items:[{title:"Training plans allow you to pick between different types of training prepped by a co
21ach or by a rider themselves:",additionalList:["Intro Program - 15-min introductory workouts","CP20m Program - ‘Your maximal power for 20 minutes’ program","PowerWatts 21-22 - Particular set of coached workouts"]}],image:n.FEATURES_5},{key:"features-6",items:['<span className="green bold">Live Classes</span> allow connecting to a cycling group in real-time, getting support from like-minded fellows and guidance from a coach','<span className="green bold">All video workouts</span> - all videos available where a coach comments on exact steps at each particular stage or level of workout. Therewith, time spans are synchronized with the ones of workouts and riders see clearly where to go lighter or push harder.','<span className="green bold">Solo workouts vs video coach</span> means users get coaching notes and start the ride on their own or get synchronized video comments from an expert throughout the ride','<span className="green bold">TrainingPeaks Workouts</span> are exercises from the same-name platform that provides different training plans. The app suggests using it within the PowerWatts ecosystem for users to get as more customized solutions as possible and to get the most out of their rides.']}],icon:n.ARROW},results:{title:"results:",list:["Powerful infrastructure for complicated calculations and their logs","Unique, customized approach toward training","Excellent calculations optimization in frontend","Incredible feature set","Approved by the performance director for the world tour team Israel start-up nation","Used to coach such athletes as Chris Froome, Dan Martin, and Michael Woods in real-time."],icon:n.CHECK}};var ii=t(1844),ie=t(94612),it=t(93360);let ia=d.ZP.div.withConfig({displayName:"powerwatts__Container",componentId:"sc-1bgrsue-0"})(["padding:76px 0 0;overflow:hidden;position:relative;font-family:",";@media (min-width:","){padding:140px 0 0;}@media (min-width:","){padding:210px 0 0;}@media (min-width:","){padding:210px 0 0;}"],p.uP.REGULAR,r.ZP.M,r.ZP.XL,r.ZP.XXL),io=d.ZP.div.withConfig({displayName:"powerwatts__ContentContainer",componentId:"sc-1bgrsue-1"})(["display:flex;flex-direction:column;gap:80px;@media (min-width:","){gap:120px;}@media (min-width:","){gap:200px;}"],r.ZP.M,r.ZP.XL),is={default:{top:"8px",bottom:"32px",left:"16px",right:"16px"},M:{top:"0"}};var id=()=>{let{id:i,mainScreen:e,goals:t,userReview:n,features:a,results:d}=V;return(0,m.jsx)(s.A,{whiteNavbar:!1,documentTitle:o.N.portfolioPowerwatts.title,documentDescription:o.N.portfolioPowerwatts.description,canonical:o.N.portfolioPowerwatts.canonical,children:(0,m.jsxs)(ia,{children:[(0,m.jsx)(it.sg,{containerIndents:is}),(0,m.jsxs)(io,{children:[(0,m.jsx)(P,{info:e}),(0,m.jsx)(N,{info:t}),(0,m.jsx)(S,{info:n}),(0,m.jsx)(U,{info:a}),(0,m.jsx)(N,{info:d})]}),(0,m.jsx)(ie.W,{id:i}),(0,m.jsx)(ii.SolutionsBlock,{isMainPage:!0})]})})}},88325:function(i,e,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/portfolio/powerwatts",function(){return t(73844)}])}},function(i){i.O(0,[872,1616,331,5935,3674,1516,3360,9774,2888,179],function(){return i(i.s=88325)}),_N_E=i.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.