@@gerooq what he does is not overly complex, there is no way he could put a senior engineer out of a job, not saying he isnt talented, but anyone thats been learning dev for a few or more years will be able to do similar things to him
Happened to my startup (pretty much unknown outside of Egypt), but then I realized it was an attempt at credential stuffing and our login endpoint must've gotten on some list of something. Long story short, Cloudflare blocked all of that 😅
Some people just like to see what they can do to a system, it doesn't really matter what the system is. People found ways to attack the telephone system just to see if they could.
Thank you for the extension and the apps, it actually became my favourite dating app by now. Sooo nice to just talk to people who understand the things I’m into and also a dating app where not every second girl is a catfish. Thank you soooo much for this.
they're probs talking about overall requests: so like the html is one, then at least one css page, some javascript, images and with all that it becomes many request per page load
I've been working with AWS for a few years now and yeah - this is a hard lesson to learn. As soon as you open up anything to the internet, it's gonna get hit very hard. Glad you learned this without a massive bill!
felt bad for last video for VS-Stories, now same for this one.... Godddddd.... Nice videos Ben, Keep making lots of videos for us. Lots of love from India....
Great video. Gives perspective to us beginners how insanely difficult is to run app in production. In development everything looks sweet. All these warning in courses "don't use this in production" make more sense.
@@tiagosansaodev That's called survivorship bias. Just because nobody has ever met an angular dev doesn't mean they don't exist. It just means nobody has lived to tell the tale...
I don't think banning reports containing "hi" and "hello" is reasonable. I think it's not too uncommon instead of writing "This person harrassed me" to write " *Hello* , this person harrassed me". See what I mean?
I could imagine the invocations not lining up with the requests is because Puppeteer loads the whole website which with uses way more requests to load all the different JS and CSS files.
Hey Ben, huge fan, great works man! I wonder if you consider using a tool like Thundra to inspect your lambda functions or webapps in case of any similar issues. Disclaimer: I work for the company and be more than happy to see you in our Slack.
I think there aren't just one request per Lambda instance per page view for render, because Carbon is written in Next.js so there maybe you have invoked SSR generation for each request and that's like a few new JS and CSS generated plus a lot of different assets (but probably most are just stored in static site like netlify), and if you multiply it by 9 or 10 for each of these "just in time" assets I think it make sense to have millions of requests
are u using api gateway for that lambda func? I think u can set max concurrent request + max request per second there and the location dropdown, I guess u can add country/location table in yr postgres + make an API for UI to call, then will be lower cost others thing looks nice
This is a great lesson for anyone who runs a non-cacheable site like Carbon: consider finding some DDoS-protection feature, even just a basic one that alerts you if you get too many requests from a single source. Or even a single well-meaning developer can sink your site.
For your Google Places API, make sure you're only setting the components you need in the request (like address_components) and you can also use geolocation to more accurately pinpoint their location if you haven't already. Those two should help some with the bill but I'm no expert, just basing it off their API (and implementing it once)
Lambda functions auto-retries twice by default on failure, so when puppeteer fails, the lambda will retry the entire flow, hitting carbon 2 more times. And like you mentioned, that’s not even considering the potential retry built into puppeteer
Could you have a pool of Puppeteer instances running that expose the functionality of generating images from code? It would reduce the Netlify bill because you only have to load the page once and the lambda bill for spinning up puppeteer as well.
should add a developer section along with love and friendship so people can find other devs to help with projects or issues durring development. devs helping devs ya know
5:40 - Puppeteer loads images and css and everything. That's not just one request to them when ur lambda calls, using Puppeteer. Requests != visits. One visit creates multiple requests. Factor 100+ is still a bit much, though.
If you're using puppeteer to navigate to the page on chrome, then surely each invocation would be generating alot more requests to vercel each time, for images, is etc? Or have I just completed assumed wrong 😅
Spawning a brand new Puppeteer process for every lambda invocation sounds very resource intensive tbh. It's probably better to have one Chromium/Puppeteer process running in the background and have it create a new tab for every call to your API
I feel you on the Apple payment issues. Do a Spotify/Netflix and require people to pay for premium on the web where you can just use Stripe (although you can’t tell people that’s what they need to do in the app because Apple won’t allow that through review). It’s such a ballache.
I know it might be too late to suggest using PWA for creating applications without getting into the headache of mobile stores and that would be great for charging premium stuff without letting Google/apple take a cut off, it would be helpful for further projects for now I think it might be too late
He's losing more and more trust in humanity for every video
Bro 😂
true
Lol calm down
Lol
Growing up, I think they call it.
81% males
Vsinder? more like VSgrindr
Bruh 💀
If the ratio is 50/50, the devs probably made a bunch of fake female profiles
Lmao
Actually that's pretty on par with reality. Most recent stats have Tinder users in the US split 72% male to 28% female
Nah that's actually closer to Tinder demographics.
i like how despite your experience, you still honestly acknowledge what you don't know, and then make a video about it
That's the wrong thing to do - He is giving them publicity
He's 23, he's not THAT experienced
@@CBMaster2 I am also 23 and I don't know even one fourth of him. I am so jealous.
@@snowwsquire ? jealous much?
@@gerooq what he does is not overly complex, there is no way he could put a senior engineer out of a job, not saying he isnt talented, but anyone thats been learning dev for a few or more years will be able to do similar things to him
alternate title: i accidentally DDoS'd carbon
Or "I accidently brought down an innocent website!"
They probably got pissed Ben took the anonymity away.
suspect thing to say
I know right? It's like children walking around in the skins of grown men. Childish as heck.
@@nomtijorti *foreskin
VAANG Companies: VSinder, Amazon, Angular, Netflix, Google
don't put them next to these petty unknown companies
Wait, what is Angular doing in there?
Why would you put VSinder next to tiny, unknown companies like google lol
Google? Is that a company? I have never heard of it in my life
@@navthenugget Yeah they're just a search engine company or something haven't heard much about them either
This 'series' of you launching products and following up on how they do and being honest about all mistakes is amazingly educational
I love this. The fact that someone went after this app is wild to me. Some people must really dislike code snippets. 😂
I've had random projects being DDoS'd in the past, I think it's just for fun
Or tinder.
Happened to my startup (pretty much unknown outside of Egypt), but then I realized it was an attempt at credential stuffing and our login endpoint must've gotten on some list of something. Long story short, Cloudflare blocked all of that 😅
Some people just like to see what they can do to a system, it doesn't really matter what the system is. People found ways to attack the telephone system just to see if they could.
If it can be hacked, it will be hacked, and for no reason
Angular devs learn hacking
@Azer Gamer YT Hahahhaha
Waiting for the attacker to comment "I did it."
You're sus
dude u sus
vote
Definitely impostor
I did it
People attack VSTinder just to have the pleasure to watch this video. I can imagine the laughs of that guy while DDoSing you.
not gonna lie this put a smile on my face
@@Meleeman011 Found the attacker.
@@Meleeman011 sus here
🤫
people thinking ben has enemies: this is production
Hahahaha. Now they’ll know what it’s like to perform a patch in production.
thats cause he does lol
Make VScode - spotify integration so that people can listen to same music while coding
That already exists actually.
When you code, you already have Spotify on your PC.
@@halbgefressen9768 underrated
Bad idea
Please leave software engineering please . Pros don't listen to music while coding
People are underestimating/ignoring the tech insights that are there in this video. Pure gold.
Sorry It wasnt a DDoS, my mom just really loves a good and thick extension
I have a goal: I want to be your success story that met their future spouse on VSinder.
Or husband
@bychtromae oh i didn't know that
Step 1: Make sure you're gay.
Thank you for the extension and the apps, it actually became my favourite dating app by now. Sooo nice to just talk to people who understand the things I’m into and also a dating app where not every second girl is a catfish. Thank you soooo much for this.
The curse of Ben Awad's VS Code extensions
I spent 15 minutes writing a React joke but when I click vsinder was like bruh
You do know Carbon has an CLI project that spits out images? No puppeteer needed
Love your attitude and breakdown of events dude, great work!
they're probs talking about overall requests: so like the html is one, then at least one css page, some javascript, images and with all that it becomes many request per page load
Was about to write the same
CDN, ever heard about that?
@@user-mb4xy2cz3t amazingly still to this day, not many places use a CDN.
Ben: I don't really know why it was failing but it's working now
that's a programmer for sure
you should call this app VS Grindr
fuck'n LOL
This made made my day, absolutely hilarious. Thank you Ben
I've been working with AWS for a few years now and yeah - this is a hard lesson to learn. As soon as you open up anything to the internet, it's gonna get hit very hard. Glad you learned this without a massive bill!
The sweet pain of going prod
I love these vscode versions of things and can't wait to see what others are coming if you decide to do more
This boy somehow makes VS code compete with the 2 giants: App strore and Google play. Microsoft is gonna kiss his ass definitely.
felt bad for last video for VS-Stories, now same for this one....
Godddddd....
Nice videos Ben,
Keep making lots of videos for us.
Lots of love from India....
This is a perfect lesson on lambda.
Congratulation! 200K
Great video. Gives perspective to us beginners how insanely difficult is to run app in production. In development everything looks sweet. All these warning in courses "don't use this in production" make more sense.
Dude you got many enemies
Dem angular devs
Enemies .. lol
@@Khushpich I have never seen an angular developer, are they hostiles?
@@tiagosansaodev the legends says no one ever came back from seeing an angular dev
@@tiagosansaodev That's called survivorship bias. Just because nobody has ever met an angular dev doesn't mean they don't exist. It just means nobody has lived to tell the tale...
Probabaly will be some angular devs 😅
Haha, no we are not like that :)
@The Great Lord Kek no we r not
@The Great Lord Kek Yes we are
@@saqlainalvi3333 pretty sure we are though
@@greg6618 hey, where's the girl is from in your profile pic? Is she from monogatari series?
This projects sound like so much fun!
Just wanted to say that after really going through with the VSCinder: YOU ARE A LEGEND!
Love the Ajani, Caller of the Pride picture in the background :)
Noticed it by reading your comment 😁
Good Job 👏 . You learnt hard way but now you have valuable experience. Keep learning and Be curious.
You should have hit 1 mil by now dude your content is gold
Great postmortem Ben! Glad the first week wasn't too hectic. Sounds like a lot of fun.
MAAAN, you are a legend!!!
I don't think banning reports containing "hi" and "hello" is reasonable. I think it's not too uncommon instead of writing "This person harrassed me" to write " *Hello* , this person harrassed me". See what I mean?
// I'm going to do
message === 'hi'
// Not
message.includes('hi')
@@bawad hi
what
Thx for all the detailed info. Very interesting.
I could imagine the invocations not lining up with the requests is because Puppeteer loads the whole website which with uses way more requests to load all the different JS and CSS files.
Damn Angular devs taking their revenge on you Ben. They are ruining developer's love life lol
Hey Ben, huge fan, great works man! I wonder if you consider using a tool like Thundra to inspect your lambda functions or webapps in case of any similar issues. Disclaimer: I work for the company and be more than happy to see you in our Slack.
Really like the tech stack breakdown for the whole app. You should do AWS's segment. THIS IS MY INFRASTRUTURE.
It feels bright when you say "Of course it's Typescript"!🤣
this was a fun project!
Becoming my favorite „real life DevOps“ channel on yt.
Many thanks for the honor witnessing the beginnings of a 1bn valuation unicorn as well. :-)
I think there aren't just one request per Lambda instance per page view for render, because Carbon is written in Next.js so there maybe you have invoked SSR generation for each request and that's like a few new JS and CSS generated plus a lot of different assets (but probably most are just stored in static site like netlify), and if you multiply it by 9 or 10 for each of these "just in time" assets I think it make sense to have millions of requests
I feel like a part of the problem is not using testers before releasing the final product
im so happy this guy is getting a following
Have you tried use Caprover, is heroku like opensource alternative.
hey Ben, thanks for the great story! I have a question; can we have a online version of the profile in VSinder?
Waiting for VsTwitch
VsTH-cam
Vsitch
I felt your pain when you said ''puppeteer'' ... I was doing the same thing and had the same random errors lol.
Can you talk about making small apps as a single developer from idea to launch. Which frameworks did you use and technical other aspects.
Will this change how you rate limit resolvers at all?
are u using api gateway for that lambda func? I think u can set max concurrent request + max request per second there
and the location dropdown, I guess u can add country/location table in yr postgres + make an API for UI to call, then will be lower cost
others thing looks nice
Ben, have you used a "search token" in the google places API? That reduces a lot the cost of each request.
This is a great lesson for anyone who runs a non-cacheable site like Carbon: consider finding some DDoS-protection feature, even just a basic one that alerts you if you get too many requests from a single source.
Or even a single well-meaning developer can sink your site.
How did Vercel contact you that you reacted so fast? did they call you or wrote an email/tweet and you literally saw it right at the moment
Man, you are a genius, no sarcasm, how do you get those ideas?
For your Google Places API, make sure you're only setting the components you need in the request (like address_components) and you can also use geolocation to more accurately pinpoint their location if you haven't already. Those two should help some with the bill but I'm no expert, just basing it off their API (and implementing it once)
Lambda functions auto-retries twice by default on failure, so when puppeteer fails, the lambda will retry the entire flow, hitting carbon 2 more times. And like you mentioned, that’s not even considering the potential retry built into puppeteer
I love to watch the stuff i dont understand, I feel cool cause its Ben Awad
Love watching Ben doing what he loves 🤣
Did you switch to something like mapbox as a replacement for googles location service?
Google went down recently and was fixed, VSinder went down and you fix! I see competition Ben. You competing with the Big Boiz!! Lol
Make sure you're using session-token for places API, also use autocomplete options to reduce costs
You are 2 years older than me and have like 10 years more experience. I'm probably throwing the towel but great work!
Could you have a pool of Puppeteer instances running that expose the functionality of generating images from code? It would reduce the Netlify bill because you only have to load the page once and the lambda bill for spinning up puppeteer as well.
should add a developer section along with love and friendship so people can find other devs to help with projects or issues durring development. devs helping devs ya know
I love this app so much. I hope it stays up for a long time. It sounds like you may need a premium version to pay for that Google Places API though
this was very entertaining
Thanks! Never was reconnaissance so easy...
Lmao second time you make me laugh firstseeing the thumbnail of your video
I love you Ben!!
I am having the same puppeteer error when I run it on digital ocean droplet. How did you fix it please?
Ben it would be really great if you could provide some knowledge on hosting Neo4j database?
5:40 - Puppeteer loads images and css and everything. That's not just one request to them when ur lambda calls, using Puppeteer.
Requests != visits. One visit creates multiple requests. Factor 100+ is still a bit much, though.
Hey, very cool extension! Hope you can update it to the new VSCode version!
Does lambda allow budgeting? And gave a hard threshold after you exceed some requests?
Deep down we know that this attack was made by some Angular lover
Ben what database are you using?
If you're using puppeteer to navigate to the page on chrome, then surely each invocation would be generating alot more requests to vercel each time, for images, is etc? Or have I just completed assumed wrong 😅
Spawning a brand new Puppeteer process for every lambda invocation sounds very resource intensive tbh. It's probably better to have one Chromium/Puppeteer process running in the background and have it create a new tab for every call to your API
Ben: "I'm gonna keep track of these people and they'll have a lifetime ban."
Google: I WANT HIM!
keep it going!
Okay Ben, I expect VSinder stories next. That's where the sponsored posts and ads can go :)
I feel you on the Apple payment issues. Do a Spotify/Netflix and require people to pay for premium on the web where you can just use Stripe (although you can’t tell people that’s what they need to do in the app because Apple won’t allow that through review). It’s such a ballache.
My hero
I'm confused, why puppeteer and some other website, when you can just use an image library to generate the images yourself?
You can use CodePush to deploy fast in react native apps to AppStore / PlayStore
Puppeteer seems much lighter than selenium damn
Openstreetmap has a city search API, I'm almost certain of that. Use Leaflet for maps if you need to, it's really simple.
I know it might be too late to suggest using PWA for creating applications without getting into the headache of mobile stores and that would be great for charging premium stuff without letting Google/apple take a cut off, it would be helpful for further projects for now I think it might be too late
Ha ha all the drama!