0:02 Okay, so there are many vibe coding apps
0:04 out there, but they have a lot of major
0:07 flaws. In this video, I want to show a
0:09 tool which is like the anti- vibe coding
0:12 tool. So, this tool comes from Jet
0:14 Brains, and they've kindly agreed to
0:16 sponsor a video going through how this
0:18 works and some of the best practices you
0:20 should think about if you're a
0:22 professional coder looking to use AI to
0:24 enhance your coding as opposed to
0:26 someone who doesn't know how to code and
0:29 is basically just constantly making
0:31 things from scratch. So, if you are a
0:33 software engineer and certainly if
0:35 you've worked at a big company, you've
0:38 probably come across Jet Brains. They
0:40 make ideas for a whole bunch of
0:42 different languages and frameworks as
0:44 you can see here. Probably the biggest
0:46 one people would know them for would be
0:48 IntelliJ IDEA, but they also have things
0:50 like PyCharm, which has been around for
0:52 many years and also things like PHP
0:56 Storm, Web Storm, and Ruby Mine. So, the
0:58 thing that sets these IDs apart from
1:01 generic IDEs that are out there is that
1:04 they're heavily customized to that
1:06 specific language and that specific
1:08 framework. And that combined with the
1:11 models from Anthropic and models like
1:14 Gemini 3 allow them to build something
1:16 that's really unique. And this brings us
1:21 to Juni Jet Brains's smart coding agent.
1:23 And the idea here is that this is not a
1:25 separate product that sort of stands
1:27 alone. This is something that creates a
1:32 scaffold to work in any of their IDE.
1:34 So Juny goes beyond just being a sort of
1:37 plugin for the ID. it's fundamentally
1:40 baked in not only with that IDE but with
1:43 all the special features that IDE has
1:46 for the particular language or framework
1:48 that you're working with. So just as
1:51 their IDEs are set up for the various
1:54 languages and frameworks in there, Juny
1:57 is able to be specialized for those
1:59 particular languages and frameworks as
2:01 well. So you can think of it as if your
2:04 project is a Android app and you're
2:07 working in Intelligj. The scaffold and
2:10 the structure of the agent are actually
2:13 set up for that particular architecture.
2:14 And in many ways, you could think of
2:17 this as being almost like a pair's
2:20 programming partner that as you're going
2:22 through the code, you've got this agent
2:23 in there that knows what you're working
2:27 on and then is able to work with you in
2:30 this specialized environment. So, one of
2:32 the key areas where vibe coding really
2:34 falls apart is when you've already got a
2:37 code base that you need to work on. So
2:39 the cool thing with Junia is that a
2:42 large part of the Juni experience is not
2:44 just built for starting out from
2:46 scratch. It's built for going into a
2:48 codebase that you've already got. Being
2:51 able to ask a bunch of questions about
2:53 it and then under the hood, it's got its
2:55 own iterative loop of where you'll plan
2:57 what you will actually do. It will then
3:00 actually act and either write some code
3:03 or optimize code and also write tests to
3:05 go along with that. And then it
3:08 basically verifies and refineses this.
3:09 So it's much more you having a
3:12 conversation with the agent about what
3:14 you're trying to do structurally in the
3:16 code than it is just letting the agent
3:18 go wild and basically make everything.
3:21 Like many of the other coding agents out
3:22 there, it has features where you can set
3:25 up guidelines. It has support for things
3:28 like MCP. And if you want to, it even
3:31 has what's called a brave mode where it
3:33 will go and just write a bunch of code
3:35 for you. But for me, the real strength
3:37 of this comes in this code ask mentality
3:39 where you're able to take your code
3:42 base, ask a bunch of questions about it,
3:45 propose some ideas without writing any
3:48 code, and then be able to execute that
3:51 as you go into a coding mode. So for
3:53 professional developers, this is really
3:57 set up for much more sort of trust and
3:59 control over what you're actually
4:01 creating rather than just letting some
4:04 agent go off and make everything by
4:06 itself. Like I've mentioned a number of
4:08 times, one of the big advantage of this
4:11 is for team onboarding. So if you have a
4:13 large code base where you've got a team
4:15 of people working on this, you're then
4:18 able to onboard people faster as they
4:20 can then go into ask mode and get
4:22 summaries about particular parts of the
4:25 codebase, about how things interact with
4:27 other things in the codebase. And you
4:29 can even have your whole standards and
4:32 the whole sort of stack defined. So as
4:34 people go in to work on the codebase,
4:36 they're able to do queries. they're able
4:38 to have things explained to them about
4:40 what's actually going on there. So,
4:42 let's just jump in, have a look at how
4:44 we can do some of the things in here.
4:46 Okay, so this is a project that I was
4:49 working on with Juni. It uses the live
4:53 API or the BAI API from Gemini and they
4:55 had a nice sort of demo already out
4:57 there, but it wasn't in Nex.js and I
4:59 wanted to convert it to Nex.js. I also
5:02 wanted to add in some features. So
5:03 basically with buttons you could have
5:05 someone just sitting there and then
5:07 responding to live customer support
5:10 queries on the telephone etc. So the
5:12 first thing that I needed to do was
5:13 generate some project specific
5:16 guidelines. And so the idea here is that
5:18 you just come in here, you let it look
5:20 at your code. And one of the things that
5:21 I really like about all of this is that
5:24 you can kick off just with ask where
5:28 okay, this operates very much like I'm
5:29 talking to someone who knows the
5:31 codebase. They will go through check out
5:33 the codebase and then tell me about the
5:36 codebase. What frameworks is it using?
5:38 Any features that I should be aware
5:40 about? any sort of setup stuff that I
5:41 should be aware about that kind of
5:43 thing. And once I've done that, I can
5:45 then basically generate these project
5:48 specific guidelines where it will save
5:51 to a markdown file. And you can think of
5:54 this as like your agents MD or your sort
5:57 of rules MD file that you get for coding
6:00 agents or other agents etc. Once Juny
6:02 was done with that, then I was able to
6:04 just move on to tasks. And this is where
6:08 I move over to the auto use where it now
6:10 can basically answer questions but it
6:12 can also write code and can move on
6:14 doing that. I can also select think more
6:16 or if I really wanted to I can select
6:18 brave mode which I'll talk about in a
6:20 second. So at this point I basically had
6:24 it convert everything to Nex.js so that
6:26 it was actually working as a basic
6:28 Nex.js app. And then there are a bunch
6:30 of tasks that I wanted to do like update
6:33 and add some features to it. And this is
6:34 where we see the nice sort of planning
6:36 element where it would go off and
6:38 execute. So once it'd gone through and
6:40 made those changes, I then wanted to
6:42 make some changes to how the actual app
6:44 was laid out and add some new
6:46 functionality to it. Okay. So there are
6:48 a lot of really nice sort of quality of
6:51 life things in here. So I've been
6:54 talking to it and getting it to run some
6:56 terminal commands and it can go through
6:59 that and do that no problem at all. I've
7:01 got the guideline docs open here. Now
7:04 you'll see that I've split it. So this
7:05 is actually a markdown file. So we can
7:07 see it as raw text above here and down
7:10 here is markdown. But they're synced. So
7:13 if I start scrolling the top one down
7:15 looking for something, it will actually
7:18 sync the markdown so that I can see what
7:20 I'm editing, what's going on, that kind
7:23 of thing in here. So looking at the app,
7:25 I can see that I've still got some
7:27 issues. So I'm going to try out Brave
7:30 mode and see if it can actually fix it.
7:32 Now I've got the app running live in
7:36 another window. So let me get Juny to
7:38 basically run through and try to fix
7:40 some of the buttons and some of the
7:42 issues going on here. Now one of the
7:43 things that's nice about even with Brave
7:46 mode, it's set up so that if it is going
7:48 to make certain terminal commands and
7:50 stuff like that, it will still come back
7:52 to you and double check if you actually
7:55 want to do those things or not. You can
7:57 see as this is chugging along, it's been
8:00 able to work out where the actual
8:02 correct file is. It's got a plan up here
8:05 that it's working to. We can come back
8:08 and see this plan at any point. And we
8:10 can see that it's looking for the actual
8:14 symbols and it's working on what it
8:16 actually needs to change in here. Okay.
8:18 And it's just looking over here. It's
8:20 actually gone through and fixed up the
8:24 issue, worked out what it was, wired all
8:26 this up nicely now so that it should
8:28 work. And it looks like that it was
8:30 actually a CSS issue that happened in
8:32 the conversion. And so it sort of worked
8:34 out that okay, it just needs to link
8:36 certain things together to basically get
8:38 the whole thing working again. I do like
8:40 at the end of each run it gives me a
8:44 very clear breakdown of what has
8:47 actually changed in here of where it's
8:50 added code of where it's deleted code.
8:53 We can actually bring up and see okay
8:56 what was actually changed in here. We
8:59 can also see in this diff view looking
9:01 at what things have changed. Obviously
9:02 we got a lot of nice things from the
9:04 editor helping us with colors or things
9:07 like that. But here we can clearly see
9:09 what's been changed, what's not being
9:12 changed very quickly so that we can
9:14 decide if we want to roll back anything.
9:17 We can review the entire plan and see
9:20 what happened. And if any point time we
9:21 wanted to roll back, we could just roll
9:24 back all of these things. And this is
9:26 what I think is really the strength of
9:30 Tuni is that it's not about what it
9:33 changes. It's about you knowing and
9:37 being in control of what it changes.
9:38 With you being able to clearly see those
9:41 things, you're then able to commit a git
9:43 change to this easily. You can basically
9:45 tag things. You can push things to new
9:47 branches, etc. And you can even do
9:49 things like easily generate a change log
9:52 and track that based on your recent
9:54 commits in here. Another thing that's
9:56 really nice is that it will often do
9:58 things like this. How often do you want
10:00 me to ask questions? If I come into the
10:01 settings here, I've got a whole bunch of
10:04 different settings for Juny, including
10:06 this sort of frequency of questions from
10:09 Juny. So, it definitely has more of a
10:12 pairs programming kind of feel than
10:14 using a lot of these tools that just go
10:16 for it and never come back to you and
10:19 never ask you anything. Okay, if I want
10:21 to set up an MCP server, I can just come
10:23 in, paste this in here. I'm just going
10:25 to put in my API key and then close
10:27 this. And you can see that once I've
10:30 added my MCP server, it will show up in
10:33 here. I can see the status of it. I also
10:35 have the ability to change the model in
10:38 here. So if I want to use GPG5, I can
10:42 use that. But I can also move over to a
10:45 Sonnet 4.5 model if I want to do that as
10:47 well. Okay. So you can see here I can go
10:49 off and give it a new task, but this
10:51 time I'm asking it to use context 7 in
10:54 there. So it will use the MCP tool. It
10:56 will look at what it has available in
10:58 there. It will then look at the actual
11:00 tool. I do really like this whole
11:03 process of look at the code base, assess
11:07 where things are, make a plan, talk with
11:10 me, take action, finish the task, give
11:12 me a full revision of what's been
11:14 changed, what hasn't been changed.
11:17 Okay, it's gone through and run and
11:19 adhere to its plan. It's worked out what
11:21 it needed to change. And then at the
11:23 end, it gives me the nice report. At
11:26 this point, I can add it all to git. I
11:28 can then make a commit. And just like
11:30 before, we can come in and see what it's
11:32 actually added in here. So, we can see
11:35 that it's actually now added a bunch of
11:38 things for this live support console.
11:40 >> Hello there. I'm your virtual assistant
11:43 and I'm here to help. How can I assist
11:45 you today? Could you please provide your
11:47 order number so I can check its status
11:49 for you? Once I have that, I'll be able
11:51 to give you an estimated delivery or
11:53 resolution time. And don't worry, if
11:56 there are any unexpected delays, I'll be
11:58 sure to keep you updated. Okay, here's a
12:00 quick summary of our conversation so
12:03 far. I greeted you and introduced myself
12:05 as your virtual assistant, offering my
12:07 help. I asked for your order number.
12:09 >> Okay, you can hear from that that Juny
12:11 has now got this fully converted to
12:14 Nex.js. It's all working as expected.
12:16 It's been able to add in the new
12:18 features that I wanted. And now it's at
12:19 a point where I could go through and
12:22 just stylize the UI and work on things
12:24 like that. So just to finish up, I would
12:26 say one of the cool things about Junior
12:29 is that it's not trying to measure
12:32 success by the amount of code that it's
12:36 writing. It really is much more a tool
12:39 and that makes it really not a vibe
12:41 coding tool, right? Which is great. I
12:43 think it actually is measuring much more
12:46 about trying to make the least changes
12:49 possible to a repo to get a job done.
12:50 And this is much more in line with
12:52 professional software development than
12:56 it is with things like vibe coding tools
12:59 that you put in a three-word prompt and
13:01 it goes off and generates something that
13:03 usually probably doesn't work that well
13:05 and it's just going to be eye candy. The
13:07 other thing that I think is really a big
13:09 win here is that while I've been showing
13:11 this with webstorm, which is their sort
13:14 of JavaScript editor, we could also be
13:16 doing this with Rust, I could also be
13:19 doing this with Cotlin or with Java in
13:21 something like Intelligj and actually
13:23 have that working perhaps with something
13:26 like Android Studio to roll out a full
13:28 app. Now, I think this is where a lot of
13:29 developers are really going to like
13:32 this. With a tool like Juny, if you
13:34 already know how to code, it can teach
13:37 you new frameworks, new languages, and
13:39 help you to be able to ship usable
13:42 software that can actually be useful and
13:45 not just chew up a lot of tokens. So if
13:47 you have ever used the Jet Brains idees,
13:49 certainly go and check out what Juni can
13:51 do for you and try doing some AI coding
13:53 where the AI coder is actually like a
13:55 pair's programmer that's sitting down
13:57 working with you, having a conversation
14:00 with you and not just some crazy intern
14:02 that's trying to write 50,000 lines of
14:04 code in the first hour. Anyway, let me
14:05 know in the comments what you think.
14:07 There are links to all of this where you
14:08 can get started in the description and
14:11 check it out. And as always, I will talk