Episodes / #8

Down The Performance Rabbit Hole with Saumya Majumder

January 31, 2025 · 2:10:19
Guests: Saumya Majumder

If you enjoy geeky deep-dives, practical performance tips, and real-world examples of scaling WordPress, this episode is for you! Don’t forget to subscribe, leave a comment, and share your biggest takeaway.

Topics Covered

WordPressPerformance

About This Episode

If you enjoy geeky deep-dives, practical performance tips, and real-world examples of scaling WordPress, this episode is for you! Don’t forget to subscribe, leave a comment, and share your biggest takeaway.

Watch

Embedded video and links available on the episode page.

**[00:00:00]** hello everyone this is Armando peris careno and welcome to the web talk show today I'm joined by Samia how how are you Samia I'm good how are you doing I'm doing great thank you for asking somia is a lead software development engineer at Big scoots and he is going to help us go into a few rabbit holes into the WordPress and performance space this is going to be a lot of fun so somia why don't you tell us a little bit about what's your history your background so that people know um who we're talking with today sure so hi hi my name is sa Sam majar uh so I work as a full-time a leite software development engineer at Biscuits my journey with WordPress started I think in my second year of my engineering college so when I was doing computer engineering computer science engineering so at the time of you know like in my spare time I used to do a lot of like you know contributions and open source thingy and stuff like that and that's when I jumped into WordPress like very early days of Wordpress I'm talking about like maybe V2 V3 or something like that like like very very very long back right so since then what happened was like I just you know like the thing that I loved about WordPress is like because I used to build like very large because as you understand like you know like being an engineer you have to build a lot of complex things right one thing that I loved about WordPress is the extensibility of it right like like every everything has something to latch on you know that's the thing that just just blew my mind because you know like **[00:02:00]** in terms of like data data structure algorithms and even you know the like when you architecting any kind of software or anything like just latching on to anything it's just so hard right like when you're building something if you just need to go there and when it it's going to do its thing but you just want to add a little bit of things in the middle of that right it's insanely hard right so since then I started um you know like contributing to uh big uh sorry to the WordPress then have been core contributor to the WordPress I have I had many uh open source plugins that are free still to De that I think in WordPress community so uh so that's the engineering part of it I before joining the bigots I used to work in a multinational company it's called Uh T consultency services I don't know if you guys have heard of it so I used to work there as a system engineer and then I started my own company and I ran it for uh like quite some time and then and I have been uh with big scus like behind the scenes for since his Inception like you know like like uh how can I say like um being someone you know like like um like as a I just don't getting the word but like as a person that is just kind of guiding them like you know this is the path that they should took Consulting type yeah Consulting type right so it's like like I have been with them since like the Inception but not in in in a fulltime scope right so that happened like you know and biscuits grew rapidly have seen it grow over **[00:04:00]** year and over year and year and then at some point I think in 2020 during the covid or after the co something like that I I joined you know like BS full-time and since then have been it's been an enjoying and super exciting ride excellent and it's a great company from from what I've heard from people there and also from clients and people who recommend them originally to Big scoots it looks like a nice family environment where where people are working together they're enjoying what what they're doing which is yes absolutely I don't know something I don't I don't typically Envision in a hosting company no I mean I mean and that's the thing right so I I always tell this like jokingly inter internally whenever we do a like I tell this all the time to like pretty much everyone in the company is like BX like like don't think of biscuits as a hosting company right if you think of it as a hosting company then you are not seeing the full potential of it right big cuts is a company that is essentially giving you you know like like like providing you a service like it's a service and engineering company that you know is also supposed to do hosting you know if you can think of it that way right so you basically get the full spr rtim thing like you know like you're taking care of from the you know bottom to the top I think that is very accurate because when I started working with big scoots personally with some of our clients it's a big mind shift between I'm handling everything for my clients hosting it somewhere hosting place of course but sort of changing or flipping that **[00:06:00]** mindset into okay maybe I can hand some of that old to you because you have such a great team that can manage team and integration and an integration sou Integrations are fantastic and we can we can talk about those yeah sure so so the the way I think I would explain big SCS to anyone is like like I'm I'm again you know like as this is going to be like a super nerdy and Technical uh conversation I'm being super technical here so if you look at the OSI model right like the network OSI model so I think you can if you go to any other company they would at Max handle one or two layer topmost layer right whereas we handle like from from like full vertical integration right because you know we have our own data center our own router our own connections fiber optic cable connections with cloud like like everything is there right and we manage everything so every step of the OSI OSI layer we like we know what's going on right so that's like a huge uh benefit compared to anything else like because like you can have a company who text a server from Google or AWS something like that so they don't know exactly what's going on so they are kind of working in the you know the layer six layer 7even but not below that right but we can actually go below that yes and that's exciting especially for very high performance websites or that that have some processes that are different from the norm that's when and I've seen this before with other hosting companies you you get to a point where you're talking with your porn they're like yeah well this is up to where **[00:08:00]** we sort of that's their box and you can't exit out of that box and here it's a little different like you said you have all the infrastructure all the way down so tell me a little bit more now that we're doing rabbit holes the cloud flare direct connection basically for people who don't talk about fiber optics or anything how what makes that so much better than most other companies that don't have this direct hookup M amazing question uh but to answer that I need to take two steps back and kind of explain to the viewers exactly how internet works like in a very nutshell right like sure because you know if they don't understand that and they just jump in the middle they won't get it right so internet I think like if I'm I'm a huge Harry Potter fan so if anyone has seen a Harry Potter movie I think internet is like the truly a magic box right so anytime you go and enter like ww w. example.com whatever right behind the scenes what h a lot of things happen right so the first thing is like your like your system or your browser basically makes a call to the to the DNS like the the top level DNS right so it's like the star like the dot right and then underneath what is the TLD it can be net whatever right or if it's like a gtld like. co. us something like that and it would just know call keep calling know step by step by step until it would get that like let's say Doom so it go to theom directory right and then it would look for okay where is example.com here right and it would look for example.com okay **[00:10:00]** so what is the IP of example. this is like the whole process just to literally retrieve the IP of example and that's that's why browsers and system cache this DNS information and if you Google it you will see like there are lots of command to flush DNS cache that's basically this right so it's basically telling your system to flush like whatever you have remembered from our previous in know conversation just just forget about that right so to ensure that next time you're going to example.com the browser knows like example.com is this IP and it doesn't has to go to the rabbit hole to find okay this is the IP of example.com right right so when it gets the IP right then it sends uh first like acknowledgement and like all that happens because now we are doing https so the authentication needs to be there the certification and everything like it needs to match and then the hand cheick will happen and all that will happen right and if everything goes well then it will send a request and it will say okay hi hello you know like um send me the data right and it would let's say send you the the HTML of the page like if hoping everything is good there is no 500 or anything so you get like the um 200 Response Code and with the HTML right now HTML is just literally like a HTML block doesn't have anything it still has all the CSS JavaScript fonts and everything so every single request will go through and then it would just you know like like the the request will happen happen right in a in a perpendicular way and then all the requests will come through then the browser **[00:12:00]** will get everything it will process separately like there's a like a like a there's a Dom tree that is that is just for the HTML there's like a CSS paint tree that is for the CSS there's a JavaScript Dom tree that is for the JavaScript everything execut separately then everything smoosh together and then voila you have the web page right so a lot of things happen behind the scenes before you get to see the web page but to the user you enter example.com and hit enter and Magic everything's opens up in front of you with the drop down menu working and everything working it's a it's it's a magic right so now um in the HTTP 1.0 and 1.1 world what used to happen is there was like a parallelization means like you cannot do X more than x amount of request like because it was just TCP right uh like each TCP connection has a limitation so that's why you used to see a lot of this performance plug-in doing concatenation like oh you have multiple CSS file combine them to a single file because that's like a reduce the number of network request right send JavaScript but that is no longer the case in the http2 HTTP 3 world because it uses UDP right so it makes a TCP connection then underlying that it just creates a UDP connection that just like makes multiple connections okay just just give me because it doesn't the problem with TCP and UDP is that TCP is a protocol that is super reliable right like if I send you something and you did not acknowledge it it would break the whole chain and I would start from the top again UD is like I'm just keep sending **[00:14:00]** you it's fine and suddenly just it just didn't receive something it's fine just tell me just sending it's not that reliable but it's insanely fast because that kind of handshake is not there right right so that's basically the nutshell of how like the internet or web pages work right now let's bring back the CD in here right so now if you're using plf CDM and let I'm taking a very simple example let's say you images JavaScript CSS are hosted on the CDN Network right and they are cashed okay what's going to happen is the request comes right and so I'm talking the leny here right the first request of the HTTP uh so for the HTML page goes to the server comes back that will take a long period of time because maybe again I'm taking an example here maybe you are in Sydney and your server is in us right so it literally has to travel under the ocean and you cannot exit beyond the speed of light that's like literally the theoretical limit right so you have to where that's where the latency would increase and then for the static files if they are in the cloudfare CDN right what's going to happen is then the next request will go and that in the middle you have the cloudfare sitting in the middle it would say oh I have this this file no longer this doesn't has to go to the origin hey here you go there's the file right but now again Zoom even further and look between the browser and the the cloud and the cloud flare and the server right now imagine you are again in Sydney so you are talking to the cloud flare data SYM that is in **[00:16:00]** Sydney right but your server is in us okay so if your image or css or JavaScript is not cached what would happen is you request you know you the browser sends a request it gets intercepted by the Sydney Cloud flare data center right and would look at the system like oh yeah I don't have this file okay I need to pull that from the origin right and that request uh would need to go to the US server and this is by the way not going via the Internet it is going VI intranet okay so it's like the internal network of cloud fair that yeah yeah okay so that is not uh like bombarded with other traffic and other issues because this like cloudfare servers talking to each other right it doesn't has to use the public internet just using internet right so it sends the request to the origin the origin gets the file send it back and that happens right right now imagine this if your origin is just like in any of the data center right if you look like if you again zoom into that request like that signy data center sending the request to the origin right so that server that that request basically if you do a TR rout you will see like it is hopping around multiple different point before it can actually reach to that origin server and then from the origin server just hops back and come back to the to the cloudfare right like the cloudfare internet right now hypothetically imagine if you can just connect the cloudfare internet to your server just like a like a f optic cable right so what's going to happen is Sydney says I don't have the file and in **[00:18:00]** within the intranet like in the in the neural inet of cloud we just say I need the file over the fiber ofic C like direct fiber of C okay I have the ex server there's the file here you go right like it's like like n the difference MH right compared to going over the public internet right because like the the like the request between the cloud flare servers that is within their own network but but whenever whichever Cloud flare server has to make the request to the origin that needs to go where the public internet right because it's not connected to cloudfare in any way right but when you connect it to the cloudfare then it's like part of that Network and it's like not talking internally like it's like you have a huge amount of bandwidths like talking internally in a in insane amount of speed so for and for this is very technical so for anyone who curious about this part of it and going a little clearer on the I'm sort of making it lower basic level once imagine if you got all of that and You' you got the request in Sydney it goes through the cloud Flur internal Network very fast gets to the cler internal network node in the US it still would have to go to whoever host it server from from this point even if it's in the US it still has to go to multile Hops to eventually get to that server through the regular internet that everyone uses and there's a l of traffic and it could get delayed for a little bit and so having a connection a direct connection to the cloud flare Network in the same building basically as the cloudfare networks **[00:20:00]** makes it so much more efficient and like have a t more bandwidth that it could just get that immediately immediately for a single yeah no public it's very fast but also for purging caches right so maybe you have a huge and you already have and you might want to explain this as well but when a site is already all cached requests to it are impressively fast milliseconds right you get the page and you're like w how is this so fast it's because everything is already cashed around the world but what happens when that site needs to say hey I've updated my content I want to purge everything here's everything new that would take a longer time if because it has to go over the internet to Cloud versus having that direct pipe where you could just like suck everything in absolutely right so there there are two points uh the the the purging The Purge speed itself has nothing to do with this connection right like whether you have this connection or not your P speed will be exactly the same and Cloud I think recently Alex and his team has recently released like a like a huge update and they are like rolling it out in the in the think the q1 of 2025 that is basically going to speed up the the cash purging even further for everyone all the users so the cash purging speed is the same for everyone yes of course yeah the the purging part of it right once it's purged right then it comes like now nothing is in the in the in the cash so every request has to go through the origin right so that part it would become like super Speedy because like now it's **[00:22:00]** like part of that connection so just like oh yeah there you go this is the file this is the file and it's like boom you have the file but otherwise it would like you know the cloud share data center would let's say make a call to its ISP that ISP will make a call to AT&T AT&T will make a call to someone else and then it's just hopping like that until it reaches that server and you know hop back and then there this is the public internet so there's like bgp protocol congestion a lot of things are involved right and that's why I think cloudfare has a Nifty tool called Argo I don't know if he have yes used it or not yeah yeah it's a very Nifty Tool uh but a lot of people um make a like a very big mistake with Argo thinking that it would actually speed up your uh like like the speed of the the website delivery it's not entirely true you know Argo Works between the the server and the The Edge not the The Edge and the user so the edge and the so so there are three points imine three dots right the user cloudfare Edge and the origin server right Argo specifically Works between the origin server and the edge okay not the edge and the users The Edge and the user is normal as it is with Argo what happens is as I have said right there's like bgp Network congestion and all of that these are these are ancient protocols that were created in back in the' 60s '70s like we are still using and it just just works like magically Works no one want to touch it you know so yeah so **[00:24:00]** what it does is basically cloud has its own neural AI Network what it does it it just just monitors all the traffic and what it does is if I have to make a request from let's say this Edge to some point right instead of like using the normal path that is the the shortest path that we call in the in the network engineering like the take the shortest path right but shortest path is not always the fastest path you know for any case even in the traffic right so what it does is as it knows about the entire traffic scenario it might it will take the fastest past path not the shortest path so it has like the it would look at all the path and would say oh yeah this path does not have encryption in between this leg so I'm not going to use this path you know I would rather use this path which is like a bit longer but it is faster because there's less congestion here so yeah that's that's that's that makes sense okay so it's it's intelligently choosing the path based on multiple variables the same way Google Maps might have a shorter path to somewhere exactly exactly stop sign and you will never get there right okay yes yes exactly like Google Ms yes oh nice nice nice and it works I mean well we used and it's it's very nice yes it's really nice yes and so for for people who don't know a lot about this part of it content delivery Network you mentioned CDN earlier so if you don't have a Content delivery Network and many sites have if you have a business it's very likely that whoever built your site installed a Content **[00:26:00]** deliver Network or set it up for you but still there are a lot of websites that don't and so a lot of Hosting providers are now sort of including it as part of their offering because of that saing thing and what a Content delivery network does in basic summary is as Sam was saying you have your files your CSS your HTML your JavaScript files Etc instead of them being on your server which would mean everyone from around the world is hitting your server and asking for those files so there a lot of requests to handle and also a lot of bandwidth to send out so a condom delivery stands sort of in the middle and so when someone wants something like a CSS file they see oh I don't have it gets it from your origin and then if it has it and then everyone else who asked for that same file will just get it from here and Cloud takes it further with the edge because now they're points of presence all around the world and so I'll get it from Sydney if I'm in Sydney or I'll get it from somewhere else right right yeah yeah there there's there's more complexity and technicality to it so I think I didn't mention one part in that you mentioned in the last uh uh comment that you made so uh the speed of the website you said I click and it opens right so the big Goods cash is doing a lot of things behind the scene it's not just the CDN but yeah I mean CDN is a big part of it right so I think we were one of the Pioneers uh one of the the first uh movers into the space to **[00:28:00]** UTI guys Cloud Enterprise into the hosting and not only that yeah and not only that uh even like I was at this point till now I was just talking about caching the static files right and till this point if I think you would clearly remember because you you have been in this industry for a long time as well like I think like before I created this you know like like and I can say that I created this because I I was literally I created it before that point uh it was all like disk caching like if you look at any other caching uh plugin I'm not going to take any name publicly here everyone is just going to provide you some sort of a disk caching okay now it is very clear now when I'm when we are talking about page caching it is very important to understand the differences between what is a dis caching server caching and and whatnot right so again imagine a request comes it lands on to your origin right now now after it lands onto your origin there are couple of path it can take right path one is you do not have any cash right so the server spins up uh the entire WordPress process executes all the PHP all the database calls everything happens to make everything you know like to build the HTML that is basically supposed to be sent right and there is a Time involved by the way keep in mind right like it would take time to process the phps the database queries and and depending on how crowded your server is how fast your server there are lots of variables right it would take time then it would create the HTML it **[00:30:00]** would send that to the user right now came uh the server level caching or memory level caching like I think we will pretty much remember varnish or or things like that right like in the back in the days right what they used to do is they used to cat this htmls at the like literally the ram inside the ram of the of the server so that when the request comes like pretty fast has to fix that like oh yeah I have the HTML for this page here you go take it right but as you know website gots more complicated more things like it didn't clear cash all the time like lots of complexities happens that's where this disc caching plugins came into play right and what they used to do is the same thing you know the WordPress generates the you know the HTML it would create a copy of that HTML locally inside the desk and that would send the problem with this approach was you know when the request was coming right it has to come all all the way from Sydney to us the server and then the server will say okay I have the HTML pay so it's the I'm basically just cutting a part of the entire chain right like if you look at like it would take let's say 500 milliseconds to complete the process then I maybe just cutting down like 1/4 or in like 2/4 of it but there's still more to be cutting down because the request has to travel through this entire Journey right right so that's when I think me and Salvador we created a plugin like and this is like I'm talking about like the bleeding edge right like at the I'm talking **[00:32:00]** about the time when cian level page caching was like a science fiction like it doesn't didn't exist okay so we created a plugin called super page cach for cloudfare okay uh which then later got uh acquired by Optimal okay so the the GU at optimal right so we basically then created we took Cloud flare we did a lot of heavy lifting behind the scenes do not because at this point remember everyone was using cloudfare for the static files the CSS JavaScript images same right we said why not the HTML right like we should do the HTML as well instead of caching the HTML at the server let's cash it in the CDN the benefit of that is when it's cash at CDN and you make a request for example.com the request is intercepted by the you know the the CD and Cloud flare Edge and the request comes and oh yeah I have this page HTML go you know and that's like like 30 milliseconds you know compared to like 700 800 milliseconds right and then uh the browser is like let's say like you know like looking at the HTML and oh I need the CSS JavaScript blah blah blah and the reest is again intercepted by that same Edge and say oh yeah I have the C JavaScript as well there you go you know again 30 40 Mills so the overall experience is like like massively different you know and we open source the project and in in the uh WordPress repository right and from there on uh a lot of Hosting companies kind of you know took it up and then kind of you know as part of GPL uh you know licensing they kind of created their own flavor of **[00:34:00]** it and then they started creating the you know the cian level page caching but that's that's where the the origin of cian level page caching where it all started actually you know so yeah I mean and that's basically it but yeah as as I was talking to you about before that in big cash it not just that we do even more like there there are more stuff to it right to make things even faster you know which we will go into into later on in in much detail when we talk about that but just saying like you know there's just just like it's just a part of the question like a imagine like a huge equation and it's just like a like a part of it right like a even if it's a small part it makes so much difference it's it's a big part but but I mean if even if if it's a part of it yeah still so much more yes yes yes and yet just that part makes a huge difference all the time every time because the request from traveling from Sydney to us we cutting that down that's like huge huge you know like now I was giving like a like a extreme example Sydney us even if you think inside us right so let's say your server is in Chicago and you are in let's say San Francisco in the Bay Area right even within the country that's like literally going from like the opposite side of the country right if you can cut that off that would become like which could be like 300 Ms 200 Ms would come down to like you know 20 Ms 30 MS something like that that leny know which is like **[00:36:00]** like like I don't know like crazy no it's a different level of of I we actually had that with a client of ours this particular client had a problem let's call it a problem that their site because of the complexity of the site and all it had and all it needed took some time to render and we can and I would really love just do a deep dip after this on how the WordPress load process works right but this side in particular had a for for our standards subpar performance in page generation thing and so that would mean all the plugins are loaded and all the everything that it needs database calls Etc to create the page and so if you would just visit it without it having cashed anything it would take like um two seconds or something which is a lot for a user and so what we ended up doing because it wasn't big Scots we had a little process that we could actually host in the server thanks to your team that it would go and generate or fill the cache right it would go through all of the pages once very fast and generate the cash for all of them basically visit them and have that put into the cash and so after that so you would see because we have a python script and you would see the first load was like 3,000 milliseconds 2, 3,000 Etc but then if you run it again it was like 30 milliseconds but it's a very very fun thing that I would like to add here because he he wrote the script and you should know this uh this is like a very fun part of like a deep dive of how **[00:38:00]** Cloud fa caching works right so now I'm talking about Cloud flare right like like literally like like you know zooming into just the cloud flare caching right so what happens is like a request comes to cloudfare right and cloudfare sees like okay do I have it or not right if it doesn't have it it makes a request to the origin get the file right now cloudfare has what it calls like two states of caching one it's called transient caching uh and another is like like much more permanent caching right so the transient caching is basically you can think of it like like being in a Ram or like a like a like a place where we are not sure how um like popular this is right because like like think of it from cloud flare standpoint right okay so Cloud flare they are running a business they have a free plan right they don't for the free Pro any for anyone they don't limit you on the bandwidth I mean I there is a hypothetical limitation like like but it's not like like not on the paper right right so but what I'm saying is uh so so what happens is if Cloud flare starts caching everything for a very long period of time they are also have to pay for the ssds nvms and they are expensive right so they have a very smart system what they do is they get a request request makes to the origin get the data keep it in the trucks in cash and keep a very close eye to it right like how often does this get requested right like how often is it is getting requested right if it is getting requested often what for a period **[00:40:00]** of time like again all of this are like Google so I'm not will be able to give you the numbers like you know like X number because these are all you can understand right these are redacted items so I mean like these are all like closely guarded Secrets right so so if that threshold passes then it gets moved over to the persistent caching you know what would stay in the cash for a longer period of time so that's why you might see like okay you know what you run a script to you know like go to the site map of the page and you you know like make a request to every single one of them and then what's going to happen is you just like and hopefully this hypothetically no actual user visited the page right next day you go there's no cash because they have removed everything they saw like one request came yeah and there's there's no further interactions to it so just remove it from the cash free up the space for actual stuff like like other items to be put in the cash right so that is one part of it the another part of it is you can think of so you said like you know the cloud Fair has the highest number of edges or the pop locations as we like to call it all across the world right but it's not all the same okay they are divided into three tiers okay so tier one are like the big boss uh then tier two and then tier three or you can think of it like the tier one tier two and the regional tier okay so again if I give you an example let's say let's say **[00:42:00]** example of India right so in India they have around I think s or eight or 10 Edge locations right now what's going to happen is obviously they are not like not all of them are hosted in the same kind of data center right like like let's say some would be hosting in data center is insanely powerful where others are supposed to be the regional one but not like the the you know like the top one right so that's why you would see like in the Mumbai data center that is in in Bombay Mumbai right right that's like in in case of cloud Fair that's like you know the middle tier data center or the like if you're talking about that India itself that's the tier one right but in globally it's like the tier two and then the the tier one would be like some some only like like let's say uh in Chicago someplace in Europe and like these are like the very very very big data centers right like these are the tier on so the way things supposed to work is if tier three and this is this will happen if you have enabled tier caching this is a thing that you can enable inside your Cloud fa dashboard like if you go inside caching there's a thing called tiered caching right if you turn that on what's going to happen is so let's say if if you make a request from a regional tier right and Regional tier does not have that item in cash instead of making a call to the origin it does not have the privilege to do that it it doesn't even have the authority to do that it would make a call to tier two hey **[00:44:00]** do you have that okay tier two will look into it and say no I don't it will then make a call to tier one hey do you have that tier one will say yeah I do tier one will send back to tier two tier two will make a copy of it and send back to tier three tier three will make a copy of it and then if in the whole chain none of them has the item in cash then only tier one has the the authority to make a call to origin this is to reduce the call to origin like you know to make sure that the origin is not over requested right so tier one will make a request it will get it cashed and and so on and so forth so I just wanted to clear this thing out because you as you just you know talk about the script I know many people who are listening to this might even think about like in writing a script like that and keep this mind and also cloud has another you know ml Neal engine that looks at the the requests that are coming from if they see that the request that are coming from a robotic you know like like Bots right so they by default put a very low cash time to it sometimes they won't even cash like let's say for example if you're using a python script right if you didn't change the user agent of the Python script it would send like python D request SL 2.1.1 or something like that like as a default user agent right and would know like it's just using like a script right and it would just like cash it for a very **[00:46:00]** low period of time or may not even cash it so just keep these things in mind yeah and that's and that's very important because in this case for example it worked great because we didn't need the persistent cach right so it's fine if it moves it down to I mean it didn't need the transient cash it could it fine if it moved into fine because you are doing it daily yeah you're doing daily over and so it it was great because now most of the time whenever you visit the site it's always extremely fast and that's great and so nobody really sees those really slow times eventually it was made better but that was sort of a quick sort of patch approach to have users see the site faster and then and this is something I want to talk about later obviously once people log in it's a whole different world because now we have to hit the origin and and that's something I I would want to talk about as well so I don't know if we should go into that first or the WordPress flow but uh it's up to you I think let's just to explain to people what happens in a word perar FL I think we should do that just so that I think a lot of people don't don't understand and and I for a very long time didn't understand that until I went into the actual file structure what really happens behind the scenes after everything you explained somebody visits a site all the DNS happens Etc they get the HTML file but before that HTML file exists if you're on WordPress what the WordPress happens yes the WordPress life cycle yeah so that's a very very like **[00:48:00]** amazing question so WordPress is a very easy to use and at the same point in time super complex uh I think one of the most complex CMS system in the world like if you literally dig into the code of the core WordPress right so what happens is when the request comes and the server spins up right and it like whenever if you have set up like uh WordPress ever this like either htx or engine x file to kind of say what kind of pering structure it would be that's like telling the server so first of all again this is I'm just explaining it in a more technical way if you have ever set up a WordPress side in a c panel server like just take any share server just set it up you would see inside the htx file it like adds like a few lines of code right what that means is WordPress like you like um um hit example.com helloworld or uh cake recipe or something like that but WordPress does not understand any of that it just just doesn't that that's an encapsulation like just an eyewash it doesn't exist right if you look at that code what it is saying is it's just saying https example.com question mark index sorry index. HTML sorry index.php question mark something some post ID that would pass to Wordpress WordPress then kind of like you know tell what kind of pering structure it would be so it's just all working based on the post ID but now let's talk about how WordPress works right you hit a request to the server the first thing that happens is WB config.php this is this is the the first file that get executed because this is where all **[00:50:00]** the constants are like based on which everything will spin up right like this is where your database is all the salts are like all salt login salt everything is there right and at the very end of it you would see just say like oh don't touch it any further like this there's a line like that you know and like pointing and from that from just pointing to the the the initiator of Wordpress file like the initiator PHP file and that file then like take all those constants and then make a connection to the database you know do all of those things because remember even for if like WordPress is a stateless HTTP is a stateless system there is no State exist so this is happening for every single request that you sent right so it's not like that okay I just sent a request it remembers like oh this is the server that I need I need to connect to this is the database that it doesn't know that it's like the request ended and it forgot everything right and everything starts to scratch again right so again it just gets all the constant like okay this is the uh database this is the database Host this is the database user name password this is the you know the collection of the database like how everything is encoded and everything right and when it get all that data in WB config then the initiator comes in then the initiator kicks in then it first starts making all the database connection and everything so that we have the plate ready to handle the request right and then when the requests came right again example.com hallor but behind the scene it's basically index.php question mark p equals **[00:52:00]** to let's say post ID 1 123 right right and then what happens is behind the scene that one 2 3 makes a call like okay go to the Post table give me the data of the post table give me make a call the Post meta give me the post meta data you term meta what in which term it is like in all those join SQL queries you know like everything is happening right it's just pulling everything which category is it is there any common and based on how you design the template right and then everything happens everything created up like all the structures are defined then below that it's like starts making like looking at new code like inside your code if you have created any kind of let's say custom PHP code to make a call request like something like that that's gets executed all this PHP there are actions there are filters hooks they get executed you know then if you have any kind of mu plugins that is the must use plugin they get executed even before any plugin kicks in so they have a precedence over the plugins right so the so the WordPress core team muu plugins then plugins right so it's like like one after the other right so that's why they called mu plugins because they have the more precedence over the general plugin right and you can't just deactivate it you literally have to either rename the file or remove the file right so uh yeah I mean and then all of this is happening right and remember that behind the scene there can be WordPress Cod itself could be using other hooks like innit Hooks and other hooks to talk to different parts of the WordPress **[00:54:00]** adding different things uh sanitization of your content right like you know getting the data from the database they sanitize everything making sure there's no excess vulnerability or not any know dirty JavaScript or anything like that all that is happening right then the plugin kicks in and then the plugin puts its load onto the site right then those inq of CSS and JavaScript happens right and then there their code execution happens and their all of things that they have asked WordPress to do that happens right and the very end of the chain right whether or not that plugin is being used or not irrelevant right at the end of the chain of when all of this execution happens and then the your system is flows through that oh it is using this and it's using this block or it's using this particular system and that and I need to enq this and this and you know this template I need to use like for example you could use this particular template for that page that so it needs to know that right there's like a separate file for that like which particular template needs to be used and all of this happens right and then the very end of the structure it calls a shutdown hook which is a very known common hook shutdown hook it's like okay I'm done I'm not sending everything uh to the client and so it's basically sent to the user and that's basically and remember this is I'm just talking about the WordPress HTML there's like the rest API as well like behind the scenes the plugin could be creating rest apis right so the admin.php that's like another part of thing W cron.php that's like a whole another lot **[00:56:00]** of things but uh like this is like basically the flow like it's like not just one flow like it just breaks down into like this like if it's a crown if it is Ajax if it is a rest if it is HTML then like follow the path you know like like like that way so this is an excellent way of explaining it there's so much going on here and at the very very beginning you said you loved WordPress because of the extensibility of it right you mentioned hooks so for everyone who doesn't know don't modify WordPress right so if you're if you're working with wordp person and there's something you need to do at a certain point there's a ton of actions and hooks that and you can just use the do action or the uh ad filter right you can use these to allow yourself to put your code in that part so that it runs without modifying core and so you're not affected by updates Etc right yeah and if any aspiring engineer or any aspiring person who is looking to this like like Advanced person looking into this and they want to up their game I would tell them in your free time just just just study the WordPress score code just just open it up in vs code and just look through the files they have amazing documentation for every single thing the reason behind that is so for example you want to do something somewhere right and there is no stack Overflow or any kind of example of that right but if you look at the WordPress core you might find there is a action or a filter that is nowhere documented or nowhere no nobody used it before or **[00:58:00]** nobody mentioned it anywhere on the internet but it's there and you can just use that you know just read the code yeah that is that is an excellent suggestion just read the code uh s I'm going to have to quote you on that the I recently we had to do something like that for and this was a plug-in so plug-in developers if they're a good company they will have hooks as well they have actions inside their code that you can use and most of the time it's because other people ask for them and support eventually they added them and in those scenarios more specifically there's typically no documentation because they just added for convenience for that other user and so recently we had that example where we needed to add a some part I don't know a listing of users that are inside a group inside learn dash for their groups plus supervisor portal thing that is very obscure I don't think many people use it but it's there and so there's no documentation on that specific cook but we just looked at the code search for hooks to see if there was somewhere we could hook into before reaching out to them and asking them and there it was there was one there right exactly where we needed tested it everything works and so we don't have to modify their plugin which would then break after updates right yeah yeah ABS yeah so definitely that's a great suggestion look at the code and and see what's there and by the way recently I stumbled upon the learn WordPress side you know how they redid it it's very nice very easy to use and you can learn a lot about WordPress but there's a specific **[01:00:00]** part of it that actually teaches you the whole life cycle what files what each file does and what it has and everything and so if you're curious you can go in there and and just learn that way as well and then you like some of you said just jump into the code itself and now with GitHub co-pilot and Chach Etc if you have that code you have access to the code always yeah you can ask at things if you don't understand something ask it reference the code and and you can get a better idea of what's going on if that's Pacific part is not documented yeah even even I would I would take it even one step further like even this llms like give you any kind of hooks or something uh I mean I I I generally don't take them on their face value you know so what I instead like people to do is like you know okay you you have a hook no that's great open up the core code paste it in the search look at that the reason behind that is uh so let's say you are building a plug-in right like like I do that like I have to build a lot of internal plugins right at bis good so I have to maintain uh like I need to make make sure that my plugins that that we are building they can be used till WordPress 5.7 and with PHP 7.4 right so let's say the llm said oh you can use this this this this arguments with this right and when I open up the code the code documentation is amazing and say the code it would literally say this particular in argument was added in version this **[01:02:00]** right so you know like okay if I if I'm going to use this it's not going to work below this right or this particular hook itself was added in this version so you know you can't rely on that so there are lots of things like that so it's fine to do like a little bit of Soul digging but I would I would still won't put my money on it so I would rather do my own research yeah that's that's excellent advice and so for everyone who's trying to use an an llm whichever one you want to tach B Gro Gemini perplexity you J whatever they all they're nice but they hallucinate especially with code they hallucinate a lot and hallucinate means it will make things up for its own benefit and so it'll try it'll give you an excellent explanation yeah sure you have to use this hook that use it these are the parameters but if you do not you do your research like siia said you'll realize hopefully you didn't actually implement it with a big error uh it's better to just go into the code and look at it you'll realize that maybe the parameters are incorrect maybe the C doesn't even exist or maybe and that was excellent advice maybe it's not supported up to certain version where it was added and then maybe in that case you have to have two scenarios and look at what was used before and use that and what was used after and then you could have it your own code like a pre 3.0 three and then p and then that way you try to protect yourself against maybe you are working on a client side who cannot upgrade Beyond 5. let's say 9 **[01:04:00]** or something like that let's hypothetical example because you know they are using some system that will break if they upgrade right and you write that code thinking it will work and boom you get fighter because just doesn't there right so I mean yeah I mean uh it's it's always good to do your research dig into the rabbit hole as much as you can before writing the code yeah yeah I what I like to do is if I'm chatting with another M and having it assist with part of the coding it's if it gives me something I'll look for it like you said in the documentation in the code and then if I wanted to give me a better response I'll grab the actual original code where it's referenced and the documentation and give it to it and in that way it will understand what it what those parameters are and this is helpful for someone who is not a software engineer perhaps right so if if you're a software engineer you can read the code you're like yeah sure of course yeah let's do this but if you're not and you don't have that background it might look like something very daunting and so at least protect yourself by giving it the actual code and documentation so that it could it could give it's very good at coding and people say uh yeah it could could better than a lot of developers not true in my opinion I think it's like helpful but lazyy and so it's like it'll it'll help you but it doesn't do its research right and so it'll I don't know what do you think no I mean I mean I have been in this in this industry for I think **[01:06:00]** more than a decade now right like I've been in like I've been doing engineering like I don't know so so long I don't think that AI like like I don't think coding itself is the hardest part right like I'm I'm pretty sure AI can take over the coding I not a big deal right the hardest part part is again I I say this to myself every single time when I'm working it think twice code once right the brainstorming part that's the hardest part right so let me give you an example right so let's say you are creating uh a plug-in right let's let's hypothetically say you are creating a plug-in now inside that plugin you need to create let's say a custom database table hypothetically okay now if you give that to some kind of llm or look at anywhere or whatever right you might be more in client towards using the init hook right so because init is a hook that gets executed every single time a request comes right so like on every request it just gets executed so you might be inclined to do that right but then like like that's that's that's not something like a season software engineer will do because that's like yeah sure the AI can do that but you need to think long term like like for example the plugins that we create that's being used on like insanely large sites like like I mean like I I I don't even have words like know they have so much traffic right like you know every Nan seconds matter I'm not talking about milliseconds I'm talking Nan seconds right so like if I can shave off 50 Nan seconds right that those sides those Enterprise sides are going **[01:08:00]** to like have huge effect right like and cascading effect multiplying effect right so and that's where uh a software engineer will say like why why wouldn't I use uh like register like like the the plugin activation hook you know because that's that's like going to just happen once like when I activate the plugin and boom not going to execute ever again right so when you check like a longterm appr proo okay it's fine like Yeah the code is not the problem what what is the there's a thing called code complexity uh like the time time complexity of a code right you can Google it up right so like it's like o log and there's like a mathematical complexity formula like how what is the time taken by your like if you're writing algorithm like what time does your algorithm takes to solve the problem as it gets more and more and more data fed into it right so it might starts here but as it scales up where the times goes right so when you think of this like what is the time complexity of this particular algorithm that you wrote or the code that you wrote you know what is the most performant way of solving this you know then things starts to change you know you would see that this llms they might be giving you the right answer again I told you right in the beginning like if you want to reach from point A to point B there are 100 different paths to reach you know so I'm not saying that they are giving you wrong answer what I'm telling you is that might not be the most performant way of doing it you know and so as I was talking **[01:10:00]** about right so most of the plug-in devs um and again I mean I don't know might be their thought process or whatever I have seen this that most of the WordPress plug-in devs or theme devs in in that matter don't give performance like a real priority you know they would give it a priority to pass their demo theme or whatever but not itself you know like not in itself like I can like like take an example like I can I can vouch for a couple of plugins right like like like and when I generally don't vouch for any plugins but I can vouch for a couple like like let take example of Nova share right that are that are built by the the Brian and Brett the the brothers you know the nov share PFF matters you know so this guys I don't know if you have ever used this plugins right so these guys are like like insanely OCD on performance right like like I have seen them uh changing their class name inside their code from let's say Nova share to NS because it shaved like I think 2 or 3 KV of CSS f size you know so yeah I mean they are like that and when I look at their code I see every single thing has a check you know are we doing this are we doing this you know do not execute a single line of unnecessary code like just don't you know so I know that and same thing like when it comes to themes say for example like generat press right like I can wholeheartedly say like it's an amazing them super lightweight super performing because they thought of perform as a key you know like you **[01:12:00]** can add your own CSS make things spicier and whatever but the theme itself is is super amazing and the benefit of that is like let's say you want one landing page to be super spicy so you can create like a very little on line code to add that CSS just on that page only not on the entire site right so yeah I mean that's basically it so I I think that's where the AI and llm stands in my view like yeah I mean it's fine like like again coding is is not a big deal like there are lots of tools uh even automation tools nowadays that even don't you don't you don't even need coding right like you just just add node visually like you just add from here to here then a if Blog then a switch blog whatever and then you do and then just process the request right but the key is creating the algorithm right like knowing the data structure and then then understanding the time complexity of what is the fastest way and most scalable way of achieving it so again like the code is is not the problem again like look at people look at code oh my God the the thing is when you look at people should look at their code and look at the WordPress score code right like something similar let's say and ask thems why are they doing it this way versus I am doing it this way you know both does the exact same thing let's say like making HT HTTP request to some external end point but they are doing it some way and I am doing it some way now why I'm not saying it it necessarily for the performance it **[01:14:00]** could be performance it could be scalability it could be backward compatibility but knowing the why that's the most important thing that is that is very good because it you might look at it and see whoa for this particular request flow why are they using classes and I'm not why are they having multiple files and I have everything in a huge file why do they have hooks why are those for right and all this if you look at an established mature software you're going to see that they've made these decisions along the way based on experience and it was not probably not like that at the very beginning and also keep in mind that in that project there are like multiple people contributing to that it's like in that project maybe you just doing that so you have like one large file you know every single thing where it is like in in the back of your hand but when when like like thousands of people are contributing to it it's not that easy yeah and you brought up per matters great tool by the way if people have not used it perf matters allows you to build uh help you put more performance into your website by many different things right it has a bunch of little settings that will make it more performant maybe if you use your script editor it will allow you to actually disable scripts in CSS of certain plugins for certain parts of the site on parts that you you're sure that they're not going to be used and then they also have things like um you can reduce the number of revisions right in some cases it makes sense and you can have it defer JavaScript or DeLay jav **[01:16:00]** So sing that will help you with your Google um LCP right and it's great they do have a very nice feature that I really just learned about recently um I like the script editor very much but uh again the script allows you to sort of hide I don't remember that's the exact name but it allows you to disable certain JavaScript or CSX files from certain pages great but I was thinking and I and I think I mentioned that last podcast as well what if I want to disable a plugin completely from running on specific pages and there might be this plugin that is just very resource heavy and if you put it on the side automatically every single page load precisely by what you were talking about before maybe it's running its code very early it just makes everything slower you disable it and it's faster right and so but I do need the plugin so what can I do to disable that specific pluging from running on specific Pages or all pages except certain pages so if you run it as an mu mode if you're unified Inu mode then the script allows you to completely disable the plugin from running on pages right have you tested that is is that a good idea or is it better to have code on your site that will as an mu plugin that will actually do the disabling for you so let me first break down the performance side of a website right like so that we can go into then we will I will go into the performs right so if you look at any kind of any website take any website and you look at performance then it it is basically broken into segments **[01:18:00]** right in one segments is like the dashing the speed the optimization the image optimization all this this underlying technical things that come into play right like like all the under the N Things that you just just under the hood things that you won't see right that's one part of the equation of the entire performance canvas right in the other part is basically the the page optimization okay now in a in a best case scenario in in a perfectly buil website that has been built from the ground up like imagine like a custom team that has been built from the ground up with performance in mind specifically for that website you like per matters will not give you any extra benefit like even if you enable per matters it like probably one or two features of per matters will like you know like like let's say uh like they're they're lazy loading you know or something like that like like one or two or like reducing the number of revisions or something like but like like most like 98 or 99% of perers is basically going to be useless for you you know like for that particular website but we know that we don't live in the perfect world right and we don't have perfect websites right so that's where perers come into place it does the the website optimization so that that is basically happening before the the caching and all that optimization things comes into play right so what it does is basically it um hooks into the WordPress core you to do a lot of things like the revision things you said right like the more revisions you have the more the larger database that you you would have right but for most **[01:20:00]** websites they don't need like unlimited revisions like like they don't just just they don't they might need last 15 20 it's fine but they don't need unlimited right so it's it's good right A lot of the times there are lots of security features like like like blocking simil rpcs then like hiding some some feeds and some things from the sponsor they're amazing right then there's the CSS JavaScript optimization that you talked about those are also great Ru CSS and then you know JavaScript all of that is great and then you talked about the the plugins right like some plugins is is doing that right now that's why if you uh like like the the script editor uh and the MU mode you know we use peras a lot in our our performance packages uh so it's like we we we just use it a lot like we know it back of our hand but we genely don't go into the script editor and am more I would explain you why okay so what happens is you would understand like you are managing websites on behalf of your clients right so your clients tells you okay I want to add this or you know do XYZ right and then you do it for them right so you know the side at the back of your hand you know that with without your permission not a single plug-in can be installed activated or settings can be changed right so if something is happening you know right the problem with we using that is let's say we hypothetically imagine we enable it right we set it up everything works great and then tomorrow your SEO guy or someone does something and everything just falls apart right and then **[01:22:00]** you just don't know where to go but that's not going to happen with you because you know okay just this is for falling apart because I have blocked that jQuery in the script RoR that I need to enable right because like it is centrally managed right compared to like you know every customer they might you know install oh I need this so let's try out 10 different plugins right so that's just not going to happen now coming to the MU mode now there are two different things okay so I have not Ed the the turn off plugin feature completely but from my understanding of Wordpress life cycle and that part I'm talking about right so when we're talking about plugins right there are two aspects of it one aspect is plug-in adding frontend stuff so like CSS JavaScript to every single pages right that you can pretty much handle with hooks and stuff like okay only for this page if the page includes this short code or something like that only then register this hook otherwise just you know deregister this CSS and JavaScript or whatever just Just DE DQ this this this things right so that is part one the part two is let's say that plug-in is creating database table making multiple queries come and not just multiple queries let's they making one query but it is so unoptimized like it's like joining you know 10 different tables and then x. ID equals to y. ID and then joining you know like reverse join and then outer join inner join like doing crazy stuff so the the database has to spend a lot of time you know like queuing that up and remember I initially said there's no state so that's like happening **[01:24:00]** for every request that comes to the origin right so not the cash point but the ones that comes to the origin right so turning of the plugin and again as I said like if you look at the life cycle right WB config starts then everything happens D connections and then themes then the MU plugin kicks in and then at that point in time right inside the like in muu plugin you I mean there's like at least I don't know any kind of native what press score hook that would tell WordPress like you can deactivate the plugin for sure completely right you know like like there there's a hook where you you know pass the path and it would deactivate the that's like I'm talking about literally going to WP admin plugins and deactivate right but there is no hook that would say don't execute the code you know if if you know what I mean right like don't execute like I can say that you know in the MU plugin oh if this plugin exists deactivate it you know and what press deactivate the plugin it won't I have I don't have the power to remove it but I can deactivate it right but I can't say if page is equals to equals to this then deactivate it otherwise if page is equals to equals to that then reactivate it if I do that then what if you deactivate you need to connect like let's take example of Jetpack right every time you deactivate and reactivate you need to connect to jpack what if it is that kind of a plugin like you deactivate and then you reactivate it won't just start from there it might need to reconnect and then start the whole process **[01:26:00]** all over again right because of the and there's there's specific life cycles with the plugins as well right there's the activation Hook and the hook Maybe by you doing that what's happening is it might seem to work but the problem is it it's also running its own activation and deactivation rules yeah so it's like like I don't think there is any particular way that you can like say that okay just don't run this plugin for this this this P only run the plugin for this page you know if you need that then I think the best approach is like they F the plugin take the plugin out open up in your own code editor look where the plugin is getting initiated like there's a particular position where it is getting initiated Right add your logic there you know if page is equals to this then initiate this else don't you know that is the only way to make sure that this happens you know yeah I mean you lose the ability to update the plugin and whatever but if I think if you are okay with it you know because like let's say this is like a one thing like you know it's fine it's you you're not worried about the update that much right like you can just manage that then you can just do that right just just go into the plug and look at the code and make sure it just only invokes where you want it to be invoked you know so that way yeah so that way is like oh hopefully there is a class and there's like somewh saying new something you know like invoking this and then executing this just wrap that around if page is equals to **[01:28:00]** this or whatever if this is this or this or that is that then execute that okay that Mak yeah because you also have to consider things like the API right or the VP jaxs right so because maybe if you're disabling it the other way it could happen that it was also supposed to run with the request with the admin Ajax and oh that's that's another thing hat so much ad I I hatte it so much yeah yeah most people still use it right instead of using the yeah I mean I mean I remember in know back in the WordPress V2 V3 days ad. PHP was a thing that was born out of necessity you know back in those days there was like absolutely no other way for JavaScript to talk to the server you know like there there was it was needed something like let's say you click a button and you needed something to happen the server thing know I click the button right so you needed like a middleman to do that right and admin.php was the only way but as you can understand it's a backward compatibility thing so when you look at the code if you literally just open the code of admin.php it runs so many things before executing your request so the load it puts on your server is enormously High compared to if you switch to rest API so for example if you if you if you use use big cash I'm pretty sure you use B cash and you would see in a lot of places it does like a very Swift animation like hey do you want to do this yes no you know Purge cash it like you know gives you a tick sign like **[01:30:00]** all of that but if you open up the network tab not a single place it's using add.php not in a single place every single call is VI rest API every single call like pus cash has its own rest API that it was built on and again as I said like the architecture is the key you know the engine get paid for their knowledge and the architecture and the design the DSN and all of that that the code is just a byproduct to it if you don't see the outcome you know like like at that scale like you know you can't do that right so that's that's that's what I was talking to you about right like if you have rest API rest API was built for this literally you know from like it was a pretty new addition to what press like pretty new right so when it was built it was built knowing that okay this is going to be used and people can extend it create their own route can do like get patch put delete whatever and then it does not come with any kind of package right so you just extend the WB RPA class you just create all the different methods like all the end mods that you want to do and what you want to do on that endpoint right so when the Call Comes you just register the your endpoint like let's say slash Das uh you know this/ V1 SL example right and then after that whatever comes that particular method is called and inside that matter whatever you do you always return Json inherently because it's like it's it's just build to return Json is it you said it's not doesn't have any baggage so running **[01:32:00]** that versus there's there's no plug in well what plug is do you run if you run arrest API request or do none of them run and you have to automatically or on your own run on the tools that you actually need if you need some tooling from plugin it's just like if if you're using WB R API it's just WB config.php creation of the you know the the main like dollar wpdb you know the connecting with the database like you know make sure that you have all the global variables set up and then it says looks oh this is a rest API request so like you know there's a constant that is set for that this is a rest so go to the rest class you know and then inside that class it looks for the path like okay do we have that registered like if you go to any set and just randomly put wpj SL something something it would give you a JS like no route exists for this you know instead of like a 404 it would give you like that because like it doesn't find you that so it would look for that okay I do have this endp registered okay so I don't care anymore go there look at whatever that that is doing go to that end part inside that Endo what is the thing that I'm looking for is like let's say you know Purge cach okay what's look at the look into the PGE cash whatever it's doing do that there you know no more baggage and inside that if you want to use any of the global variables like wpdb or something you can do that the global Z are still there but what I'm saying **[01:34:00]** is if you look at admin.php just comes with way more inherent so if you what I'm saying is if you convert the exact same thing from admin Ajax to WPI you will see massive performance Improvement and that actually happened so we gave this recommendation like like WP WP maker is a plugin that a lot of our customers use right and we have amazing relationship with them and I told uh the team like you know you know what you guys need to do this you like like let's let's let's like the uh nons is another useless things you know which I hate like it's not useless it's amazing for logged in user but it is pretty much useless for log like non logged in user okay but anyway so we were talking about this non thing and that's where this entire STP I think came in so if you look at wbp maker let's say I think one year one and a half year old version today's version the entire plugin is running on RI the entire plugin every single thing like adding rating to everything is rest API there's no more add.php wow and that it still gives you all the functionality right so you can still access any function from a plugin if you need it or do you need to do something different in that case because if you're using admin yeah I mean it's the same thing here as well right like you can still call the same function me same everything just now removing all the baggage from the yeah yeah now everything is in the in the rest API so everything is properly so if it is like a delete request so for example let's say uh Purge op cach **[01:36:00]** right now think of it like it's it's a purge request right so obviously it's a delete call like what would it's a delete call right so like that right so you can now design the structure things in a much more structured way and not only that now you are opening up you are building this for performance for your own but at the same point in time you are getting like buy one get one offer because now the entire world can use your rest API to do whatever right so like for example if you're using B cash you can now integrate the rest AP of discuss cash in your own application right think of it that way right but we it for performance but you know get buy one get one you have the entire documentation of this API feel free to use it right okay and also has the added benefit of you can use it headless as well yeah so imagine like yeah so imagine in your python script something happened you want to purge cash for this post ID how you going to do that now you have red API so just make a HTTP call boom cash is cleared yeah that's true and now all the block editors built using the API as well right yes yeah yeah yeah yeah yeah so in in in in the block editor world uh I think I would put myself in the hybrid Zone I know there they teams that are like oh I hate block editor they're like full FC but I am in the in the in in the world of the hybrid you know I don't personally like the full FC mode and know to be very honest with you I mean **[01:38:00]** it's great for normal websites like you know like like basic websites you know but but when you were building complex websites where let's say you know if this the manyu would needs to look like this you know then for this people if they're coming from this country then this needs to come and a lot of complexities there I would love the hybrid approach the hybrid approach means is basically like still using the old structure of themes like having the PHP files and all the Logics there but for the content use the blocks you know all the content is coming from blockor so we are creating like custom blocks so you let's say um I don't know uh important Note Block like that's like let's say Aster signs so I would create you like a custom block for that right so use that block so use block for the contain but not for the side design you know okay because in the side design part when we using the like in some part like I would still use the themes. Json and all of that right but that's why I said like the hybrid right so I would not fully rely on the Block to create everything you know so yeah interesting okay so you would say it's it's a it's block theme basically but you're still using PHP to create the main templates instead of using the fullsite editing experience to visually design those and get them from the DAT yes yeah PHP is insanely powerful and you can handle so many complex scenarios inside that you know like like imagine the like okay if a user is subscribed to this plan then show this Banner on top of that otherwise won't you know if **[01:40:00]** you try to do that on a Blog it would go crazy but in PHP it would it's fine like you can just create like pretty easy you you might even create like a custom block for that and just put that there but it's actually all the logic is handled at the PHP level right you know so yeah yeah and there's going to be at a certain level scale it's also going to be faster right yes absolutely yeah absolutely absolutely so because like for example anyone can like for example if you want to add another class to something you know finding that Vlog on every single place where it was versus you go to that PHP file at that class and boom is everywhere it's like night and day difference right right that makes sense speaking of PHP right you know PHP for for those who don't know evolves and may people just know about PHP because they get warnings like now it's not going to be supported and you have to go to this version and then warning if you go to this version everything might break right so that aside right uh PHP has evolved a lot right there's a lot of new features that other languages had that now PHP has how much of that would you say is used in modern WordPress are are they using a lot of the new PHP features yeah yes yes yes they see the thing is here's the thing right in the WordPress world because as have been a core contributor so that's why I'm telling you this from the core contributor perspective I it would be amazing to just you know wish my w and just make everything modern PHP but it's just so hard **[01:42:00]** knowing there are large corporations who will still stick to this version or X version of PHP and they're not going to upgrade right so the WordPress coure team always takes like you know slow progression like okay we going to deprecate this then we going to take it away because otherwise if they just to do something it it's going to break everyone you know it's just like oh my god what have you done and like it's outcry happening all around the world right and major website like imagine what if what Brazil is an update and you know like white house. uh. goov dog just just shut down right like that's that's not a good thing right so you can't do that right but yes in the modern world at least when I'm writing any code we are building anything um there are two uh things that play around in my mind so if I'm building something that I know is going to work as a back end doesn't has to ship to as a plugin I'm going to use the the latest version of PHP all the features you know like the thing that I love about the new PHP is not just the speed the adjustment time compilation all of that the the thing that I love most is the strict typing which was missing previously so now I can say this particular argument or variable is only going to be either string or an integer you know nothing else throw off at a letter if anything else you know so maintaining code becomes very easy because everything is strictly typed you know but you know as I'm so even in all the plugins that I write still I use strict typing but not at **[01:44:00]** the level because again as I said right I have to maintain 7.4 if I had to maintain 8.0 I could do way more MH you know but I had to maintain 7 4 so I cannot do like string or this because that's not supported in 7.4 I can do string or if the if I know a a particular variable can be multiple things right I just had to omit the the the strictness from that because I know 7.4 doesn't support that so knowing all of this is the most important part but yes PHP even I think one of our uh colleague just ran test yesterday between 8.3 and 8.4 and it's like insanely fast insane insanely fast yeah yeah I want to try it but it's like H it's scary has to be a new if your code is PHP 8 running and fining 8.3 I don't think it's going to break in 8.4 you know I mean it it it would have broken in pretty mucher zero okay the last thing that I I think makes at least it's a question that I always have and that I guess a lot of people and the space are going to have as well and companies particularly so caching is great right we've talked a lot about caching and performance and the thing is you can cash a lot of things especially if it's a regular like even a News website you cash everything and practically everyone gets the cash page but then you get into okay so now I need logged in users a lot of people have membership websites or e-commerce websites and once you're logged in then the whole story changes is there a way to op imiz this such that let's say **[01:46:00]** you know you're using woocommerce for example or or anything like that such that you know most of the site really is the same we don't want to change everything for the user it's just that we need to know their account related things and whatever they have in their cart right that sort of stuff but we still want this the rest of the site to render as fast as before is there some sort of hybrid approach to caching where where you can do something like that or is that in the word for space too complicated so I mean the the question that you asked it's it's a very amazing question when you were looking at a web page you were looking at a web page from a user standpoint right like like from user now take two steps back and look at look at that web page from a server or or a computer standpoint right to them it doesn't matter like what it is right like like the page might look visually same but it distinctly different right the body might have five extra classes when you are logged in you don't know that it doesn't make anything look change but it's there right there could be some extra JavaScript the script like in body script added into in there you can't see that changing anything visually but it's there right then there are like let's say if you are a pro let's say let's say if you are a platinum member you're supposed to see a banner with with like a like a cap in your head of of your image or something like that but if you are like something like that you might see like a button to upgrade right so if **[01:48:00]** you forget about the front end like how it looks go to the view Source look at the view Source the code Source the HTML and do a diff like what it was for a logged in user versus what it is for three different locked in user you would see that the diff is completely different for every single user you know there could be nons you know that you know is different for user to user right so there are so many variables that are going on behind the scene to a human eye naked human eye it might ah it's just like the card it's just that but no you know just to take two steps back and look at the whole picture then you would see oh my God so many things are different between each user you know and then depending on how complex your system has you know like as I was talking about like you might have membership you might have like add-on oh you have purchased this now I want to give you this like so many variables coming into play right so at this point what what is basically caching you know understand that what is caching caching means I don't want the origin server to execute the request that's basically it right now if I don't want the original server to execute the request Bic I have a cop of it so like it's it's like having a Xerox paper right so like if if you need a electricity bill and I have a PDF I'm just inste of you going to the electricity company this is the PDF here you go you know so that's basically reducing the you know like you talking to them dropping an email 10 **[01:50:00]** emails between and then you're getting the PDF so I'm reducing that right but now for every single user if the PDF is different right uh and like you understand that what I'm saying right like you cannot be I cannot serve you the exact same thing and at the same point in time you cannot ask the server oh just execute this bit of HTML and don't execute the rest because it doesn't know that like you need to look at the life cyle that the request comes it goes through the funnel starts from the the very top HTML and then the head and then the body and then the just goes through the entire process and then at the end just gives you that right and that's why you might see a lot of the times if a fat ler happens like a part of the web page is shown and then boom something went wrong check your email I I don't know if you have seen that in in worldpress like that's a pretty conv that means like the HTML was rendering rendering rendering and suddenly the fat happens so when it returned it like a broken HTML like some part of was there but the rest is just broken you know so yeah I mean I mean that's basically that's a great explanation so it's not as easy as it would seem because the whole page is drastically different between ex pages so that you can do it what what we tell the customer in in scenarios like this is check a number because you have Google analytics so you know exactly how many peop are converting or purchasing or whatever right so think of it this way in your head create two buckets one **[01:52:00]** is the loog the Lookers or they might they basically coming to your website reading blog articles looking at the products and they're not going to buy you know for them C is is going to take care of that so you don't have to worry about like the server resources of anything but there are like the buyers you know for them make sure your server has ample amount of resource to you know accommodate your buyers you know it's like when they come your server is not overloaded you know to accommodate the buyers yeah oh that makes sense that's a great approach to handling so whenever a lot of times we see hosting and we'll look at their packages and it'll say something like for 100,000 visits or for whatever but that's not really people should be thinking of they should have two buckets right it should be like okay maybe I have a million but they're only Lookers like you said but I have 5,000 that are constantly going in in my membership okay then I need to make sure that I can handle the 5,000 I know the other ones are going to be just fine so in that particular scenario so let's say you have a million but 100,000 of this are buyer right in that scenario what you need to keep in mind is two things right your server needs to have enough capacity to accommodate those 100,000s buyers even in the repeat cases so like let's say like in some day some extra people came and then there for two days there nobody came right number one that scenario and number two is for the other 900 uh you know thousand people right like the rest of the people basically right the **[01:54:00]** cash is going to take care of that until you click The Purge everything button you know when you do that you need to make sure that your server is capable and enough to at least accommodate that on cash request until it get cash it that makes sense that makes sense you know especially if you're expecting a surge of traffic right so I mean surge is not a problem right if everything is cashed yeah so you like you are here and then boom like not a problem it's fine you know but if you purge before a Sur Purge even if even if there's no surge so let's say this is your request count and you are running on a server that is like very small tiny server which can accommodate like let's say you get like 10 20 buyers every day and that's fine you can accommodate that but you have like a lot of Lookers right and they are like going like that and then you one day you click Forge everything so everything is gone so for a second or for a few seconds it's like going to go down like this and for that time it's going to like the request is going to come to the server to you know again everything going to you know warm up and you know cash and then it would go that for that period of time the server is going to get overwhelmed with all those request right so to make sure that the server can have that ability to handle otherwise the server is just going to get overblown because just it was not ready for that that makes sense thank you that makes a lot of sense so what do you think or **[01:56:00]** what would what would you recommend for agencies or companies that build WordPress sites um to use for tooling for example is there something to figure out because a lot of these cases WordPress I repeat this to a lot of people WordPress is very fast WordPress itself everything you mentioned all the L yeah even with that fast insanely fast if you're not using a ton of plugins that are slow doesn't matter if you're using a ton of plugins it matters if you're using a ton of plugins that are slow that are slow and so is there a a quick relatively quick way or or visual way that people can go into site they're building it and then suddenly they feel it's a bit slow maybe they're using query monitor or something and they see oh wow if IO this is there a way to sort of see okay so this plugin is C say every page to be slower maybe I should look for an alternative or or build that functionality into the site itself right what what would one use for something like that uh if if they don't have a like a team like yours uh access I I I honestly think uh there is no exact tool to give you that answer right intuition plays a key role here okay and I'm telling you why okay so if you started with a website that is insanely fast right I'm hoping that you start started with a very fast WordPress website as you was saying and you are building things when you are building things you like make some settings changes you as a logged in user you open up the front end click few places you're looking how things are doing so you **[01:58:00]** have a very good understanding like this much time it takes as a logged in user to navigate on the website right suddenly let's say you add plug-in X okay and then you doing the exact same thing but now you should automatically feel like it's H it's not that fast it's it's like is it slow I mean like if that question coming in the back of you is it slow that is that coming in that means it's 100% so and that's the time for you to open up the network tab refresh the page look how much time it took to like you know came the response or generate the response whatever like you know just look and then start disabling the latest plugins that you have added and see the differences because Network tab will give you the actual number right but the intuition will give you like it's it's like I think something's not something is Jiffy here like you know something is not feeling right here so that feeling is is something that would come if you are interacting with that website every single day you know exactly you know this this much time it would take you know so sometimes it happens like you know you haven't made any changes you haven't you know do anything but there was like some Network delay or something that's like rare scenarios but nine out of the 10 cases like it's either you updated the plug-in and that that it has something in it and something has happened and you know after that you were feeling the slowness I that's a great suggestion I what I find myself doing is with the health and troubleshooting plugin that the core has yes yeah yeah that's an amazing **[02:00:00]** plugin yeah I don't know why it has so bad reviews I recently checked but it's great I mean I I it's not for average users it's not for average users and they they think they broke the side but it's only for them so for for those who don't know that plugin is very nice because it allows you to specifically only enable one plugin so but only for you who is looking at it and so you just click that and it will disable everything even the theme it will fall back to a base theme and just leave that plugin and you can browse aside oh it's working okay now let me enable another plugin at the same time yeah and then my Fe check yeah exactly and you go one by one you're like one word of caution that do not use that help and trouble Sho plugin if there's a fatle error involved like let's say some plugin is giving you a fatle error do not use that because imagine you enable a plugin and boom you get a fatle error now there is no way for you to undo the like go back from you know the help and TR shoot to you know like that makes sense just beside that it's an amazing PL and you need to sort of know what you're doing but it's very helpful and that's another not for fatal errors but for just for for Speed performance and you can very easily see like night and day difference just turn this off oh wow now it's loading in 02 seconds great they turn it on and now it's 1 second what's what's going on and now you know it's that plugin that's causing the issue and and maybe **[02:02:00]** what I found I don't know s what you think of this but i' I found that sometimes a specific plugin will affect the site much more in one host than in another host and it's yes it's so straight I me probably the the the processing power uh or or absolutely CPU uh clock speed or something but but I a lot of things are involved it's it's it's purely Hardware so like for example a lot of the host where you can get cheap hosting uh like you know like everything has a dollar value right like if you're getting something for cheap that means something is happening right and what happens is they oversell their system so if uh like even we use virtualization but like even that has to get limit right we never even come anywhere close to the limit to make sure that everyone every one of our customer has Breathing Room enough Breathing Room not just like breathing like enough breathing room right so but what these companies does is they follow the approach of the airline companies right you know the airline companies over sell their seats right hoping that some people won't show up some people will get sick and exact same thing happened with this this these guys right they over they put a huge amount of people on a small server so that what happens and even that server Hardware is not like like like beding a or something like that it's like yeah it's um averagely good server right and then it's like over congested right then on top of that what kind of dis they're using like a lot of people say SSD but at what extent you know like are you using SSD like a lot **[02:04:00]** of the lot of the hosting companies like will give you nnx uh reverse proxy caching you know so they use SSD only at the caching layer whereas at the like the all around the server the actual server is on like normal old HDD okay and in in yeah it's it's very common very common right or in some cases the this the the file server might be on uh HDD or something or the databases in SSD or vice versa something like that right so a lot and then the networking right how many uh like how many back moves do they have how many uh like alternative Network do they have like if one is dropping like if one is having like a lot of bad connection is there a fall back to fall into like like a lot of things come like what is the throughput level like what like a lot of these companies even have like limiting like okay like this cannot be like more than this like even if you put a zip file in that server and try to download it even if you have like a 1 gbps connection you might get like 200 kbps you know 300 KPS because they are literally restricting all of that right so like everything gets restricted right so that's why you see that night and day difference so there's like the the hardware the network the like what kind of a ram you know like what is this clock speed of the ram you know is it ECC Ram non ECC Ram like lots and lots of things right like like I I can just go on for ages like lots and lots of so yeah it makes a lot of sense because when **[02:06:00]** we think of buying hosting we just oh okay yeah SSD perform how many CPU we sure but think about it as a I don't know if you've ever been a gamer you are are you building a performance computer to Video Edit you don't just buy RAM and just buy ssds you have to do your research and find out which ssds what speed what Ram what speed and average the average Jo won't understand that right the average person won't understand that so for the average person what I like to say is if you if your website is just like a hobby you don't care about your website right like it's like it's fine like if it's up it's up if it's down it's down it's it's it's not hurting you go with like whatever choose whatever the cheapest that you can get like maybe 50 cents even free hosting I don't doesn't matter right but if your website is earning bread for you and you know like it's it's the bread earner for you then think of your hosting or you know like like whatever company we're choosing instead of like a hosting think of it as like a investing investment on a mattress like like let's say when you get a mattress right like you you are not just using it for a week you are get you are like properly looking into it testing it and then you would like it's like that right so it's not just it's as I said like big is not just a hosting company hosting is just a part of it we are a service and engineering company right so hosting is just something that we do right so the support the handholding the knowledgeable team that you **[02:08:00]** get is just just just unimaginable like for example like like big good has so many things like I mean it's funny people are completely unaware of uh so let so you know about big sc's um cash right yeah obviously you do right and vixus cash also comes with a lot of hooks filters the rest API that I just know about today if you if if you're interested you can just let me know I would literally give you the documentation link of the rest API so you can see the entire RI uh like how you want to make request and all of that but anyways um so that's the B cast that you know right I think probably it's been about 2 months or something like that we have released uh biscuits migrator and so which is something none of the the people in the real world like we we actually we are so I mean we we didn't release it I I mean by announce it I don't want to say release it we released it but didn't announce it publicly like in like a big drama launch like oh we are doing this uh because you know we it it was there in the alpha beta stage for even longer than that uh it was just being tested and stuff but I think for past one month or so it's been like the stable version we are getting like around 98 99% success rate uh with a plugin okay so the the thing is now that's that's where the the Dilemma comes right the the average people that comes to B they expect their migration to be taken care of by some expert person right right right and that is not a bad expect **[02:10:00]** that's a great expectation right but that's again again you know that's that's what I was talking to you about like not one hat cannot fit everyone or one shoe cannot fit everyone right the same thing when you look at it right as a agency owner this is like so daunting to you oh my God for every single migration I have to talk to these guys and they have to migrate it and why can't I just do it myself right you know I can then schedule it accordingly like I can talk to the client plan it like okay this is I'm going to start it from this time Saturday like I can do so things right so so now BME is like an amazing oh my God like what has been all I've been looking for this for so long so you can see the same thing has like two sides of coin depending on whom you are asking and what is their experience level right so bcus M was built like despite you know of all of that it was built to be dead simple like you know when you use it you just just go into you know you biscuits portal you generate the miction key for the site so let's say you have a website called example.com in some other host okay and you want to add example.com in biscus so you go to biscuits you click on ADD side as a new site at example.com it like takes a few seconds to set everything's up right when there you haven't made an DNS changes or anything yet right so when everything is set up right so now example.com is part of your account right so now you get an option for bis **[02:12:00]** migrated to migrate right so you click on that a popup comes up it gives you like walk you through okay okay first you need to click download the plugin install a plugin like going to the wp admin plugin add you install a plugin download it now go to the next page this is your migration key copy paste the migration key start migration boom and everything else is taken care of okay right so this is already being used by a lot of our Enterprise customers who are as I said like you know like you you know like they want control right but uh when we were like internally talking about this and as I said like it's been in release for months right uh we were always going this back and forth like what like if we do a PR relas of this what if customer thinks oh my God so from now on bigus are not going to take care of our migrations we have to do it on our own that is not the case by the way it's not going to happen but it's only a matter of second between a good PR and a bad PR right so like it doesn't take a moment like someone can just post something in some social media and just twist everything and takes a completely 180 degree turn right which we don't want right so despite being there working flawlessly right it's just just like that so it's it's it's like that but I would love you to use it it's definitely try it that's that's great and it's I I understand the scenario perfectly because yeah and there is another thing there's another thing that is coming into the pipeline which something that I **[02:14:00]** think we going to that's something that we will do a PR because it's going get on every single customer websites it's basically called biscuits helper okay so what that's going to do is we basically created so we we it's not something new we always use this but we use this as a muu plugins when customer wanted or something like that but now we made them as modules right so there are different modules which you can enable from BX Goods portal as well as WP admin so from both places right and now you have this so let's Let Let me Give an example right so let's say you created example.com okay and you want transactional emails to be sent that are properly authenticated right so we know that thing like you know you send an email it goes to the spam box you want that right and you also want an email activity lock like you know when which email are going getting sent right so you click a button inside bxs portal like you know inside B portal it would like first you would obviously create an email ID like no reply at there of example let's say for example right beside that you click a button and it would just like big help already there in your website right it would just enable that it would just do all that thing behind the scene and enable that module and boom now you have fully authenticated SMTP transactional emails as well as email activity log that log you can see in WP admin as well as in bxs Portal wow in both places exact same log and inside bxs portal when you were seeing the log right whatever time zone or time that you have **[02:16:00]** select like you know that you can go to Wordpress settings and you can can choose like this is my time zone this is the way I would like my time to be set like some people use 24 hours 12 hours whatever it would follow that and show you in your local time that you know this time this email was sent this is the email body of that you know it was sent to this person and this is the debug log and the debug log is basically a bunch of technical nonsense like back and forth between the server and client like you know server said this client said this server s this client said and like if something went wrong and the wasn't sent it was super helpful you can just send that to us we can D dig deep and see what happened what went wrong where wow that's great typically you have to use another third party plugin to do it and it adds more stuff nothing and not only that then there's coming user activity logs you know nice so again same thing if you just enable use activity logs it would be there in WP admin at the same point in bxs Portal the in the same data you would see in both places so you can search and you can search the user activity log based on anything like username IP whatever right and you can just search pag whatever you know you can like let's say there are like 10 columns showing you can go to the screen option uncheck three columns that I don't want to see the three columns everything is is up to you and and like it would show you that you know there is even **[02:18:00]** an option which is disabled by default that is uh tracking the option data on change right like like like like let's say if I make a change like like this this came out of necessity right um so a lot of the times customers complaints like okay I haven't done this okay so you guys must have been the one that have done this and then my side is is broken right and it is impossible to track that right like who did it right so when user activity log is will be deployed which is like in the q1 of 2025 you're going to do that um and that's like the plan right right so what's going to happen is it's going to show that op like let's say the plugin setting say like some option Changed by this user from this IP and that right and then if I enable the like you know and by default we are not tracking what was the old value what was the new value because it's like going to increase the log data unnecessarily and it's also for the Privacy reasons don't want to do that but if some reasons it's like happening and we want to like nag that exactly what happened we can turn that off and now Not only was see me that the data was CH you also saying previously the data was this and now the data is this guys so you can't put the blame on anyone yeah that's that's excellent because a lot of times it's not that they want to blame but that they don't understand the thing that they did exactly exactly I'm not I'm not blaming the customers it's not their fault right like you know like they I mean **[02:20:00]** they might let's let's say for example a customer is working with you for seven years they have such a trustworthy relationship with you but they might be using us for 6 months right so if maybe you made a change that broke the side but the customers's point of view they thinking us is more likely the mathematical probability is way higher than the finger pointing to you right you know because they have been with you for so long so it's we understand the complete mathematical thing behind it but it's just what it is but it's it's coming right so we are always building this this things so now with the biscot helper there are two more amazing thing that is coming and this is all of this like we listen to our customers problems and requests so deeply like everything at the engineering team is I don't think I have worked on anything that is not driven by uh like actual data like like it can be kpi NPS or customer satisfaction or customer anything you know even if one customer is looking for it then that's a requirement I don't here like you know that's the Mantra basically you know so I remember a lot of our customers coming to us so let's say they are coming from square space or Wix or block spot something like that right and they have the site so they have a domain so previously they have something that block spot whatever right and but they now have purchased the domain but they don't have a website to show at this point right so they just want they coming soon or or let's say for a lot of agencies like you right who are working behind the scenes like **[02:22:00]** let's let's say the helper page or something right uh like you are adding the help and troubleshoot and doing things but during the time you don't want any other user to visit the site so you want like under maintenance page right so again modules you know now you just enable a module boom that's have coming soon yeah yeah and that is just for the normal user the logged in user the WB admin request the rest API request admin.php on they will all run perfectly just the normal users will see coming soon at the same way if you enable the maintenance page it would show you we you know we are under we are working on something like that it's like very simple two lines you know so we didn't wanted to make sure to add a lot of text like initially the design that I did it it had a lot of text the team like the entire team gave a feedback like you know just reduce the text you know like build another design that just have the least amount of text because when you have a lot of text customer will have request to can I change this text you know you know make it more personalized so that part we wanted to remove because I wanted it to be so generaliz like we are under maintenance that's it right yeah maybe they're just doing updates you just want people to know there's updates don't yeah whatever so yeah so like let's say like you you knowingly want the site to like you know like show a mentalness page for let's say 15 minutes while you are doing something behind the scenes because you know the design might break or something might happen **[02:24:00]** you know that right so just turn up that option on Boom you have a maintenance page do your work clear your cash turn it off clear the cash boom you have it that's great is there a way for to activate that I'm sorry to throw this at you but is that is there a way to activate that such that it also affects regular logged in users I mean not ADM of course but uh we can but for now yeah but for now I mean I I mean I have haven't received that request yet for now I am like uh just ignoring any logged in user forward if the yeah but going forward if the most customers says like you know what know just allow admins you know because again you know my reasoning behind that was I mean okay you were talking about admins what if in your case you have a big organization you also want editors to have access you also might have like a custom user role setup and you want them to have access I can't just go ahead and do that right so yeah so yeah I that's the reason I did like I I did it for the logged in users so like anyone who is logged in they would not see the this page but anyone who is logged out they would say it and the benefit of the biscus helper is that you know going forward if we have to release a new module all we need to do is the module just release that make a release of biscuit helper Boom the module is everywhere you know as simple as that so yeah that's that's the thing right we are always working so hard Around the **[02:26:00]** Clock uh like like like users can't see that but it's like happening like if you use BX M you you will know what I'm talking about like it's like like I don't think you have ever used a magal system as intuitive and as simple you literally don't have to do anything just space the migration key it will ask you are you 100% sure you want to start you say yes sit back relax and sip from your coffee and that's it okay let me ask you a few things about that so so it will copy obviously the files we copy the database it will do the search and replace for you and leave everything as this what happens with that domain itself that last step so at the very end you need to for example and all that good can can you give me an example like like you are moving so let's say you have you have a website and you called let's see so the website is going to be called puzzle journey.com right and so you have this website and it's living on X xhost exh it's there and it's it does already maybe it already has Cloud flare maybe it doesn't but you have the domain somewhere you have it here and I want to migrate to Big scoots make it as easy as possible so I go into big scoots I add the domain as a new site and it creates the empty site it gives me the key I go to this other site I put the the plugin in do it start it will move everything over right there's a couple of things that I typically ask so the first yeah the first thing is when it's doing that **[02:28:00]** is it showing is it putting the other side in maintenance mode so no new orders or things like that come come through right that in some cases in some cases we don't need that and then the other thing is the most important one what about the domain the DNS changes at what point does it do that or do we'd still do that part great question amazing question okay so when the migration is happening right during the migration period you are not supposed to make any changes to the website I mean that's like a basic thing every everyone knows that right but in terms of putting to the maintenance mode no bis migr doesn't do that by itself because a lot of the customer might not even want that yeah if you want that you can just slap a MIG like a maintenance plugin on the main side to show we are under maintenance then you start the migration so it would migrate with the maintenance plugin and then if you are migrating it that means like if you are initiating the bation that means you are capable enough to handle your Dess like you know changing the air cord like shifting from this IP to that IP because when remember when you added that example.com to biscuits right it fetched the DNS and maintain the same DNS as it was before in the previous host right like oh so it's just a matter of changing name servers no just changing the record literally the record like you you like let's say for example uh take example of example.com right so when you create example.com you add that to bigots right let's say you add example.com to bots what it does is behind the scene it **[02:30:00]** would create like a free Cloud flare account for you and it would F all the DNS record from the old host and put it into the cloud flare account right now if you are I don't know I I'm pretty sure you have seen that step in during adding a website into BX cods it would ask you do you have a cloud flare account or not if you do it asks you to provide you the retails because in that case we would use your account to add the domain instead of or like you know use that domain if it already there or we would create a new Cloud flare account like if you already have a cloud flare account why just create a new one right so just provide up the details API key and we will just then use your account to maintain everything and everything right okay so now for this particular example scenario let's say you don't have the domain on cloudfare you using go like at a DNS or something like that right so you add the domain in Bots right bot Fitch the the all the DNS records that are there it create a free Cloud fa account adds all the DNS record by the way all the DNS record the a records and everything is pointing to your ex host IP because that's what is in in GoDaddy right so it's pointing there then it gave you like this is your new name servers right like you know this is your Cloud for name servers right so even before starting the migration what you supposed to do is first you need to change the name servers to the cloud flare because even after you made the change to Cloud flare **[02:32:00]** nothing is going to change because even Cloud flare the IPS are still pointing to the ex-host right when that is done when the name service change is done then you start the migration Boom the migration done then you go to DNS all now all you have to do is just change the air card and just just change the IP from X to whatever B IP you have you know so that's the expectation like if you are starting the migration you have this basic knowledge of manipulating DNS or like like this I mean this is the basic expectation that we have like this is the basic that you right so at the very at the beginning you first do what we typically do which is first point the name servers have everything as a copy now you have it here but now it's connected is it okay and then at the end you just change the the a record or the C name a yeah that's as simple as that yeah because you know like uh all the hard part so for example if you I don't know if you have used other hosting platform again I'm trying not to take any names in in this podcast so other hosting platforms use their own approaches of Wordpress you know where you would see like uh if you go to the route like like if you literally just open up WordPress right so you have the actual structure of Wordpress like WB contain and all that stuff like the the actual structure but on C host you would see that is completely destroyed right like they have WordPress sitting in some locked in directory plugins in some other locked in directory I'm not going to take any **[02:34:00]** names but I'm pretty sure you know who we talking about some sings going on there some sings going on there right so and in some cases you can't even F the WordPress score because they have completely different user permissions and stuff so you can't even touch that right so the plug-in is doing it everything oh everything like it's like like fetching everything doing regenerating if needed in like you know doing the WordPress thing everything it's doing everything all you need to do is start relax take a coffee watch Netflix come back change DNS boom and it start maybe probably before changing DNS use like a host file to local host file to use the IP to check everything is fine and then just you know use the DNS SC as simple as that nice nice well I'm really looking forward to that that part the maintenance mode as well and then the email stuff you said for for authenticated email so would that be with the person's existing like third party email service or does Big C scuts have an uh transactional email service B have their B have their own email server that is free of cost for every single user every W yeah so yeah if you go into your wpo portal on the left hand side at the bottom left you would see a section saying email you can go there you can create email IDs you know so yeah like now obviously if you're using Google mail or Google workspace then your emx recorder pointed to Google so this is not going to work right but if you want to use big SCS as your email provider so let's say in your outlook or apple mail or whatever you like you **[02:36:00]** create an email there and you just know add all the SMTP and you know the IMAP details and now boom you have your email or use the web email so they have like we have like round Cloud you know that is the web email interface you can use that or you can use any local system thunderboard out regular email as well for the back out oh that's interesting know that and okay so so but it is the only thing that is not supported is sending bulk marketing emails broadcast that is yeah still want to use something else right okay that's great to know I mean especially for for smaller businesses that don't want to be paying for another third third party absolutely AB keep everything there that's great to know I a lot of hosts don't so the very cheap hosts provide email but then the the good hosts uh managed WordPress don't offer it and I know it's good that you do it's it's a reason it's it's a it's a painful thing to have another thing to worry about but again as I said right like we are a customer obsessed service and engineering company so like for us it's like yeah it's fine like customer needed we're going to do it so it's it's just like that but yeah nice that's good to hear so it one last thing on that is the so if if a WordPress site is set up basic where say a new site on big scoots and it sends outbound email because I don't know login password resets new account that sort of stuff transactional emails yeah that's automatically that just works through WP PHP mail out uh through big scoots do they do they have to **[02:38:00]** configure if you if you set Yeah so basically let's let me give you an example again so example.com right right let me walk you through all the possible scenarios you own example.com okay so at this point there are two possible scenarios either you already have a different email host like Google workspace or Microsoft 3605 something like that so in that scenario you would have your MX record setup pointing to them in that case big Goods is not coming into the picture right because you know your email is taken care of by Google or Microsoft or whoever you were paying for your email right so that's one part now another part of the story is is you bought the domain but you do not have an email service you're just looking for an email service you go into the into bot's Portal go to the email section there you would see that there are a literal section like you just one click it would set up all the MX and SPF DK IM everything for you because it has the DNS record and everything so it would set it up now you're good to go create all the email IDs that you want so again let's say for example you want to create Hello at example.com and no reply at example.com right so hello at is for your personal one like you want to interact with people and no reply one is for the transactional one right said each email ID you would see a button and a text that would say use this as my SMTP email ID beside hello and beside no reply so now you it's up to you to choose like I want to use no reply as my transactional email so **[02:40:00]** you click on that button boom behind the scene everything happens everything's done and from there on out it's just any email in transational email is going properly and authenticated and sign yeah nice nice That's great especially for like I said smaller businesses or or hobby sites that's excellent no I think I think it is it is great for big sites as well I mean depends right like like we have seen people even big size using it uh like they have like some email set up right and they can just use like they they they are well equipped with like outr or Microsoft Apple mail or something like that and they are knowledgeable enough to set up SMTP IMAP and things like that so it's fine for them you know so yeah yeah it's good yeah cuz typically one of the main steps we do is set up an SMTP provider provider yes and use uh a Plugin or code to and and W config to have that uh that email being through that right and then sort of don't use PHP mail but knowing this that's good good a lot of customers don't want to have another yeah and and another amazing part of visus helper is that it is insanely compliant with uh um WordPress multisite I personally don't like multisite so but still there are a huge audience of multide and I highly respect them it's just my personally I I mean I just feel like multide is just like you know when it's it's just gets harder and harder to scale up compared to having separate site like you know it's separate sides but it's like it's just like as you grow like you have like but for some businesses where they **[02:42:00]** just have like landing pages for customers obviously absolutely like multisite is is makes sense but here is the kicker right so uh for the biscuits helper when it is installed and enabled let's say Network activated it right what's going to happen is for every single site by default every module is deactivated right so you could one to have the smtv module enabled for one site ID uh the you know the um user activity log enabled for another site the coming soon for another side and under maintenance for another site and all of them will work separately nice you know so yeah that's that's great that's great that you thought of that because I imagine there's a ton of multi-site owners that would that would love that feure yes yes yes yes so that's that's the thing like coming back to the beginning right so again you know like like what makes you like truly engineer engineer is like for seeing this like seeing the complexity and then building the system from the like when you are building from the starting to make sure that it can handle that right like you know the code itself it's is is not the the bigger challenge here you know so like like like seeing that designing that architecting that EnV visioning that and making sure everything works you know like like in a in a beautiful way at scale that's the hardest part you know where I mean I I don't know I don't have much trust on LM in that part I mean it just requires so many variables right like like coding like when you think from this perspective codings becomes like 100 times easier to you right like coding is like like Child's Play like **[02:44:00]** when you start thinking from here right because this is where you are actually doing all the brain work like think oh my God if I make this change it will work but then when I add 10 more to this it will like you know pile up and it would become like this you know like sing years down the road you know so yeah that's that's where fantastic It's s I really appreciate you coming on because you've given us so many golden nuggets of both tips for even plug-in developers and theme developers as well as site owners and people looking for host companies what to look for it has just been great I'm sure we're going to be able to pull out a bunch of little Snippets as well individually for people so you can see uh and quote you on that because the I mean some some of these suggestions are are great and also the insights that you provided are there's a lot of things that I learned and I have to go through the video again just to learn some of it more slowly but I really really appreciate your time so yeah is there anyone any team plugin developer who is probably watching this in know going forward I would just have one request for you if you're watching this like I'm literally like I'm literally requesting you please grief performance the utmost priority even on top of your you know like like you know like the the plug-in functionality like if to if bringing one functionality HS performance don't do it just just don't it it doesn't worth it trust me thank you Saia that's great I really appreciate that you heard it from directly from samama he's the expert and **[02:46:00]** again really really grateful that you were able to come if you're watching this on YouTube you can follow us here if you're watching this on Spotify then subscribe to the podcast as well and I look forward to look to talking to you some again at some point it was it was a really nice conversation and same here