<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Code with Mallika]]></title><description><![CDATA[Code with Mallika]]></description><link>https://mallikasingh.hashnode.dev</link><image><url>https://cdn.hashnode.com/uploads/logos/6ad49077fb507dcdacba01df/3c42ce5b-dfba-481d-a20c-415dabd301e2.jpg</url><title>Code with Mallika</title><link>https://mallikasingh.hashnode.dev</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 03 Nov 2026 02:33:58 GMT</lastBuildDate><atom:link href="https://mallikasingh.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The Complete Beginner's Guide to VibeCodeArena: How I Used HackerEarth's LLM Arena, Step by Step]]></title><description><![CDATA[From picking a challenge to submitting it, with every screen explained and the tips I wish I knew on day one]]></description><link>https://mallikasingh.hashnode.dev/the-complete-beginner-s-guide-to-vibecodearena-how-i-used-hackerearth-s-llm-arena-step-by-step</link><guid isPermaLink="true">https://mallikasingh.hashnode.dev/the-complete-beginner-s-guide-to-vibecodearena-how-i-used-hackerearth-s-llm-arena-step-by-step</guid><category><![CDATA[AI]]></category><category><![CDATA[llm]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[hackerearth]]></category><dc:creator><![CDATA[mallika singh]]></dc:creator><pubDate>Sun, 18 Oct 2026 09:51:33 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/7991f566-ae2b-4300-87e1-5627c878ca10.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When I first opened VibeCodeArena, I spent the first hour just clicking around trying to understand what everything does. There are projects, rankings, scores, a Challenge button, a sandbox, a Metrics tab, a leaderboard. It's a lot when you are new.</p>
<p>I worked on the platform as a consultant with HackerEarth, and after going through a lot of challenges I finally have a proper workflow. So I decided to write the guide I wish I had on my first day. This is a full walkthrough, screen by screen, with what each part does, how I actually used it, and the mistakes I made so you don't have to.</p>
<p>If you are a student, a fresher, or just someone curious about how LLMs perform on real coding tasks, this one is for you.</p>
<h2>First, what is VibeCodeArena?</h2>
<p>VibeCodeArena is a platform made by HackerEarth where LLMs go head to head on coding challenges in real time. The tagline on the homepage says it pretty well: watch LLMs go head to head, vote for the best, and level up your AI intuition.</p>
<p>The basic idea is simple:</p>
<ol>
<li>Someone writes a prompt, like "build a wallet tracker" or "build a movie night planner".</li>
<li>AI builds the first version of the app. This is called the original challenge.</li>
<li>People like you and me take that challenge, open a sandbox, pick an LLM, and try to make the app better.</li>
<li>Every version gets evaluated and voted on, and the results feed into a leaderboard of both models and users.</li>
</ol>
<p>So it's not just "ask AI to build something". It's more like a playground where you compete with AI, work with AI, and see which LLM is actually good at what.</p>
<h2>Step 1: Browse the projects</h2>
<p>The homepage has featured projects at the top, and when you scroll down you get the full list of projects.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/c18b5b1f-9902-4e26-82b7-382180ddf886.png" alt="VibeCodeArena project list" />
<em>The project list with the winning model, category, responses and score</em></p>
<p>Every row shows you four useful things:</p>
<ul>
<li><strong>Projects:</strong> the prompt the app was built from</li>
<li><strong>Winning Model:</strong> whoever has the best version right now. This can be an LLM or a user</li>
<li><strong>Category:</strong> what kind of app it is, like Game, Hospital Management App, Wallet Balance Tracker App or Dynamic Pricing System</li>
<li><strong>Responses and Score:</strong> how many versions people have submitted and how good the best one is</li>
</ul>
<p>You can search projects, filter by category, or filter by winning model. There is also a New Project button if you want to start from your own prompt.</p>
<p><strong>My tip:</strong> when you are starting out, pick a project with a simple category and a clear prompt. A small HTML, CSS and JavaScript app is a much better first challenge than a full-stack app with a separate backend.</p>
<h2>Step 2: Open a project and read the original challenge</h2>
<p>When you click a project, you land on the original challenge page.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/ee6067d9-9080-4e6a-a547-01ab13026742.png" alt="Original challenge page" />
<em>The original challenge: the full prompt on the left, the code on the right</em></p>
<p>On the left side you get two things:</p>
<ul>
<li><strong>The full prompt.</strong> Read it properly, all of it. Click "Show more" if it is long.</li>
<li><strong>All Responses.</strong> A ranking of every submitted version, with its score and votes.</li>
</ul>
<p>On the right side there are tabs for <strong>Code</strong>, <strong>Preview</strong>, <strong>Metrics</strong> and <strong>History</strong>, plus a <strong>Download</strong> button and the big <strong>Challenge</strong> button.</p>
<p>Let me give you a real example. One of the challenges I looked at was a Wallet Balance Tracker. The prompt said to use only HTML, CSS and vanilla JavaScript. Each transaction has a type, "add" or "spend", and an amount. Everything has to be stored in Local Storage under a fixed key, the app has to load transactions on page load, and if storage is empty it should start with a predefined list. And the important rule: "spend" should reduce the balance only if there is enough balance.</p>
<p><strong>My tip:</strong> before touching anything, write down every rule from the prompt as a small checklist. Rules like "only if sufficient balance exists" are exactly the kind of thing AI quietly skips, and they are exactly what the evaluation catches. When you test the app later, you test it against this checklist.</p>
<h2>Step 3: Click Challenge and open the sandbox</h2>
<p>This is where the real work starts. When you click <strong>Challenge</strong>, a full sandbox environment opens.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/c9068087-907b-4f5c-b66e-b6489b0a7b06.png" alt="Challenge sandbox workspace" />
<em>The sandbox: chat on the left, a full VS Code style workspace on the right</em></p>
<p>On the left you have the chat with the LLM, with the original prompt at the top and a box at the bottom that says "Describe what you want to build today".</p>
<p>On the right you get a proper workspace. In this example, a document chase tracker built with Next.js and Express, the workspace runs on a HackerEarth OpenVSCode Server. You can see the project folders, like backend and frontend, a Makefile, and a terminal at the bottom. The terminal was already running the frontend with a make command, and you could see Next.js starting up on a local port.</p>
<p>At the top there are tabs for <strong>Code</strong>, <strong>Preview</strong>, <strong>Metrics</strong>, <strong>History</strong> and <strong>Activity</strong>, plus <strong>Run App</strong> and <strong>Submit Challenge</strong>.</p>
<p><strong>My tip:</strong> the terminal is the first place I look. If the app does not start, the error is usually sitting right there. Copy the exact error into your prompt instead of saying "the app is not working". The LLM fixes it much faster when it can see the real error.</p>
<h2>Step 4: Pick your LLM</h2>
<p>Right under the chat box there is a dropdown where you choose which LLM you want to work with. In the screenshot below I had DeepSeek V4 Flash selected.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/4b75dc05-a482-49ea-8670-cb16ca54473f.png" alt="Choosing the LLM and Preview" />
<em>Choosing the LLM from the dropdown, and checking the app in Preview</em></p>
<p>This is the part that makes VibeCodeArena different from just using an AI tool on its own. Because everyone is working on the same kind of challenges, you start to get a feel for how different models behave. Some reply super fast. Some take more time but understand the problem better. Some are very confident even when they did not fix anything.</p>
<p><strong>My tip:</strong> if you want to really understand a model, stick with it for a whole project. Switching models every two prompts makes it hard to tell who actually fixed what.</p>
<h2>Step 5: Check the Preview on every screen size</h2>
<p>The <strong>Preview</strong> tab shows you the running app. At the top you can switch between <strong>Desktop Auto</strong>, <strong>Tablet 768px</strong> and <strong>Mobile 390px</strong>, and there are buttons to open the preview in a new tab or refresh it.</p>
<p>In the setlist manager example above, built with Vue and Django, the preview showed a Track Library page with an "Add New Track" button and a search box that said "0 of 0 tracks shown".</p>
<p><strong>My tip:</strong> empty states like "0 of 0" are your cue to test the main flow straight away. Add a track. Search for it. Refresh and see if it is still there. A page can look beautiful and still not save a single thing. And always check the mobile view, because that's where layouts usually break.</p>
<h2>Step 6: Read the Metrics tab (seriously, read it)</h2>
<p>This tab honestly became my best friend.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/d090169b-9e1c-4322-9420-ccdcd7195caf.png" alt="Metrics tab" />
<em>The Metrics tab: scores by category and every issue by severity</em></p>
<p>The <strong>Metrics</strong> tab evaluates the app across five categories: <strong>Security, Code Quality, Correctness, Performance</strong> and <strong>Accessibility</strong>. For each one it shows a score and a count of issues by severity: <strong>Blocker, Critical, Major, Minor</strong> and <strong>Info</strong>. It also shows token usage (total tokens, tokens in and tokens out), and below that it lists the actual major issues with the file they are in.</p>
<p>Here's why it matters. On one movie night planner project, the overall score was 94%. Sounds amazing, right? But when I looked closer:</p>
<ul>
<li>Correctness was 88, with <strong>36 major issues</strong></li>
<li>Code Quality was 86, with <strong>20 major, 19 minor and 30 info</strong> issues</li>
<li>One of the major issues was a missing self parameter in a Python file called env.py</li>
</ul>
<p>So a high overall score was hiding a lot of real problems. If I had only looked at the 94%, I would have thought the app was basically done.</p>
<p><strong>My tip:</strong> treat the Metrics tab as your to-do list. Start with Blockers and Critical issues if there are any, then Majors, especially Correctness. Leave Minor and Info for the end.</p>
<h2>Step 7: The prompting loop</h2>
<p>Once you know what's wrong from the terminal, the preview and the metrics, you start prompting. This is the loop I followed on every project:</p>
<ol>
<li><strong>Audit first.</strong> My first prompt was always some version of "check what's already built, what's working and what's missing". Never ask it to build from scratch, because the app already exists.</li>
<li><strong>Fix errors first.</strong> If the app does not run, nothing else matters.</li>
<li><strong>Fix the main flow.</strong> Can a user do the main thing the prompt asked for?</li>
<li><strong>Then the UI.</strong> Contrast, spacing, dark mode, mobile layout.</li>
<li><strong>Check after every reply.</strong> Preview, terminal and metrics. Every single time.</li>
</ol>
<p>A real example from my work: one app had a catalog that kept loading forever. My prompt was exactly how I would say it: "why loading catalog is showing for so much time and even after refreeshing and clicking on retry it's not loading". The LLM changed something and said it was fixed. It wasn't. So my next prompt was "still the issue persit of the loading catalog problem please find a fix and load the data". That's when it finally looked at where the data was coming from, instead of just changing the spinner.</p>
<p>Another one: in dark mode, the text on the show details screen turned white and you couldn't read it. I described exactly what I clicked, what I saw and what I wanted, and asked it to fix it for all screens, not just one. It fixed it everywhere in one go.</p>
<p><strong>My tip:</strong> describe what you see, not what you think the bug is. And one problem per prompt. Every time I put four requests in one prompt, two got done properly and the rest got rushed.</p>
<h2>Step 8: Edit the code yourself when it makes sense</h2>
<p>You don't have to do everything through prompts. The Code tab and the workspace let you edit files directly.</p>
<p>I mostly prompted, because that's where you learn how the LLM thinks. But if something is a one line fix and you already know exactly what it is, like a wrong colour value or a typo in a label, it can be faster to just fix it yourself. Use your judgement.</p>
<h2>Step 9: Submit the challenge</h2>
<p>When the app runs, the main flow works, the major issues are handled and the UI looks right, click <strong>Submit Challenge</strong>. Your version gets evaluated and goes into the responses list for that project, where it can be scored and voted on.</p>
<p><strong>My tip:</strong> before submitting, do one last pass with your checklist from Step 2. Go through every rule in the prompt and test it in the preview. It takes five minutes and catches a surprising number of things.</p>
<h2>Step 10: Check the leaderboard</h2>
<p>The leaderboard ranks both models and users using an eval score, an Elo rating, win percentage against the average, a confidence level and a trend.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/86a63ed5-513a-4369-acbf-a64bf53af576.png" alt="Models leaderboard" />
<em>The models leaderboard</em></p>
<p>In the snapshot I looked at (16 Oct 2026), DeepSeek-v4-Flash was the top model, followed by Gemini 3.1 Flash Lite Preview and Claude 3.5 Sonnet.</p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/cebd09d7-86ae-4a4e-8577-6c5863931af6.png" alt="Combined leaderboard" />
<em>Models and users ranked together</em></p>
<p><img src="https://cdn.hashnode.com/uploads/covers/6ad49077fb507dcdacba01df/1ceb60de-f260-4279-af9b-9871e5272ae1.png" alt="Users leaderboard" />
<em>The users leaderboard</em></p>
<p>The coolest part for me was that the top users had higher eval scores than the top model. That makes total sense once you have used the platform: a user's submission is a human and an LLM working together, and that combination beats the model alone.</p>
<h2>Mistakes I made (so you don't have to)</h2>
<ul>
<li><strong>Trusting "fixed".</strong> The LLM said "issue resolved" so many times when nothing had changed. Always check the preview.</li>
<li><strong>Vague prompts.</strong> "Fix the UI" gets you a random UI change. Say exactly what is wrong and where.</li>
<li><strong>Too many asks at once.</strong> One problem per prompt.</li>
<li><strong>Polishing too early.</strong> I once spent time on styling while the main page didn't even load properly.</li>
<li><strong>Small changes breaking big things.</strong> Sometimes one small change messed up something that was working before. Keep prompts small, and re-test the main flow after bigger changes.</li>
<li><strong>Losing track across projects.</strong> I was handling 3 to 4 projects at a time. Keep a few lines of notes per project: what's fixed, what's pending, what you asked last.</li>
</ul>
<h2>Quick FAQ</h2>
<p><strong>Do I need to know coding?</strong>
You can prompt without writing code, but knowing the basics helps a lot. I could guide the LLM properly only because I understood how a web app works and what a broken data call looks like.</p>
<p><strong>Can I edit the code manually?</strong>
Yes, through the Code tab and the workspace.</p>
<p><strong>Which LLM is the best?</strong>
It depends on the task, and the leaderboard keeps changing. Try a few, and stick with one per project so you can actually compare.</p>
<p><strong>What's the most useful feature?</strong>
For me, the Metrics tab. It turns "something feels wrong" into an actual list of issues.</p>
<h2>Final thoughts</h2>
<p>VibeCodeArena taught me that working with AI is less about typing code and more about thinking clearly. Reading the prompt properly, spotting what's broken, explaining it in simple words and checking the result. Those are the same skills that make someone a good developer anywhere.</p>
<p>I went in thinking I would learn about LLMs. I came out a better debugger and a much clearer communicator. If you try it, start small, read the metrics, and never trust "fixed" without checking.</p>
<p>If you have questions about any step, drop them in the comments and I will try to help.</p>
]]></content:encoded></item></channel></rss>