Vibe Coding - yay or nay?
33:57

Vibe Coding - yay or nay?

Google Search Central 07.05.2026 512 просмотров 29 лайков

Machine-readable: Markdown · JSON API · Site index

Поделиться Telegram VK Бот
Транскрипт Скачать .md
Анализ с AI
Описание видео
In this episode of Search Off the Record, Martin Splitt and John Mueller from Google's Search Relations team dive deep into the world of AI-assisted development. They explore the reality of "Vibe Coding", the process of building apps and websites using natural language instead of manual syntax. Whether you’re a developer looking to offload tedious setup tasks or an SEO expert trying to understand how AI-generated sites impact search, this conversation is for you. In this episode, you’ll learn: * What is Vibe Coding? Understanding the shift from writing syntax to "talking" to your IDE. * The Developer’s Trap: Why you still need technical knowledge (like linters, deployment scripts, and GitHub Actions) to prevent AI from breaking your project. * SEO & AI Architecture: Why you can't just "add SEO" at the end—and how to guide AI to build with canonicals and sitemaps from day one. * Tooling Breakdown: Martin and John share their experiences with AI Studio, Gemini CLI, Firebase, and GitHub. * Testing with AI Agents: How to use AI to remote control browsers (like Chromium) for automated testing. Chapters 00:00 – Intro: What exactly is "Vibe Coding"? 01:32 – Martin’s experiment with AI Studio and client-side JS. 03:30 – The "English as a Programming Language" allure. 06:00 – Why the AI makes assumptions (and why that's dangerous). 08:51 – "Sprinkling SEO" vs. Building for SEO from the start. 12:40 – Can AI test itself? Using browser agents for QA. 20:27 – The technical debt of AI: Refactoring and maintainability. 25:42 – Moving to the terminal: Gemini CLI & Cloud Code. 31:34 – Using AI to skip the setup work. Resources Mentioned: * Google AI Studio * Firebase Hosting * Gemini CLI / Cloud Code * GitHub Actions for CI/CD What’s your experience with Vibe Coding? Let us know in the comments! Episode transcript → https://goo.gle/sotr110-transcript Listen to more Search Off the Record → https://goo.gle/sotr-yt Subscribe to Google Search Channel → https://goo.gle/SearchCentral Search Off the Record is a podcast series that takes you behind the scenes of Google Search with the Search Relations team. #SOTRpodcast #SEO #GoogleSearch Speakers: Martin Splitt, John Mueller

Оглавление (9 сегментов)

Intro: What exactly is "Vibe Coding"?

In this episode of Search of the Record, I'm talking to John about Vibe coding. We talk a little bit about what it is and what tools we have tried, what our experiences were, and where we think these tools help us already and where they might not be as helpful as they want to be. And we also want to hear from your experiences. So, let's dive in. — Hello and welcome to another episode of Search off the record, your podcast coming from Google Search Relations right to you wherever you're listening to podcasts. We want to take you behind the scenes of Search a little bit and show and tell you a little bit of what's inside of our heads. With me today is John Mueller. Hi John. Hi Martin. Same team, same place, same fun. John, I want to talk to you about Vibe coding websites. Okay, let's do it. Okay, excellent. I think there's a lot of talk about AI becoming a tool that kind of like fire and forget and you can do anything, you can create videos, you can make music, you can do whatever including making programs and websites and apps and stuff. And I tried it. I finally tried it. Woohoo! I tried AI Studio this time. Did it work? It was great actually. I wanted it to build me a website, a static

Martin’s experiment with AI Studio and client-side JS.

website, didn't need Well, not really a static website. I wanted it to build like a client-side tool with some JavaScript. And it did that really well. And the nice thing is I was surprised that I could actually read the code and it looked more or less like a standard Next. js application. I wasn't too like thrown away with how the weird setup sometimes looks like when you have other people writing code for you. So that was nice, but then at some point I got into like a loop where I asked it to not do something and it vibe coded it literally kind of vibe coded because I was like, "Ah, and use this library. " And it was like, "No, no, I built this myself. " And I'm like, "No, no, no, don't do that. Use this where I know it works. " And then it's like, "Okay. " But it lied to me and kind of got stuck. And then I asked it for like for a half an hour I tried to make it not do what it wanted to do and what to do what I wanted to do. And that was weird. Okay. Did you try something and did you have other results or did the same happen to you? I I've been making a lot of websites mostly for myself and to test things out using vibe coding. I don't know, Martin, just an aside, was the UI in purple? It No, I heard that from many people. It wasn't Interestingly enough not in purple. Okay, nice. Okay. Just checking. So I think maybe taking a step back, vibe coding is this fancy new term that someone came up with from the AI world where basically you have an AI system write the code for you and you basically talk to the AI system using English or I'm pretty sure you can also do all of this in German or any of the other languages where you basically just say like, "Hey, I want a personal website and it should look like this. " You kind of describe what you want it to look like and it should have like these pages

The "English as a Programming Language" allure.

on it. And then the system goes off and basically creates those pages for you, those files. And basically from a technical point of view, you have to do an additional step after that which is basically take a these files and put them on some server so that they actually run as like a normal website that you would do. And I think the allure a little bit is well, you speak to you the system in English. You don't have to know JavaScript or any other programming language, basically. And it goes off and does all of this technical stuff for you. And then you take the output and you put it somewhere and then you have a normal website, which practically speaking, nobody can really recognize as being like this is a Vibe Coded website. Of course, like if you use some of the frameworks or platforms that are used commonly by Vibe Coding, like people can recognize those patterns. But otherwise, it's a normal website. And I think one of the things that is perhaps tempting is to take it to the next step and say like, "Oh, you should also create my content for me. " It's like, "Ah, now you made my website look nice, but why don't you write an about me page that lists all of the things that I've done? " Or it's like, "Why don't you write a marketing page that makes sure that everyone clicks by? " Which it's like, "Sure, you can do that, but it's not something where I'd say it's like where you're getting the most value out of it. " Interesting. Yeah, I mean with content it becomes tricky because then like why would I visit a website where the content has been AI written when I can just like talk to the AI directly, right? But with the structure, I mean, if you're using frameworks, then most of the things look roughly the same. Interesting is when AI apparently prefers purple. So, if I see a purple website, then I can ask myself, "Is this really the preference of the editor or the author of this website or is this something that just happened because it was AI? " Yeah, it's kind of weird. I think also one of the things that is from my point of view kind of interesting is like one of the selling points is that you don't have to know how to code. I

Why the AI makes assumptions (and why that's dangerous).

was about to ask you that, yeah. Is it this fire and forget kind of thing where you just describe it in English and plain English like I want this with that and this button and this thing and this stuff and then it just generates the right thing because it worked for me this one time. Kind of, 90%? I think it depends. — It depends on the complexity that you're trying to do and kind of the long-term setup that you want and also the almost like the cleanliness that you want because it can definitely create a generic website based on the information that you give it. But it will make like a variety of assumptions along the way. Like if you go and say like I want a personal website and these pages, it could go off and say well, I'm going to use a static site generator because like those exist, those are easy to use and I will create these pages for you. Or it could go out and say like well, I have all of these JavaScript frameworks that have a lot of open-source documentation and tooling. I will make a JavaScript-based website for you. Or it could go out and say like well, actually you probably want a CMS and therefore I will create this complicated system that has a database back end that lets you edit your homepage and all of this stuff in a browser kind of thing. Like all of these are reasonable assumptions where if you talk to a developer like they will also make these assumptions, but if you just tell the AI system like I want a website, then it will pick one. Like in ideal case, maybe it asks you some questions like what do you actually want to do with this? Are you going to make changes or not? Like do you mind working in GitHub? Do you want to do it in like a UI? Like those would be reasonable questions to ask, but often the system will just go off and say like, "Sure. " It's like, "Let me take care of this thing for you. " And then it goes off and does stuff. So, that's the kind of thing where I think if you know what you're doing with regards to how to make a website and you have a concrete idea where you're like, "Well, actually I want a static site generator because I just want to copy and paste the files to, I don't know, Firebase hosting or Vercel or anywhere. " Then you can tell it that ahead of time like when you're setting this up. And it's like, "Hey, I want you to create a static site using maybe my preferred framework and like here's like the setup, the structure that it's supposed to have. " But for that you need to have the technical understanding. Yeah, exactly.

"Sprinkling SEO" vs. Building for SEO from the start.

That's where I think the technical understanding comes in. And especially when you take a little bit past that and you're thinking like, "Well, what about SEO? " And of course, in the end you can always tell the AI system, "Now add some SEO to it. " But you know how that works out. It's like if you go to a developer and say like, "Add some SEO. " They're like, "What What do you mean? Like sprinkle some meta tags and add some structure data? " It's like, "What do you mean add some SEO? " Uh so, those are the kind of things where I think if you have the technical understanding, you can guide it from the beginning. And you can say like, "Actually it's like when you create my site, I want you to do this, and this. Make sure that the pages have, I don't know, canonicals. Here's the domain name I want to use. Um make sure to set up a sitemap file or whatever that you're trying to do. Mhm. So, on the one hand, like knowing what technically you kind of want helps to get there quite a bit. Uh what also helps a lot is if you understand things like um how a deploy script should look or how a pre-submit should work, how a linter works, those kind of things, then you can also include that in the configuration that you're setting up. So, that you can essentially say is like, this is the structure you should create, and you should make sure to as like before publishing, make sure that like these URLs all return content. Um make sure that I don't know, none of the JavaScript files are blocked by robots. txt. As like, create a robots. txt file and make it useful kind of thing. Like all of these small details that help a lot. And I think especially the pre-submit stuff is something where for a lot of the mainstream frameworks, there's a lot of tooling out there that helps to make sure that, oh, like I built this site and I published it and it's actually I'm publishing the right thing. I'm not publishing my source code and all of my API keys or what whatever you're doing. That keeps happening to people. I keep seeing that accidental — Yeah. API key publishing. Okay, but all right, assuming that it can build these things, so it's not like a one click more or less kind of thing where you just say some plain English and then get whatever you wanted back. You need to still have some idea of where you want to go and some of the technical lingo because that helps steer the output. But when it's created, I also have to test it and depending on what I have asked it to do, testing manually might be a bit tricky and also when it fails in subtle ways, like I mean, if it fails with an error message, you can just give it the error message. You can say like, oh, I clicked this button and then I got this error. Can you fix that, please? I think please makes it more expensive, right? I don't know. So, one of the weird things I heard or I read somewhere in one of the random leaks that happened from the AI labs is that they have dashboards uh specifically for the coding tools about how often people curse at the AI system. Oh, okay. — Because it's like a sign is like, oh, is like, our system did something wrong and like it's sometimes just enough to count like how many times people are cursing at it. So. I I'm not saying that you should or I'm not say I'm also not judging like if you're screaming at the machines, like whatever. Like if it's a toaster and it burns your toast, like maybe it does good to scream at it, but it's like you're using the toaster to make toast. It's like not the toaster's problem that the toast burned. Oh, well. Okay.

Can AI test itself? Using browser agents for QA.

But is there a way for me to also use the tool to kind of have it test itself or does that fall short because it doesn't actually know what the expected because I remember back in the days we used uh I think it started with Selenium and then at some point used Puppeteer to kind of remote control a browser from code, but you would have to write that code so that it would actually go and like fill in the registration form, put some products in the cart and so on and so forth. Can AI help you with that as well? Sure. Like can it write code this as well? Can it say like, also test this thing in the browser? I mean, at that point, you really have to have a strong technical understanding of what you want to do, I think. Like may there are ways to kind of go at it naively, but basically for pretty much all of the mainstream AI systems, they have this mechanism for plugins, which is I think like MCP and there are other tools and skills that you can set up. I don't really understand all of them. I don't have that much time to spend on like not spending time, which I don't know, kind of weird. But like they have this notion of plugins basically. And there are tons of plugins out there, including things that test pages from a static point of view to understand like oh, is your HTML actually valid? Is it reasonable HTML? Is it semantically structured? And also including things like browser use agents, where basically it will spin up in the back end something like a chromium browser and then basically use that as a way to I don't know, access your pages. So it could do that if you're hosting it locally, like if you have something like a when you set up your site and you have it hosted on a local port kind of thing. Ah, like the local server basically. Local server, yeah. Um so it can do that. It can also access the live web page and a lot of this of course depends on how you set things up. Uh so I basically just have a Unix Linux computer at home that I can access where I have my stuff on it and on there I have kind of this like this chromium agent set up so that it can use chromium to access the pages. And basically because it uses the AI system to access your pages, it doesn't have to know the exact IDs of the elements to click on. It doesn't have to know the exact coordinates to click, those kind of things. It can basically be controlled by text. So, one of the things, for example, that I did is we is like the apartment where we live, they set up a weird rental portal website kind of thing with, I don't know, this fancy React app, which apparently is kind of like this is how things are done now. You don't get mail anymore. You have to find your PDFs on a website somewhere. And it's like a really annoying thing, and I don't know like who coded it. Maybe it's also vibe coded. That would be weird. But I basically used an AI system to access that website using Chromium and to click through. And it's like if there is a cookie banner, just click accept. When it has a list of files, you should check the files for new files and download any which are new. And you don't have to go in and be like, "Oh, cookie banner has this ID, and you have to click on this button with send it a click event or like a post or whatever. " Uh you basically just tell it like if there's a cookie banner, just like click okay and get back to work kind of thing. And that, I think, is really fascinating where you can do kind of these complex things that in the past you could also do, but now you don't have to spend as much time focusing on all the details. Like for me, figuring out how to run Chromium and click on a specific element, like that would probably take a day. I don't know. It's like I'm I haven't used it in a long time. I don't have that much experience with, what is it, JavaScript, TypeScript? I don't even know the language. That's — like so awkward, huh? But I can go and tell it roughly what I want Mhm. and it can create some code that does that. Obviously, taking this code and creating a version to sell to people is like completely different story. But for me, it's like for my personal use, it works fine. Mhm. Interesting. But you would argue that it's not like you don't have to know any technology, you still have to know roughly what you want and you have to know enough to be inspecting what's going on. I don't know. Like I think maybe that's also just a bias that I have. — Mhm. Which is hard for me to evaluate because I basically I understand the command line tools, I understand the basic infrastructure and if something goes wrong, I'm like oh, you stupid machine, you clicked instead of swiped kind of thing. And you did this and it's like you did this in Chromium, can't you try it in Firefox instead kind of thing. Where I basically tell it like specifically what I want, but how much of that would just work if you told it vaguely and it's like hey, this didn't work, try again. I don't know. I think if you're selling a service and you have things like user data in a database, then you probably want someone who understands what they're doing. Yeah. But if you're just making something for yourself, if you're making a static site for trying things out or for a friend that just wants a website, like that seems like the low risk kind of situation where like make something a little bit more fancy, but it's not that like I don't know, something will break or burn down if you're doing wrong. Yeah, for me, I wonder if how much bias is in there as well because of course I'm a software engineer, I kind of like to write my own stuff. But I tried specifically to use AI for situations where I was bored enough to not like it's a thing I need to do but I really don't want to have to like spend too much thought and coding on it. So, I try to kind of counteract this bias by doing projects where I was like I need this thing but I don't want to spend time on it and then kind of want to like offload the time. And at first, I was very impressed how far I got very quickly. What was a bit tricky for me was that I noticed at some point I got stuck. And I'm not sure if it's because I used only one tool. I had might have actually tried other tools probably. And the other thing is and to be fair that kind of tells me that my bias wasn't too big here. I didn't really look at the code much. So, I don't know how maintainable it is because that's one thing that I was wondering. Yeah, I mean AI doesn't have a notion of cost of work, right? Yeah. Uh it can just add code and patch and like put layers upon layers. Uh whereas you as someone with experience might go uh no, if I do this if I patch it now this quickly and by adding like this additional layer then that'll come back later and bite me because I then have to deal with this additional layer. I don't think AI has this notion. I

The technical debt of AI: Refactoring and maintainability.

think that's something that definitely happens and you definitely see it if you understand code because you ask it to do something and it's like well, like I have to do this common thing but I will just write my own code to do it rather than using your like shared library that you set up somewhere or like the existing shared function that you already wrote last time. It's like oh, you need to sort these elements. Let me write a custom sort function for you. It's like well, you can but this is not what I would recommend if you wanted to work in a group together with other people and you have to maintain your code for the long run. Yeah. But I find those are the also the kind of things where AI can help you to refactor a little bit if you understand what you're doing. Oh. Where I notice it, for example, with some home automation things that I do. I use Home Assistant, which uses primarily YAML files for configuration. Like it also has this whole web UI kind of thing, but it uses YAML files. And because of that, there are a whole bunch of GitHub repositories with all of these YAML files. It under Like the AI system has a lot of training material to work on, and it basically can generate these YAML files for you. And I took a bunch of the things that I created over the years and basically told it to is like, "Hey, does this still make sense? Is this kind of like modern use of the functions kind of thing? " And for some of them, it really came back with some good ideas on how to do things differently. So, I found that kind of useful. That is indeed nice. So, you set up your site or I guess your page or your tool with AI Studio? Tool, yeah, web app. Mhm. And did you end up publishing it or No, that's when I hit the So, I don't know why, but I was basically using I was like, "Okay, this working now ish. " Uh I want to click on publish, and then it was like, "Okay, so now let's integrate with Google Cloud. " And Google Cloud is a great platform except that in this case, I was like, uh spinning up a project and then like dealing with the billing and all that stuff. So, Google Cloud is great for bigger projects, but this was basically just HTML, JavaScript, and CSS. So, I would have loved to see a range of options where I could publish. What I didn't think about at the time was I could have exported all this thing as a zip file, and then just deploy it separately. But then I have a lot of manual work again, and then kind of Yeah. No manual work. Yeah. So, the things I've started creating, I guess, are like mostly test websites for me to try things out, uh to see like how requests are made from Googlebot with regards to kind of like all of the back and forth stuff there. Um most of them I created using Hugo as like a static site generator. Hugo. I think it's Hugo. — Hugo. Oh god. Now I don't know how to pronounce like trivial names. Basically, I had it like set up the whole setup for me, and I published it to Firebase hosting. — Oh, okay. Nice. — Which has like this free tier kind of setup thing. Uh it also connects to Cloud Functions and has some basic database back end kind of things that you can use. Mhm. And basically, I had it create all of this website and like tried it out locally, and then published it to Firebase hosting. And it basically told me what I need to do is like get the key here, put it in this file kind of thing, and trust that it doesn't steal your key and hallucinate it for other people. I don't know. It seemed pretty safe. And I had it set up to use GitHub as kind of like the storage place, I think. Something like GitHub makes a lot of sense for all of this stuff because you see all of the previous versions. Which is something that I'm super paranoid about with all of the vibe coding. It's like I tell [snorts] it to do something, and it's like, "Hey, I deleted everything and started over. " And then if you don't have a backup of what the previous state was, it's like, "Well, sucks to be you. " Yeah. Maybe it works, maybe it doesn't. So, that basically worked out, I think, fairly well for me. And then it also set up the GitHub actions, which basically mean that whenever I make a change in the GitHub repository where it stores all the files, it automatically publishes it to Firebase hosting. And this whole process kind of worked really smoothly. With regards to SEO, the main things I looked at there where it's like, are these pages kind of reasonable HTML? And they were. And do they link out properly? And they do. So, all of that, I think, mostly worked out. Oh, that's nice.

Moving to the terminal: Gemini CLI & Cloud Code.

Yeah. What tools did you try so far? I initially started with something in VS Code. I think it's Copilot. Like, they have some plugins for different AI systems. But then, recently I switched to the command line tools like Claude Code and Gemini CLI. Oh, okay. — What I find interesting with those command line tools is that you basically don't look at your code anymore. You look at it on GitHub, kind of see what happened there. And if there are like variables that you need to edit, setting files, things like that, you do that manually. But otherwise, you interact with it primarily by writing things out. And I do that by writing things out in a Google Doc and copy and paste them into the CLI system. And then it does that. And I kind of find it almost like a more natural way of interacting. Mhm. And what I find interesting is both of these systems have the notion of agents that go off and do things, uh that do things in parallel a little bit, that run things like tools and other functionality in the back end. Uh so, you can tell it like, "Hey, this is not working. Can you check the logs to see what went wrong? " And in the back end, it'll know, "Oh, it's like you're using Firebase hosting. The logs are hosted here. The project ID, you told me that already. " And then it goes off and uses the command line tools to look at the server logs and figures out what it needs to do. Mhm. So, all of this kind of back and forth functionality is available or is kind of happens for you automatically. It's a lot less of the kind of the old style use of AI. When I use it for coding, it's like you go to ChatGPT or Gemini, it's like, "Hey, write me a JavaScript snippet that does this. " And then you copy and paste it in your thing. You basically like tell it the full thing and it kind of takes care of the whole process. Well, that's quite nice. I think with regards to maybe like future-looking things, it feels like people are still deploying Drupal websites. So, it's not like these old school Oh my god, it's like web is so fresh. But, — like these old school jobs are going away. Like people will continue to use Drupal and PHP and WordPress and whatever. But, it feels like a lot of the simpler things are easily possible with this kind of vibe coded setup. And especially if you know what you're doing or if you work with someone who knows what they're doing, it's easier to make sure that it's not like this hallucinated framework kind of thing that looks like a website, but it's actually just a giant GIF. Like it could also happen or PDF kind of thing. Like with all of the tooling and testing stuff around it, I think it's possible to get reasonably far with this setup. God, I feel like I could talk about this forever. Good. — I'm so sorry for all of the listeners. — Keep going. I learn things here. What I found interesting is also because Gemini CLI and Cloud Code, they basically use eternal window for interactions. You can just SSH into your website like from anywhere and basically tell your system to update the website. And that means like you can run an SSH terminal on your phone and you basically can use kind of like the voice-to-text mode to enter stuff and you tell it what to do and it'll update your website like that. I used this recently on a flight to the US like there was Wi-Fi and I was like Wi-Fi's kind of spotty and doing something with like a remote desktop kind of environment was like super annoying and slow and flaky, but in a terminal window is like doesn't use a lot of bandwidth. You can do reasonable things and try things out. That's true. So, I don't know. Like I also saw some photos of this developer office where people just have microphones and are whispering to your computer kind of thing which I don't know. That feels kind of weird, but it's definitely an interesting way of coding when you don't have to think so much about is like what is exact parameter order for this function in JavaScript that I think exists or maybe it's in Python. I don't know. Where you basically tell it to add functionality and then you think about it a little bit more as what do I want my website to do rather than is like oh is like which functions do I need to write. True. And the other thing that I'm seeing is especially from the experiences that I've seen in what you just said, whenever you are starting a project and agencies tend to do that a lot of like a new customer comes or customer comes with a new project, you have this set up work. Even if you just set up Drupal or whatever and you might have some templates, but then each project is oh yeah, that template fits, but then we need to make these seven different changes and that just takes time and this not creative interesting work. It's tedious most of the time. And if AI can do that and walk you through that process quite quickly, then that would be really helpful. I think you could probably do this in minutes instead of hours. And then when it becomes interesting where the more subtle things happen, I think that's where human time becomes valuable again. I think that's yeah. I think for

Using AI to skip the setup work.

like the Search Central audience, being able to spin up websites quickly to try things out is super helpful. Mhm. Um making your own kind of web-based tools is super easy to do. Like if you want to see if your website is crawlable, you just have it create a crawler and you try it out. These things are super easy to do with regards to agentic access where it's like I don't know, maybe it goes off and accesses Search Console using API kind of thing. Like I don't know how that will evolve or any of the is like oh, look at Google Trends and then write me some articles about trends. That just feels like spam at that point. But there's a lot of work to even just generate like a mock of a website or mock of certain pages and a lot of that can be made a lot easier. Well, you notice certain workflows that you keep having to do where you need to like take a data a piece of data in one tool and then from this one tool to the next tool and then from that tool to the next, you can probably pipeline this with AI as well. Yeah. Which is what I sometimes do. Yeah. Interesting. Cool. Thank you so much, John. I think that was really, really insightful. And especially hearing your experience with different tools and how that related to the experience that I just had was interesting. I would like to hear from our audience in the comments as well, what tools are you using? What have you found? Where do they fall short of the promised land, which is just whispering to a computer and the right thing falls out? And where have they surprised you positively? I'm just curious to hear what people out there have been experiencing. Yeah. All right. Sounds cool. Thank you so much for being here, John. talking Vibe Coding with me. And thanks to all of you out there for listening. I'd like to say goodbye and auf wiedersehen. Bye. We've been having fun with these podcast episodes. I hope you, the listener, have found them both entertaining and insightful, too. Feel free to drop us a note on LinkedIn or chat with us at one of our next events we go to. — If you have any thoughts, let us know. And of course, do not forget to like and subscribe. — Thank you so much for listening and goodbye.

Другие видео автора — Google Search Central

Ctrl+V

Экстракт Знаний в Telegram

Экстракты и дистилляты из лучших YouTube-каналов — сразу после публикации.

Подписаться

Дайджест Экстрактов

Лучшие методички за неделю — каждый понедельник