---
title: "Unpack the Stack w/ Tomek Juranek"
description: "Livestream guest: Tomasz Juranek, CTO of Include Agency https://twitter.com/tjWhuu Livestream Host: Tim Benniks"
date: "2023-02-17T05:59:54.000Z"
url: "https://timbenniks.dev/videos/live-uniform/014-0xsg-apdt6c"
youtube_url: "https://www.youtube.com/watch?v=0XSG-apDT6c"
playlist: "live-uniform"
duration: "52:11"
image: "https://img.youtube.com/vi/0XSG-apDT6c/hqdefault.jpg"
tags: ["composable-architecture", "cms", "content-ops", "performance", "cloud-infra"]
---

# Unpack the Stack w/ Tomek Juranek

Livestream guest: Tomasz Juranek, CTO of Include Agency https://twitter.com/tjWhuu Livestream Host: Tim Benniks

Watch on YouTube: https://www.youtube.com/watch?v=0XSG-apDT6c

## Transcript

[Music] thank you [Music] [Music] foreign and I'm trying to think of your last name but I will butcher it so before we do anything say your name the way it's supposed to be said please yeah of my official name is there you go it's very hard to pronounce so everyone called like called me tomek because it's okay it's easier and so when you have your social media profiles is it tomek or tomash uh like I think the LinkedIn is Thomas but there is a serious one yeah there you go yeah I have a bunch of friends who are from Poland and they kind of somehow changed their first name here and there based on how people read it or and I always have fun trying to pronounce you know what today I'm not gonna try because yours is just that one more harder so much I can probably do anyways so um please tell us what you do where you work and also what we will talk about today uh yes so as you said I'm from Poland I live like in the South part of the country very very near the track border I think around 20 kilometers from oh yeah I love to go there usually uh yes so and I'm CTO of include agency um we are like not the biggest one but I think quite quite a good software house we are sidecar and uniform partners yes I like to hear this yeah and today I think we will talk about our journey how we implemented uniform how we move to from from traditionalists server-side rendering to to jumpstack with static generation and basically how this this is about the um quite a large Cyclone implementation with a lot of custom logic a lot of like multi-tenants multi languages um so basically a pretty challenging but but at the end yeah we we managed to to to to to do it yeah and we we like improved with with with with with uniform yeah that sounds really interesting so I've seen in the past and I've been part of um when I worked at agencies building these larger platforms for brands that have like multi-tenant multi-language lots of markets and we were always kind of fighting with performance and ease of use and um that was before I worked for for uniform so we had to kind of deal with how sitecore did that stuff because of course it has a lot of benefits for Content editors and it's very solid it works really well it has all these abilities to be able to kind of customize things different pipelines the whole thing right and so when you are faced with a project like this let me just add a little Banner here so why did you actually choose uniform what was the the reasoning to to use uniform to actually render um the front end for your side core project yes so you mentioned that with the with this large scale there are there are problems yeah because you add a lot of your custom Logic on top of the of site core uh and it became slower and slower and also if that the easiest way to to to fight with with this is just add more and more um servers yeah so if you just increase cost of hosting and and but still if if if something happens and we have like a huge marketing campaign your website still can go down yeah so you're saying if you don't have if so it like traditionally sidecar is a server-side rendered page on runtime of course yeah and so you're saying if you have just too many visitors it just takes too long to start rendering these pages so you add more servers with a load balancer somehow to make that work so yeah tricky question why not just put a CDN in front of it to make it super static yeah and this is this is I like the easiest solution yeah just just do it yeah but yeah so we use uh a lot of personalization and we I had we we used I think 90 of the of the rules of different possible type of rules which sidecar offers yeah we we rendered we we personalize based on the current session we personally it's based on history yes oh yeah so every page becomes Dynamic essentially yes exactly yeah so we've just switching on CTN to Cache HTML we would just lose all of them ah yeah and so basically and for the people who are watching who don't really know about this personalization thing but if you want good conversion if you want actually people to buy something the more you personalize I think there's like 19 increase of conversion or something yeah exactly if you have a lot of websites with a lot of products 19 is pretty good right yeah so for example yeah you can personalize based on the location of the visitor this is this is type of the session based personalization yeah but you can also personalize based on the history of this visitor like for example yeah people go to your to your booking process here and they didn't finish this booking process you record it and then when they go back to the website you just first you can display different content for them yeah and we have we we have all those scenarios yeah we we need to support those all those scenarios something definitely happened with our internet um let me just ask uh Tommy is back oh what happened yeah I think it's on my side because I live in the countryside and it's cold so internet is more difficult I take the blame for this one I do apologize we are back and we still have some some Watchers so please I don't know how far you got before we both realized we didn't have enough internet anymore but let's let's just pick it up where you feel like you want to continue um yeah so I mentioned about the personalization the different types yes so one of them were session based like with based on Geo for example like to show different content based the visitor country but also we had a personalization based on the on this on the history like uh the visitor go to the booking process they didn't finish this booking process we recorded it and then after a few days when he get back to the website we just showed them different content yeah exactly we've just without keeping the personalization features we yeah and we would lose all of all of this exactly and so when we're thinking about a project with this size and also of course there's lots of business rules that this customer has in mind user Journeys things like that but also on the tech side with scale and side core and how to deal with all that so what were the like the main challenges that you saw on this project Yeah so basically a cycle is a great platform yeah it it encourage you to build a custom logic yeah it's super flexible yeah and this is like super great but also people tends to build everything on top of sitecore yeah exactly and when you like move this to the static generation you just realize oh I have a lot of logic right now yes and I need to do something with with this logic here because with with statically generated Pages you push them to some storage which then it's cash on CDN and basically the only thing which you can do with with this is just to get those HTML files yeah exactly it is what it is yeah and for for like for the regular sitecore developer is oh no what's what it's a different life now because they're kind of used to I have run time which means I have an application that is on so I can do things but then if you have to serve this to a user an end user and there's many of these users that logic just makes everything slow I imagine Yeah so basically you have three options yeah with your custom logic you can uh if you if you feel that the logic is too complicated yeah you you are not ready to um to move it to the static static Pages you can just on your CDN you can just restrict the um the URLs and you you can you can for example move the based on the on the URL you can have two Origins you can move to the static pages and for for example for your shopping cart for your payment page for your user profile page you can just still redirect those URLs to to your uh site content delivery server yeah so this is the the easiest approach yeah but uh I think the this is the the this is that like your Lifesaver yeah yeah but fallback exactly so uh also you can just change this logic and make it like client friendly so you can you can change it to some apis and just use the client-side call it from the client side yeah so you can still have the most of the your your page your navigation your static component uh cached on CDN and stuff will be generated but your custom logic will be just called from the client apis yeah and this is like this may also be tricky for example uh with with with our project and we had we have a logic which is displaying different currencies prices in different currencies based on your your country and we had some currency exchange API and you you know the the different rates they update for example daily yeah yeah and uh when we migrated this to the to the static generated Pages like our QA didn't find did it find the the the the problem there because usually when when you have a QA team they just rebuild and the content every like few hours yeah they tell you a lot and they didn't find that this API actually is it's still like uh was moved to the status to from the server side rendering to the static regenerated page and they didn't find that the currency was not updated updating yeah daily and when we went live after a week or two weeks like some like marketers or business users came to us this price is not not right yeah it's not the right price yeah yeah there you go seven seven or seven or two or three days behind here because it was like statically generated yeah we didn't realize it the way to solve that would be maybe you could put the base thing on whenever you render it and then you so on static right and then you go to that page and then you just use an HTTP call in your JavaScript yeah query the stuff and put it on that's a very different approach than the building of course this is how we this is how we solve it but the problem was to find it yeah because yeah if you're not used to that and approach of building websites because everything is one big black magical box that is sitecore suddenly your mind has to change so much exactly yeah exactly and so when you're thinking on a website like this I can imagine there's a ton of forms like maybe login registration or maybe get this free sample blah blah blah or discount or whatever there must be some forms and as the people watching if you know sitecore and you know forms there's pain so I kind of want to know how you dealt with forms first of all in the side core side of things but then also how did you put them in these statically rendered pages uh yeah so we have like both custom forms and the forms uh generated with from sidecar with with site conforms module so with with custom forms it's pretty simple yeah you just need to make sure that every form has the this action attribute because when you pause this form you no longer can post it to the your MVC controller and because this is usually it doesn't exist exactly how how it was done yeah you are on like contact us page and when you submit it it was like posted automatically to your MVC controller with this name yeah exactly no longer have it yeah so you need to have an action attribute to to tell the browser where to post the form yeah so and so how did you solve that did you post it to some system somewhere that would then just redirect the user back and say hey it was cool or did you do like an Ajax call maybe and then give back a certain status that you could change the front end how did that work so so exactly yeah so we had some API we um where all this is like Logic for the posting the data where it was executed and yeah afterwards we just uh send to some status status to front end for example we send the redirect URL where this where to redirect the user after this submitting of the form and it it worked like this yeah and so how does that work when you're let's say you're a front-end developer you're inside your jss so you're inside core land you're using react with these lovely components that they offer you in jss which is all cool so then suddenly when you have to post this form you have to build some custom JavaScript to actually do an Ajax call and refresh the thing and all of that how did the front-end developers experience that because if you're just a sitecore developer or not just if you are if you have a specialty there um you don't do it that way because you expect MVC so was it quite strange for them to kind of step out of that or how does that work yeah so maybe a little bit context of of our project so our project in our project we mod most of our front-end was already built in the Headless way yes we had our in-house um front-end framework which was based on on react we had from from from from the CMS site we had um some kind of headless solution it was pre before side core actually built jss okay and as part of our transition to static generation and to uniform we move this to next.js we move our front end to next.js and we actually moved our content delivery part to to jss yeah to do two layout service yeah yeah basically you just use the layout service I imagine yeah yeah exactly and to answer your question about our front-end guys yeah they were used to to like use some some uh front-end libraries yeah to to post the data yeah so can you imagine if you already have an in-house um like library of components you have built that in a way that it can be in multiple projects so I imagine those already solid so the only thing you kind of had to do is map it to whatever sitecore comes up with and say hey there's this component put it in and then you can edit it inside core so you went the other way around where lots of people say let's put sitecore then sxa then jss and then you just get the components and you deal with it that's that's the opposite direction I guess yeah and with sitecore forms actually uh there is a different problem with site code forms yeah because out of the box when you post the data with sitecore forms there is this anti-forgery token validation yes there is the uh there is a token in your cooking there is a token on in the in your form body like a hidden field or something right yeah exactly and when you statically generate this that oh no that doesn't work exactly because the value will always be the same yeah yeah so it will never match the the one in with the cookia so but they but uh with I found some project in in the internet from the cycle Community which is called which was related with um client-side placeholder so basically okay this is this is insightful there is this concept of placeholders components yeah um and traditionally you just rendered everything with server-side rendering but and when we transition to to static generation all our placeholders all our components were just statically created during the build time but for this special placeholder we rendered the the component which is inside there in the like old way so we render it client-side yeah so basically with this approach and the um the side core forms module which which was built for jss we managed to to to to to to fix this issue with with the anti-fold token yeah so we still kept the the validation but it right now works yeah that's uh interesting to hear how much kind of I call it jumping back through a hoop you kind of have to do to actually squeeze the performance out of this and so there's a bit of a cheeky question here so did you choose sitecore for this whole product just because your agency is amazing at it and you have all the things in place or did the customer maybe come with it and say hey we have this thing we have side core make it happen so what was the decision-making process there um so I think it's it's it's a different story and this this customer was tradition traditionally on South Korea so okay so they came from that point yeah so so they they had like sidecar version or whatever then they they had site conversion nine then upgraded to cycle version 10. so that there were always with sitecore and this is like for those huge companies yeah it's like it's very hard to to to to to to change yeah to go somewhere else and you know what I found they can point the finger to sidecar and say something is wrong get me Professional Services right now which is the best thing you are should be able to do when you're a big company with such a big contract so it kind of makes sense right yeah but but also you know on the other side with those big customers they built a lot of custom logic yeah yeah custom Logic on your website to customize the CMS yeah so that's why we we are there uh to to help them with with with this yeah um and also yeah if we are talking about like those differences between the static generation static generation and server-side rendering and this is not not like for sitecore but in general yeah uh you need to think about moving some logic to CDN level yeah for example traditionally in side core you had some module to um to handle the redirects yeah it was like executed on on summer you you define those redirecting inside some content tree and you would just executed them using some some server-side rendering yeah but it no longer works in this world no you somehow now have to maybe configure it inside core and then push like a redirect file to your CDN or maybe using API on publish yeah there's lots of different things you have to think about now yeah the 404 page yeah it will work differently the debt alone a 404 in cycle to me was always interesting because what happens in my experience is you go to a pace that doesn't exist it returns you a 200 error then with the 302 goes to a 404 page it gives you a 404 header yeah to me I've never understood that but I think it's dotnet that does that right uh yeah but you can also like customize it yeah us yeah customize everything yeah so exactly but yeah in general with the like modern uh cdns that you can you can do a lot of of logic ons yes on CDN level yeah exactly at CDN level yeah so for example uh we we use Akamai CDN and on comma icdn you can there is something called Edge redirect cloudlet or something like this so this is a very simple tool to just uh Define your your redirects and it's like very like very user friendly so even like our marketers can can use it yeah so and so they go to Akamai and add it there or they do it through sitecore um they like you can upload a file with your with your redirects directly to this tool or you can just uh type your redirects directed area so they have just of course they just have access only to this part we don't we don't want them because you answered my next question I like it until the end marketers and SEO people that do redirects all the time and like have some nice URL names that go to more complex ones they always work with Excel files and or whatever anyways so it's probably easier to just give them a way to upload so now that we're talking about the edge in the CDN and stuff let's talk about personalization because to do actually have a static site and then add personalization but without the CDN Edge it's rehydrating with JavaScript so you see flickering on the screen which is not really something you want to be doing right because it's bad for performance yeah so how did you guys do that on the CDN and here the uniform actually helped a lot yeah with this yeah because uh with uniform you can execute the personalization at the edge exactly so for example with on Akamai there is a special like language with with some Condition it's called Akamai ESI Edge site includes and with what uniform does it just help you to translate the personalization rules from side core so your marketers still use sitecore to define those personalization yeah um and then those rules are executed at the edge so there is like zero uh zero like loss of of your of your performance exactly and so what interests me here is like back in the day I used this ESI rules with Akamai for some other project we built when I think was on hybris remember the Java system it still exists I think but anyways that doesn't really matter we didn't know how to purge the cache because if you change the menu we have to approach all the pages of the cache right and this wasn't the static side but we just put the CDN in front of everything so we use these little XML tags for this ESI to actually swap it out and that worked like eight years ago already they did that really well and imagine now that with uniform we are totally using that surface in a very different way but it works so well and so maybe for the people that don't really know what this is like generally when you have a static site every time it renders one of those pages these HTML files it also goes through an edge Handler function and that ad Handler function can then look at whatever comes out of that HTML to see hey do I see ESI text or uniform personalization tags or whatever we want to call them and then it just literally swaps out what needs to be rendered and that's pre-rendered on the edge and so it's so fast because it streams right the HTML is rendered from top to bottom and then right when it hits one of these tags it actually streams in the HTML so the page goes into the browser from top to bottom and I think you can it feels nearly instant I think it's like it adds four milliseconds for each personal decision yeah something like that crazy it's super fast you just don't see it any difference between the page which has the personalization and which which doesn't have it yeah and have you guys also done like some sort of client-side personalization like I I scroll down the page and I scroll back up and suddenly something else has changed because I scrolled past something like client-side stuff is that in there as well or is that a limitation if you want to do it with sitecore so we don't have it probably it can be done like with using some apis going back to sitecore but yeah we we we didn't use such such thing I can imagine it really hard because inside the way cycle personalization works is basically you apply rules to component sets yeah so if you want to add another component you have to duplicate all these rules and so I have colleagues they are and you know them they're basically PhD level personalization rule makers because it's exponential it's there's so many rules and so if you look at more modern personalization tools that's uniform also offers it's much more organic like it's based on actions users take and then its course points against these actions and based on the score it changes the component which is very different of making a ton of rules to say this is then and then and then ills F if else all that stuff but the thing is if you did it that way you weren't in sitecore and so you need to somehow have these cycle rules if people are content editing in there so there's always you know different approaches you can take yeah and yeah on top of that we also kept the tracking from sitecore yeah so we yes so tell us more about that because that's very interesting uh we still have the xtp we have like two tons of visits and uh basically still work with with our static generated Pages yeah so that's very interesting uh here we just reused the layout service yeah the layout Service is like usually you use it to gather the content out of sitecore and to return the Json with your components with your content and yeah and just to have the props in your front and you have to to render them but what it also does is like every call to this layout service can be tracked yes and it just simulates the the page rendering and what we did is like we um for this we we called it this layout service in the background for every page visit but we remove this entire portion of of uh generating of returning the components because it's not it's not needed yeah we know well no that's not because you do it on the edge so there's no need for that yeah we already have this content yeah it's exactly static generated so we only want the tracking here so it it works pretty well yeah I think the the um the request to this layout service takes maybe 200 milliseconds maybe 400 but it doesn't really matter because everything it's like done in background yeah yeah so you send it off and it just disappears at one point but it doesn't change the user's interaction this is the one question I had for you in the past when we used xdb for let's say personalizing a hero right you go to a page normal hero you go to another page you come back and the hero image had changed now because you had visited another page using xdb that added two seconds to our page render so at scale that's not usable so my question was how did you actually manage but you didn't actually use it you just send an event off into the The Ether and you don't care if it finishes or when because it just stores some tracking info right that so that's how you got it to be fast exactly and does this surface always once in a while gets overwhelmed somehow because I can imagine if you send a lot of requests there it's it's going to be hard yeah but you know uh before static generation before uniform we had those those servers and that are in the in the in Azure uh so we had them these were the same servers but they on top of the tracking they also were responsible to study to for the server-side rendering yeah exactly yeah they did much more work yeah so uh because of of moving to to static static generation we were able to reduce the number of of those servers yeah we went down the instances I call that cost saving which is cool yeah exactly and So based on your own timeline we have about six minutes so am I correct yeah cool maybe 10. we might be able to stretch it yeah so I have some questions on um I think we're quite clear about going um in this Direction with server-side rendering or so with not server-side but more static it's the performance is working you've managed to overcome problems it's cheaper to run so when you look at the market right now and you're working at an agency in that field of sitecore Specialists having your MVPs working there what do you like cyborg has been changing quite a bit right there moving from hey use only containers like oh no we're going to do some SAS thing or like it's kind of changing around and they're they'll find their way but how do you see sitecore in the future will you still be using it for all your projects or do you see it maybe going from the elite projects to maybe more mid-market because they cannot compete with the Headless stuff like what is your idea about all this [Music] um I would say that they will find a way somehow to they always have let's be honest like jss is actually very successful just took a while yeah exactly yeah yeah so with their like new offer with XM Cloud which is quite a different product comparing to to to normal site Korea it's like it may looks the same but it has like totally different philosophy behind it so maybe as you said yeah it's it it it's Target it it is Target for maybe the mid Market because cycle was always like for the Enterprise yeah yes yeah this was like for the big big companies um so I think they will they will they they will find a way and they will move it and so if you think about XM Cloud for example in you you know more about that than me so hence me asking so I think they made a deal with like for sale and xgs specifically for this product right and so do they actually have in mind to do um like static rendering for all these pages is that a feature here uh yeah yeah they they offer this yeah basically the uh the static generation yeah this is not a feature of your CMS this is a feature of your front-end framework yeah yes something like that but your CMS or your prop your product which like it needs it need to help you with this yeah because it's it's not so it's not as easy to just you know do the starting generation yeah you for example no it has a lot of issues actually to be fair it's not an easy thing yeah you when you when you think about your content yeah and in this huge website you may have a very complicated content and you need to think about okay I changed like this entity yeah and which page do I need to regenerate here and your your product your CMS your your platform yeah it needs to help you yeah to decide which uh what to generate because you don't want to regenerate everything all the time because it takes a lot of time here look for example yeah if we have like a big website with multi languages yeah with static generation into language is actually different file yeah different folder for example here because yeah each is a different physically file yeah physic file yeah yeah it's an actual thing it makes it easy to scale because you can put them on more places exactly but it is also complicated so so let's imagine that yeah we have like 1000 Pages yeah and uh generation like taking the content from CMS for one page takes let's say 200 milliseconds and which is yeah everything decent yeah and if you like multi multiplayers this 200 with by 1000 yeah it's like between three and four minutes yeah yeah just take the content yeah from this yeah so yeah for the rendering itself exactly um yeah and this is this is actually one of those the problems which we faced yeah so we had to of course yeah you can do it in the parallel yeah yeah you can you you can create the parallel generation but then you need for example you can uh be in the situation that your CMS is no longer able to serve those those requests yeah so you basically can kill your your own CMS you Adidas Yourself by actually rendering everything statically so you have to add some time out of the general regeneration yeah so yeah you need you need to find the bottleneck you need to scale something maybe uh you need to do it in parallel um because if this is this is the issue of of the static generation and that it goes from the server side rendering it puts everything on there on the build time yeah so you need to be also like take care of your content authors yeah they they need to still do their job here and they they cannot wait like 15 minutes to uh to to to see the result yeah so interestingly when you actually add uniform to this mix it gives you a freedom to choose where to render this because if you would go with XM Cloud your only way is for sale yeah but the like the uh way to go is I think the Versa because the documentation is is based on Versa they support different platforms okay they do okay this is like the same with with jss here most of the documentation documentation is for the next JS yeah but it uses yeah yes it works with with angular it works with you but it's quite tricky to do it here because like if you don't have the the all the documentation you just just choose the the best documented platform but but of course it makes sense and also react is used the most um so yeah maybe we can like just talk a little bit uh what what uh where are the benefits yeah after we we we actually yeah let's let's talk benefits for a sec all good uh after after we we finalize this project yeah so we improved the real real ability a lot oh that's cool because very important so no more outages not really yeah we like we we had some situation where we like didos ourselves yeah we for example someone from marketing bought some Tick Tock campaign and it just increase the traffic a few times yeah and wow so we we like on Asia we had the automatic scale up but it scaled to the maximum limit and that's it yeah the website went down but after after and also we had quite a few attacks yeah because the the website is quite popular oh yeah DDOS is starting to become relatively normal right yeah yeah so so this is this is normal situation for for us yeah yeah but with the with the static generation yeah not not a problem at all the the the the the amount of ability to hack it is also very low because there's no logic going on it's just static stuff and the personalization is on the edge which is close to the user so you could DDOS your own little Edge that's close to you but then it's only static files so it's almost impossible yeah um so we scaled down our our infra [Music] before you go on do you have any indication by how much you scale down this infrastructure do you know um I don't need money just let's say you had 16 CD servers Auto scale with the most expensive package how what what changed I think just for the our like regular day-to-day uh traffic we we increase it by maybe 40 percent maybe maybe by half because yeah we still need to keep them because we have this our custom logic and we have this tracking of course yes for the checkout and things like that yeah we still we still need to have them yeah but but we we increase a lot but also in this situation when uh when when we have those campaigns sometimes we just we scaled up like to the our limit was like uh 20 instances yeah wow which is which is like no right now it's we will never go go back to this I can imagine you have two instances now right so you can load balance a little bit to be safe yeah we have like I think we have three at the moment but this is just for the tracking and for the booking process yeah that's it that's crazy and that's for this whole project the whole multi-tenant one it's all this on these three instances yeah I remember in the project I won't name the customer off where we had I think it was 60 websites that all had like 50 or 60 markets and we didn't have uniform or this kind of SSG and I think one website one instance and then sometimes you would have one instant that had like four languages but it wouldn't like imagine the scale of that Azure account just and we had multiple CM servers obviously for Content editor preview um staging yeah this is insanely this cost yeah and of course we we uh improve our time to First byte a lot because usually with like with um server-side rendering with MVC you have maybe like something between half of second maybe one and a half maybe two seconds yeah this is something like typically and that's quite important in my experience for that it depends on your location if you're close to to to to your server yeah but with the with with like CDN you have something between maybe 50 milliseconds to 150 uh that's just amazing it's amazing right like years ago we dreamed of this now we have it yeah yeah and yeah we we had some we had projects on on Akamai we had project on netlify and the number were pretty similar and like something between 50 maybe 200 milliseconds which is still super fast and so how are your core web vitals because I can imagine if you use nextgs there's a bunch of front-end stuff going on there's hydration images lazy loading did that improve at all or is that maybe something for the next phase to attack yeah yeah so you need to like be aware if you go to the starting generation it will not solve all your problems yeah because the time to First byte is just one of them one metric exactly there's three more that are important yeah there are like images you need to optimize them um there are scripts you have for example your your marketing department can use the GTM and just yeah the famous uh yeah you just throw whatever affiliate affiliate networks and your your yeah like how score is done yeah exactly so you you need to be aware of that yeah that it's it will not solve the all the problems and you need to still work on on other aspects I see it like you solve the basics you are cheaper and you're hosting your your server problems are gone essentially and now the next that you have more breeding space and Headroom to actually look at the performance of other things right which is already nice so there's it rather than two nightmares there's only one left maybe that's a bit negative but there you go I'm a front-end developer so I might feel that way yeah yeah but we are actually in in the middle of another project to optimize our our media uh so this this uh the second like Peak issue should become so I think if you solve the media a bit you're 60 70 there the rest is just time to Interactive and just that just means if you have third parties you lazy load them or when you scroll down only then it happens with the tracking pixels and all that stuff and you should be it should be quite doable yeah then again you have scale so I cannot I cannot speak for you because it's not easy yeah it's always like it's it's a different word yeah when you have like very simple website it doesn't like that doesn't like make a difference which is which CMS you will say you can use like whatever yeah but when you scale anything yeah exactly there are totally different problems exactly um so I think we're reaching our end here is there anything else you would like to share um yeah I think that's that's it yeah I can just summarize yeah that yeah if you're if you are like uh a company which is like thinking right now shall we go to study regeneration or maybe we we as we had the same we we thought okay maybe our our custom logic is too complicated or something yeah you can like always go to static generation you can like statically generate uh majority of your pages because majority is like usual it's just a Content yeah it makes exactly personalized but with the modern platforms it will work with the with the personalization so yeah and the rest in the worst case you can just like direct to to different origin on your CDN and just skip it for some time uh you can use the the server side you can still use the server side rendering yeah so just don't be afraid of that yeah so that's that's that's how it goes you don't need to like move everything so just just do it yeah just do it that's a good way to end no well like this is the thing right there so it's a new paradigm and you have to think slightly differently but once you do you see the benefits but the bar to get there if you're used to a certain Paradigm and you have to switch it sometimes it just takes some time and also effort because you put in a lot of effort on the one end and then suddenly you have to do a lot more to get to the other one so I can imagine it's not always an easy choice if you're used to certain setups but you guys did it and there's a few other uniform customers that like love using sitecore and just add this uniform part to it and then for the end user and for the cost and all of that it's actually much faster and they still happily use sitecore so it doesn't have to be phased out or anything and like imagine if you have a hundred content editors that know how this system works well keep them using it imagine how expensive it is to train them on another CMS it's almost impossible that's like a three-year project right there imagine having a hundred websites and you have to change their move their contents to another system it's almost impossible but you can but it's like a gear project then you'll see the data as dirty and you cannot automate it and so having this in between solution actually it might just be our final solution now this is just part of the stack so it's an interesting approach that you guys did and it seems to be super successful so um thank you for talking about it exciting times yeah thanks for having me yeah yeah sure we're more than happy um so um I think that's it for our stream um where can people find you on social media what is your most important one to share uh I think Twitter and Linkedin so with LinkedIn yeah you need to remember about this my official name which is hard to pronounce you know what I'm gonna do what we're done with this in the description box of our YouTube video I'm gonna put your stuff in there so I don't have to type it now and put it on a banner because I'm gonna misspell anyways um thank you so much for your time and I hope to see you in person one day that would be super fun right cheers thank you yeah bye
