Free OpenSource AI Streaming in Toddle! Using the Free Hyperbolic Labs LLM API!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi today I want to show you how you can connect your total web application uh with the hyperbolic AI API and the cool thing about the hyperbolic AI API is is as of right now it is free to use and another cool thing about that is is it offers us AI response streaming so it's a large language model where we can send data to that is fully open uh IS F uh decentralized so it's like open it's it's the real open AI it's fully decentralized and the cool thing about that is uh it's going to send us that token you know token by token back so we get like the AI streaming and today I want to show you how to set that up in toddle and I'm so sorry for wearing the whis t-shirt it's just I still love WIS but I also love toddle and I think WIS and toddle can coexist if you even consider that you can export the components you build in totle and import them into WIS like their BFFs I think they work great together but now we're just going to build this in toled day so let's Get Right started and you know at the beginning we just want to first of all start fully blank so we just get everything out of the template here and what I simply want to do is I want to add a diff block that will be you know the center of attention here and let's give this is a width of 30 Ram oh that is the wrong diff block I'm adding the width too I want to add the WID the diff block I added in the middle 30 R 30 R that's better and 30 R I think that's a good starting point beautiful and now we just want to give it like a nice background color so why don't we give it like a gray 800 and let's do the border at 20 pixels that looks beautiful so now what I can do in here is I just want to add a form in it so we can treat any AI question kind of like a form request right so I'm going to add my form in here and I'm just going to give this like a a width of 100 100% oh a width of 100% and a height of 100% so I have my form in here beautiful and what I want to do I just want to do like a simple example to just showcase AI streaming to you and how that can be accomplished in total and by the way before I continue big thank you to Chris um I think it was Chris yes I think it I'm sure it was Chris if not I'm going to correct his name in the video description but 90% sure his name was Chris he helped me so much and his warm welcome in the totle Community was just amazing and he really helped me get started so he's really he's a sweetheart he's amazing and uh yeah the the tole community is very fortunate in in having him in there because he helps everyone and he helps everyone uh succeed in all the things they do in toddle and thank you so much I really appreciate that uh now in the form we have to add some padding so in total we just go to layout and we add one REM on the site and then top to bottom one ram two so let's add that here and now we got padding in here so now I want to add a text area just a simple text area that will be like the input field and what I want to do is I want to go to attributes and I think if I remember this right I did is uh resize false or I think it was Style sized faults now I forgot the attribute naming convention so we'll just keep this resizable for this video I'm just going to go a background and that background will will be like for example 800 and what I can now do is I do borders uh 15 pixels so I have a nice border and actually why don't we make this 0.5 Ram so it's closer 0.5 Ram I think that looks more more modern and then in here let's give this like 0.5 Ram padding 0.5 Ram padding actually let's do one ram because it's a text input that makes it more yeah more accessible I would say perfect and then let's do a width of 100% And I think that looks beautiful I just don't like that little tick so why don't we just move over to our friend chat gbt and say how do I make an text area not resizable reiz resizable in HTML inline styling attributes because in total the easiest way we can add those things is using inline attributes and it's not resize none it is style it's a style attribute where I add the resize none value in it so we're going to copy that real quick let's go back to totle that's the wrong totle now we're back at toddle I'm going to go to my text field I'm going to add a style attribute I'm going to paste that in there and that did the thing for us beautiful so now we got rid of that so we have that in here I have my input uh ideally we want the input down so what I'm going to do is I'm going to add uh in my form a div block and that will be the center of attention because that will be the chat right here we have the div block and let's just give this like a fictitious height of like minimum height uh five R so we have something to work with I'm going to copy my text area just like that I'm going to go to the form paste it so now it's under here now I can play with it now I'm just going to give this like a I don't know let's do like 20 REM and what I'm going to do is uh for the diff block where we have 30 RM I'm just going to you know keep this set to Auto so now I have like my little AI chat in here and you know let's also go back to the form and let's give this a gap we do the Gap right in here of like one ram so they're like on 0.5 Ram so they're like separate a little bit from each other and now I want to go to the background and I want to do this like a gray 900 so I have that in here I want to have also 15 pixel rounded border rounded rounded borders I have that in here and I now have a beautiful AI widget where my question goes in here I'm going to click enter or not enter and we need to add an enter button because this is a text input field so what I'm going to do what I'm going to propose we do let's get rid of the J in here and let's do it like go to the let's get the text area out of here so we just copy the text area we're going to go back to the form I'm going to add diff under here in that diff I have added I'm going to add my text area back and now in the diff just like that I'm going to make this relative oh it's already relative beautiful now I'm going to add a button and I'm going to go to the button I'm going to make this absolute and I want to align this to zero on the bottom okay perfect let's do uh uh 0.5 RAM on the bottom aligned and on the top on the right I want to align this 0.5 RAM and now it is on the side right here now what I want to make this look nicer let's make a little bit more rounded Corners so let's do 15 oh that's a little bit too much let's try seven seven looks good maybe how about let's zoom in a little bit because we want to have this look perfect because toddle allows us a Pixel Perfect uh design experience and then uh I want to get rid of those pseudo classes cuz I don't like them so like there's nothing on Hover right we want to have it a little bit more matured let's take this here that looks beautiful and we put in here ask your AI and I can do minus and it's greater than and that will turn it like into a little arrow and you know why don't we just make the the weight a little a little bit thicker and we are now able to ask AI in this widget so now in this div block here we need to have a response and we're not going to render a list with multiple responses we're going to do it very simple here because we just want to build a simple uh application to showcase the streaming capibilities and you know what that API can do so in that div block I want to add like a a padding around it of you know one REM and one REM on both sides and top to bottom and now in here I'm just going to add a beautiful paragraph and I want to go actually to the diff and I want to make sure that the font is always white I do that by going in here and just making it white here we go and there we will have our response actually maybe not white maybe a little bit grayish will look uh more professional I think that looks even better better let's try actually gray 300 yeah I think that looks very nice that looks very beautiful and in this diff block now I can make the text inside of it uh um you know a little bit thinner if I now go to the text and make sure that the the weight gets inherited just like that actually I want it a little bit thicker beautiful that's perfect so we got is that that working now now we want to make sure that this is rendered dynamically so we need to tie this text to a variable because think of it like this when we do an API call and send a question that re streaming API is going to send us one word and then it's going to send us another word and another word so we have word one but now we only have word one so we need to take word one and this is what's called in programming concatenate we need to take word one and concatenate word two meaning you have this piece and you put this piece on it so you have hey now I need to concatenate you and then I have to concatenate exclamation point and then after three concatenation it says hey you this is kind of like the principle I'm going for so we're just going to click outside of the canvas here and we go on variables a variable is a type that lets us um store data so let's call this uh response and this will oh oops response and this will just be empty an empty string it will automatically add an empty string in there even if you remove it it'll still um have this count as an empty string this is the nice thing about toddle it's hard to mess things up so now we want to go to the text in here and double click so we go to the place where we can actually edit the text and I want to click on FX and now I see the value in here we don't want the value so let's click on plus here and let's go on response now the value that is set in here is based on the response uh is based on the variable called response so when I now set in here hello Mike it's going to say hello Mike because this is tied to the variable and if I'm going to say hello uh Lucas it's going to say hello Lucas because that's what the variable is saying so the idea is that when the AI responds in chunks piece by piece we're going to add always a new piece of text to that variable so because we have this function running in the background always updating the variable the text that is then linked to this variable uh then produces like this typing effect of streaming because we get the response in multiple chunks so let's just you know start empty because I would be disappointed if I just have like hey you when I start that chat maybe we can add something uh how how may I be of service sounding like a robot how may I be of service how may I be of service that's beautiful here we go and then now since we got the UI going we want to get the ux going or you know we we start adding functionality to it and the easiest way we can do that in total um already having a button here and you know being able to submit a form is um using a custom action and this is where I need cat gbt a little bit and I'm going to walk you uh through the hyperbolic API in case you don't know the hyperbolic API and this is not paid um I I have I'm not affiliated with the company even though the CEO is a very cool uh cool person and uh he's very friendly and and he was friendly enough to get me started oh I see they have animations on their side I have to accit that cuz my MacBook Air is not handling that well while I'm recording so uh in their dashboard this is how their dashboard looks you have all the open-source AI models in here they're really meaningful and very powerful and you know let's just go with Lama 3 from Facebook um that is a cool one and I can test them in here it's h it's fully free right now because they just launched so they offer it for free to you which is use that as long as you can because you can start a business around their API as long is it free is it free use it and you know once you got that users and validated that idea then you know you don't mind too much paying and yeah yeah just expose my API key I don't mind because it's free uh and I don't have my credit card linked so uh they're FS so I have that in here and I want to copy the curl command now normally we would just put this on the back end and just call it a day and you know we would put this in an envir environment variable and make sure it's it's it's secretive it's it's secure now when we want to do streaming um in totle we have to put this on the front end which will expose our API key now this is why I'm going to use hyperbolic API because if that API key gets exposed which it will I don't really care you know for the simple fact that it's free right uh and if I see there's unusual usage I'll just roll over to a new key and as of right now it is free so it's worth taking the risk um because it's free so this is what I also suggested a lot of my clients that I do consultations for I was like if you want really streaming in toddle um just use hyperbolic because it's free no it doesn't really matter if your API key gets exposed or not because it's free and they make sure you have right limiting as of right now so with that being said let's copy that and we want to enable streaming so let's go to our friend cat gbt and let's ask it I have this API and I want to stream the response response the response put the API in here using client sjs and every time I get a new chunk send back I want to lock the whole text to the console now we need something where we can test that JavaScript that code and I'm sure that they are Java Script test online where I can do that if not I'm just going to go to West cuz they have a lot of code um JavaScript code playground that looks good let's try that one that looks fun uh in your current okay let's see can I do something in here one uh return 1 + 1 does it do something or do I have to go pro here let's see there are probably other ones uh JavaScript online compiler JavaScript tester okay that looks good I can run that and yes yes this is what I need so I can do uh return [Music] return hello return hello and if I run this return hello interesting I probably need to do this in the function evaluating your code oh okay it it's just it's probably already wrapping that in an return statement so if I just write hello yeah it's going it's already in a return statement which is interesting um so why don't we just you know go with the flow here beautiful so we have that API in here and ideally we want to look what that streaming response looks like because you know cat gbt doesn't really know how this will work so let's say I just need the JS because that's really what we want now what will happen is we're going to get big objects sent back that are going to confuse our machine a little bit but um you know because we don't really know how the response is coming from that API but you know one step at a time so we're going as you can see we're going to lock that result which we're going to end up with a lot of objects matched on each other but one thing at a time let's put the code in here and you know let's why don't we just open the console and see if we can uh we can work with that okay let's close this and let's run this actually and as you can see I can run it in this little JavaScript tester and uh I want to look at this data object because I only care about the content because as you can see I get this thing and let me actually move to a different let's let me move to a Json inspector here so as you can see I get like all this kind of different data that I don't really understand and that's code and we don't want to look at code but I get this content property saying a a space a this is a token this is a how AI generation works the AI is not thinking about what it wants to say and then talking like a human it's actually thinking as it talks like probably most of the humans too but that's a different story there are also ones that think after they talk those are the uh I would consider myself one of that but uh that's that's a different story for a different video uh but here it goes it produces a little bit of text and that's what we call a token it's hey l l o That's the tokens for hello right it's saying one token h it's sending another token e another token l l another token o and we need to put those tokens together to make it hello so that the AI can communicate with humans so um let's copy this this is the data structure we're getting back let's go to chbt and let's say I get this uh data structure in response now it sends me a lot of other details but I only need to get the content to make it a human sentence let's put this in here and let's do CET gbt make its magic here we go it's going to go through the whole process and on how we can do that and we need to replace this in total but one step at a time let's put this in here and this looks like you know chbt made us some nice code let's go back to our JavaScript executor let's clear our console and let's run this and now we see we get some sentence in here already um which is pretty cool and we see it it streams because we're concatenating uh the content and now at the end when it sends us the done message as you can see because uh they like to do that they just sent you a done um to stop the stream we have not considered that in our code so I'm just copying that I'm going to say fix this paste that's all I got to do and AI will do the rest this is why we are in the information age and this is why we have Chad gbt um we came a long way from uh inventing the wheel to having robots do our work and this is the beautiful uh possibility that this new time offers for us and then we have totle for the other things that that AI can't do yet and let's put this in here let's clear the console and let's see what happens when I run this and as you can see it is streaming the content beautiful I like it and as you can see this is a whole data stream that's going on if my camera gets glitchy just know that uh okay it still got final result and you know some issues were occurring let's just copy we just don't even care about the issue we just copy the error and put it in cat gbt and hope that the AI will figure out what's wrong with it cuz it's way smarter than me trying to debuck or figure out why it's doing it I'm just going to put it in there and it will know it I mean it's scraping stack Overflow and there are a lot of resources it will know what's wrong with it you don't really have to explain it chbt will just know so let's go back to our uh there we have it and let's remove the code and exit this and run the code again and we have streaming going on look at that this is what we call streaming it's very cool so uh and the important thing is that we send each separately as a new event because the way totle works it works in context so uh in order to update the variable we have to send a an uh an event so here we go and this seems like this code is working so what I now want to do is I want to go to tottle and I want to you know I want to prep for what is about to happen and the way we're going to make this work in total is using a custom action so I'm going to go to my files in here and I'm going to go to actions I'm going to add an action and I call this hyperbolic stream I'm going to create this and we're just going to dump our code in here and now once we got it in here we can work with it and we can figure out how to solve this so API key that is okay cuz it's free we don't care now the content in here we want to have this Dynamic for test purposes since we don't want to hijack totle um we want to just say how are you doing and then we're going to make this native later on because it's going to give us a short response great if you work with chunks because you don't want to overload totle while testing then we have stream two you can change the model but we'll just keep it for that what I'm interested is in how we're going to uh return the certain amount of cont context because you see when uh where do we have it in the code when we are logging uh the result console lock result um we want to not just do a console lock actually we don't want to do a console lock but what we want to do is uh we want to log the content uh uh we want to send it back as an event and totle so let's just give this some space because we don't really care about syntax we just want to understand understand the code a little bit more and that's the most important thing so in here where I do the console lock I'm going to lock the result of each time I receive a piece of data from the hyperbolic API so what I want to do now is I want to go and you know this is what we receive here where we receive the pieces by piece I want to do an event in toddle and I had to ask toddle API how to return event data and it gave me this so I'm going to copy this and I'm going to explain to you or try to explain to you how Total Works uh Andreas if you see this video please correct me uh I'm going to paste this in here so the CTX the context we have that in here we pass on arguments and context arguments is what is like the input of this formula and con and context CTX is what it's going out of the formula so I have that in here this is how I'm going to return that action event to return that data now I need to have an event name so let's create a new event in here and let's call this um result actually let's call this result uh or let's call this uh stream let's call this stream let's copy this and let's actually edit this in here and I want to return the stream event now I have stream in here and I'm going to look into this event now the example output let's do uh Hey cuz this could be a chunk that we're returning and the data will need to be mapped to result because as you can see we are cons logging the result and if I go back here we see this is result yes I want this on my side so let's dump this in here and we're going to go back to total and I'm going to copy this value that we call result that is so precious to us and I'm going to paste this in here and then this is how we're going to uh you know update the result so this should be it when I have my result event uh we are then going to uh do that I don't think we need to log any stop unless we want to play any confetti which we can certainly do so let's call this event done and it would return something like true right um or we don't even need to return any data but that's a different story so I can just copy this here boom and when it is done this is representing done otherwise you know we wouldn't get final result um and we also have stream successful so we can also go in here where it does streaming completed and this is the part of the code that will or one of the parts of the code because a final result is doing something similar but this is the part of the code where we we want to then you know return that we are done so I'm just going to put in done this is then targeting this to the done event and I'm just going to return true for example um we can do that we don't even need to return anything but just to get the the hang of it we can do something like that and you know then if we go back to our JavaScript and try to understand um when we get the final result that will also be something that we probably want to listen for depending on how the code is written um when I scroll down I see streaming completed and this part will be probably the final result that it returned even though it didn't log it so let's just ignore this and then we'll see if something is missing in the in the in the text maybe like a period or something um but you know let's just take the code as it is okay let's do nice formatting here and then now we want arguments passed on but we don't want to do that yet or why not why not why don't we just go now to the content and add an argument so the arguments we're going to get them using arcs and then I do Dot message for example I can copy this and the argument is like an input I'm just going to paste that in here so it's linked in here this is type string meaning text so this is the argument is the input this is what's going into my Ai and then what's coming out are the events and we can trigger them using the CT Trigger action uh event and then we have to lock them to the name and then we can return a value in here and now that is it that was all the code we had to do I'm sorry for having a little bit of code in here but this is why the channel is called No code Pro code uh because we're going to build exciting stuff by adding a little bit of code a like a little bit of salt to get a final touch so that as a no code professional you can stand out from the competition because you are offering a more holistic solution to people's technological needs which is very important if you want to stand out in that you know in that current space that we are in now the cool thing is we have our variable and the only thing that we really want to do is uh you know when that action runs we get events every time we get events we want to do things so let's see if my theory works we may have to tweak a little bit around with something so on button um I can do form submit and actually the way I like to test that before we continue is I'm just going to install the confetti package and let's just install the confetti package in total uh boom we got confetti and now I'm just going to go to my form on here and I'm going to make an event and I'm going to go on uh submit this is on forms submit I already want prevent default so that's nice and I want to play some confetti here we go so let's try click on here okay so this is triggering the form submit now I know this is working so now I go back to the form and I'm going to submit and I kill the confetti but I'm going to go to my hyperbolic stream so every time and the message will be let's just imp hardcode it how are you today look at that we can make a dynamic later on and now I have my stream so every time I get a stream piece of data sent back I want to set the response variable to that piece of stream data and we see it's already linked with the example so it's already based on the event data that we get that is what we want to do so let's go on done and let's go on done two and let's try if this works and as you can see we're streaming the data from the hyperbolic API in real time so now it's not linked to the input yet so the way we link that to the input is we're going to create a new variable on our page called input for example just like that or let's make it more descri descriptive message here we go and that message you know will start with an empty string so we have our message and I'm simply going to go to the text area here and I'm going to bind this to the variable message so now every time I type in hello it's me and now I go back to the page data to the message it will say hello it's me because it's binded to the varable now the moment the input is binded to the variable when we go back to our action that is UN form submit and that is over here on form submit instead of having my value hardcoded I'm just going to click on FX and I'm going to go to my variables on message and as you can see the input hello it's me it's then synced with the variable and since it is synced with the variable it's accessible for me when I do the called hyperbolic and I'm going to close this here and now let's see if this works um when I say what is 1 + 1 and I'm going to send this it should be saying as an easy okay maybe let's see 1 + 1 equals 2 oh what okay maybe since we concatenate things maybe we messed up a little bit by you know trying multiple things on one page let's give this a fair shot and reload and then let's troubleshoot in case we need something to be troubleshooted so let's say what's one plus one and let's ask AI equals 2 now that is interesting so we don't seem to get all the chunks maybe that is interesting let's ask how are you okay so we don't seem to get the first one which I think is very interesting uh that is very interesting so let's see how can we troubleshoot that and the way we want to troubleshoot this now but we're very close we got streaming working let's go to the console and let's try to figure out uh how this can be helpful to us here so you know let's go back to debugging mode and let's ask this question again okay and we see uh we we from the beginning we're not getting the first chunk recognized we're not uh we're not looking at the first chunk so this is very interesting and that may be an issue because let's clear the console and give it a fair shot again okay I know you you don't like me okay let's run this again uh maybe we have some issue with wides spacing so let's copy this part and uh let's go back to cat gbt and let's say I updated the code I want you to keep the CTX ones cuz that is working with the framework I use but the issue you now is that the first character is being cut off as you can see in the console here is the full code that I optimized for the total framework I use and now let's go back to totle and let's give open AI the full context of all the things that we're doing grammar doesn't matter I cannot see what I'm typing on cat jbt anyway cuz you know like where cat jbt has their bar it's exactly where my recording verse over and I can't move it so sorry for any typos I know better and I know that I'm doing it wrong but uh just bear with me uh and let's copy that piece of code we don't need to get the lower part and the upper part that doesn't matter that will just confuse CBT we just need the core of it that we put in it and and let's go to chbt and let's paste that in here let's uh send that back and then let's see how we can solve this with the magical help of our AI friend so I have a really good feeling about this so let's wait it's going to give us cool stuff and now I want to copy that let's see if we still have the CTX stuff yes we still have that I really like that beautiful so let's copy this and let's go back to our code in here and we'll just cut that part out and I'm going to paste this in and let's go back we don't need to save anything it's automatically saved and let's play and let's say how are you and let's ask Ai and as you can see it is going to stream immediately in real time the response and it looks like we got the first character uh what's 1 + one and let's ask our AI it says 1+ 1 is two isn't that beautiful we just built AI streaming in todle it and it works in real time and it's free and I can say uh who is the uh president of the US who is the president of the United States and it's going to say I have a knowledge cut off but right now as far as I know it's Joe Biden and that's true beautiful so and I can say what are you and in real time we get the response as you can see incredibly fast and look at that it's even going to grow beautifully now one thing I want to look into and the cool thing is I can work with the data and totle because they have a nice way how it integrated um now I want to go to this you know where we have the response and you know I I want to uh make sure that I have a maximum height of like 25 Ram or something or let's do 30 R 30 R so that it will grow a little bit but uh you know it will not be uh growing too much and then I want to make sure that when I go to layout I have overflow a scroll so that when it gives me a whole poem let's say right a poem and I ask Ai and it starts writing it expands at a certain amount and then oh it write a long poem please I need this for illustration purposes and then as you can see it will continue and uh you know I will be able to scroll in here which is very cool you now you can even add more custom Java JavaScript codee to to automatically scroll down I'm not going to do that for this video this is just illustrating the the possibilities of streaming that you can Implement inside of toddle I never implemented streaming inside of toddle this is my first attempt in this video but the cool thing about Todd lless since it is so natural to use it's so intuitive to use I know I'm just going to put my computer anywhere and I'm just going to open CAD gbt I have my good old JavaScript test editor and console and I spent half an hour and I got anything I want working in total and imagine how much would this how long would this take building this in another tool like this would take way longer because you're adding more complexity to it totle makes it very easy the way they handle events they handle input and output in a non- codish way even though you're using Code but you're simplifying the code with a no non- codish way and I can reuse the thing that I did here now uh just by using a block on a submit just like that which is very cool and very powerful I think toddle is really revolutionizing the way we think about front end and the way we use frontends right now I think it's the best web app frontend tool out there maybe something else will come better but as of right now toddle is the best on the market and it's great for mobile apps because as you can see uh you can make it fully responsive I didn't made a good attempt on making it responsive because I just Illustrated it for a video but uh you can also work on making it responsive and it's also now working on the live side in production as you can say uh who are you probably the most profound question that there ever is and it was going to respond to uh the question who it is and Isn't that cool and we have that all streaming in real time with a freeo use API in a totle we build it in less than an hour and we have have a very cool AI assistant that streams in as see in real time very cool so thank you so much for watching I really appreciate all your support all your feedback all your wonderful comments just everything just thank you so much for everything and I also have good news for you because I've been working the last I don't know like more than six months on a tool that will help you build mobile apps out of the web apps you don't need to learn flut flow you don't need to learn any mobile framework you built your web app in toddle in WS in web flow in we web in anything ideally toddle because I now love toddle but that may change but I probably will not um and you just convert it into a mobile app with face ID with Touch ID with everything native and it will be a real mobile app it's not like a rapper or something it's a real mobile app and you can even addition the the Swift Code or the cotland code if you one it's very cool I'm going to give you more updates on that soon we're going to launch next week which is a very cool thing and I mean I can even have see this be a mobile app and you know be be very nice on the app store if you Niche it down like make this uh Personal Fitness coach AI built that in totle put it on the App Store and right now this API from hyperbolic is not costing you anything so you can really use the benefit that it is free and that you can do something very fast with it and toddle and potentially then use my tool desia to make a mobile app out of it to get some traction on the App Store with the AI waves that you know are still there and occasionally expand about certain topics I'll be also making an AI video generator like Sora as a mobile app using toddle and desia and that video will come out probably in two weeks I'm also going to take on sunno and udio and I'm going to make an alternative for that and I'm going to show you step by step how I did it and there will be also a template for toddle I think it will be a paid template but will be it will be very cheap like $99 and you can uh make your own sunno uh in totle and get it on the App Store with a little template let me know if you like those things thank you so much for watching I have exciting things ahead of you because tottle has a great way of how they let you clone things and you know do all of that kind of stuff and you know I'm excited about building off AI stuff now in totle because that's that's what uh what makes me happy thank you so much for watching I really appreciate all your support all your help all your wonderful feedback uh yeah just let me know if you have any questions if you need any help with anything I'm here day and night to help you and you know thank you so much for all your support again I really I'm really thankful for everything and see you tomorrow bye-bye
Info
Channel: NoCode ProCode
Views: 177
Rating: undefined out of 5
Keywords:
Id: K0cbisKYL3Q
Channel Id: undefined
Length: 45min 24sec (2724 seconds)
Published: Mon Jul 15 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.