I vibe-coded a $20M YC app in a weekend, here's how🧙‍♂️ 🪄
Sunil Kumar Dash

Sunil Kumar Dash @sunilkumrdash

About: Digital nomad. Exploring the world of bits and bytes.

Joined:
Jul 27, 2022

I vibe-coded a $20M YC app in a weekend, here's how🧙‍♂️ 🪄

Publish Date: Jun 2
204 42

I realised that many companies offer no-code platforms to their users for automating workflows.
The numbers were kinda shocking.

No-code platform statistics

I spent a week deep-diving into Gumloop and other no-code platforms.
They're well-designed, but here's the problem: they're not built for agents. They're built for workflows. There's a difference.

Agents need customisation. They have to make decisions, route dynamically, and handle complex tool orchestration. Most platforms treat these as afterthoughts. I wanted to fix that.

Although it's not production-ready and nowhere close to handling the requests of companies like Gumloop and similar ones, this is intended to showcase the robustness of Vibe coding and how easily you can build sophisticated apps in a matter of days. You can also carry forward the work to improve it.

Vibe coding is real


Picking my tech stack

NextJS was the obvious choice for the vibe-coding stack. Could I have used FastAPI with a React frontend?
Sure — but just thinking about coordinating deployments, managing CORS, and syncing types made me tired.

For adding a near-unlimited suite of SaaS app integrations, Composio was the obvious choice. It features a JS SDK that enables you to add agent integrations easily.

When it comes to agent frameworks, JS lacks the buffet Python has.

It boiled down to two frameworks: LangGraph and the AI SDK (I’d heard about Mastra AI, but I didn’t want to spend the weekend getting familiar with it).

I chose LangGraph over AI SDK because LangGraph’s entire mental model is nodes and edges — exactly how visual agent builders should work. Every agent is just a graph; every workflow, a path through that graph. AI SDK is great, but not convenient for graph-based agents.


Coding with Vibes

If you’re a vibe-code hater, skip ahead.
Frontend is entirely vibe-coded. I didn’t use Lovable or Bolt.new because it’s easier to open the code in Cursor and tweak it there.

My setup

  • GPT-4.1The sniper: does exactly what you ask, nothing more, nothing less. Great for precise component tweaks.
  • Gemini 2.5 ProThe machine-gun: rewrites entire components and understands context across files. Perfect for major refactors.
  • 21st Dev’s MCP Server – uses the Cursor Agent to build beautiful shadow components. Instead of copy-pasting docs, I just describe what I want.

The canvas where users drag-and-drop nodes? Built with React Flow plus a moving grid background from 21st Dev. Took ~30 minutes; doing it by hand would’ve exhausted me.

Building the Components

Agent builder nodes

Strip away the marketing fluff; an AI agent is two things:

  1. An LLM that makes decisions
  2. The tools it can use to take action

That's it. So I built exactly four fundamental nodes:

  • Input Node – where data enters the system
  • Output Node – where results emerge
  • LLM Node – makes decisions
  • Tool Node – takes actions

…and an Agent Node that combines an LLM + Tools for convenience. Every complex workflow is just a remix of these primitives.

Composio for adding unlimited tool integrations

Writing tool integrations is painful. Managing auth for those tools? That’s where developers go to die.
Every tool has a different auth flow. Multiply that by 100 + tools and you have a maintenance nightmare.

Composio fixes this: one SDK, hundreds of pre-built tools, auth handled automatically. Ship in a weekend instead of spending months on OAuth.


API Routes

Each workflow is a JSON graph. Here’s a tiny example:

{
  "nodes": [
    {
      "id": "input_1",
      "type": "customInput",
      "position": { "x": 100, "y": 100 },
      "data": { "label": "User Query" }
    }
  ],
  "edges": [
    {
      "source": "input_1",
      "target": "agent_1"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

I wanted one API route that takes the entire graph and executes it.

When a user hits Run, this happens:

  1. Graph Validation – find the Input node, verify edges connect, check for cycles
  2. Topological Sort – determine execution order (LangGraph does this beautifully)
  3. Node Execution – each node type has its own execution logic
  4. State Management – pass data between nodes while maintaining context

Runtime workflow

// Sample snippet
switch (node.type) {
  case 'llm': {
    const model  = getModelFromApiKey(node.data.apiKey);
    result       = await model.invoke(previousOutput);
    break;
  }

  case 'tool': {
    const tool   = await composio.getTool(node.data.action);
    result       = await tool.execute(previousOutput);
    break;
  }

  case 'agent': {
    const tools  = await composio.getTools(node.data.tools);
    const agent  = createReActAgent(model, tools);
    result       = await agent.invoke(previousOutput);
    break;
  }
}
Enter fullscreen mode Exit fullscreen mode

Managing Authentication with Tools

Auth workflow

Authentication was my personal nightmare.
Composio solved the technical part, but the UX? That took three rewrites.

v1 pain-stack

  1. Manually type action names (spelled perfectly)
  2. Leave my app to authenticate on Composio’s dashboard
  3. Come back and hope it worked

I added a drop-down of actions, but auth was still clunky. So I:

  1. Pulled every available tool from Composio’s API and cached it locally.
  2. Built a modal showing each toolkit, its tools and connection status.
  3. Adapted the UI to the tool’s auth type:
  • API Keys – password input + link to get the key
  • OAuth2 (hosted)Connect button opens a pop-up
  • OAuth2 (custom) – form for client credentials
  • Other – dynamic form built from required fields

Once authenticated, the same modal lets you search and add tools in one click.


Agent Orchestration Patterns

Orchestration patterns

Anthropic’s guide “Building Effective Agents” lists several patterns. I created nodes that instantiate these instantly.

1. Prompt Chaining

  • Pattern: Sequential; output of one agent feeds the next.
  • Node example: customInput → agent_1 → agent_2 → customOutput

2. Parallelisation

  • Pattern: Agents run in parallel and their results are aggregated.
  • Node example:
  customInput → agent_1   (parallel)
  customInput → agent_2   (parallel)
  both       → aggregator → customOutput
Enter fullscreen mode Exit fullscreen mode

3. Routing

  • Pattern: A router agent decides which branch to use.
  • Node example:
  customInput → router_agent
  router_agent → agent_1 | agent_2 → customOutput
Enter fullscreen mode Exit fullscreen mode

4. Evaluator-Optimiser

  • Pattern: Generator agent produces solutions; evaluator checks them; loop until good.
  • Node example:
  customInput → generator_agent → solution_output
                 ↘ evaluator_agent ↗
Enter fullscreen mode Exit fullscreen mode

5. Augmented LLM

  • Pattern: An agent node is augmented with tool calls / external data.
  • Node example: customInput → agent(with tools) → customOutput

After 48 hours of rapid development, I had a working agent platform.

The barrier to building agents has collapsed. You don’t need a 20-person team and six months; you need:

  • Clear thinking about what agents are (decision-makers with tools)
  • The right abstractions (everything is a graph)
  • The wisdom to reuse existing solutions instead of rebuilding them

The irony? I spent more time perfecting the auth modal than building the execution engine. In the age of vibe-code, the hardest problems aren’t technical — they’re about understanding users and having the taste to build well.

The code lives on GitHub. Fork it, break it, make it better.

Finally, the fruits of 48 hrs of vibe-coding:

This was all about vibe coding my way to an actual product. Though it's still maybe not fully ready for the real world, it's 80% there in a weekend, which would have taken months before.

Comments 42 total

  • kamran2121
    kamran2121Jun 2, 2025

    This looks interesting, I was trying replicate something simillar, great read.

  • Alexhales67
    Alexhales67Jun 2, 2025

    mmm interesting

  • James D Ingersoll (Ghost King)
    James D Ingersoll (Ghost King)Jun 2, 2025

    Appreciate the transparency at the end there. That last line about it not being fully ready for the real world stood out... felt like the only human breath in a sea of AI-gen content.

    If you're ever interested in diving into agent systems built for autonomy and real-world deployment, I've been pushing the boundaries with my DataOps Terminal v2.0 NLP to CL, dual-screen interface, and a full cognitive agent loop with live data, memory, and observability.

    GitHub: github.com/GodsIMiJ1/dataops-terminal

    Post: dev.to/ghostking314/dataops-termin...

    (Open-source AI agent interface, built for research & education.)

  • Shrijal Acharya
    Shrijal AcharyaJun 2, 2025

    We've come a long way with these AI models. Great work, Sunil!

  • Nevo David
    Nevo DavidJun 2, 2025

    crazy how much you cranked out just by rolling with it tbh - ever hit a point where the speed starts biting back or does moving fast help you spot what matters most?

  • Kristian Ask
    Kristian AskJun 2, 2025

    Made any money of it yet? Then there's the 80/20 rule of development.

    • Sunil Kumar Dash
      Sunil Kumar DashJun 3, 2025

      This is for the love of the game

    • Emmanuel Chijioke
      Emmanuel ChijiokeJun 4, 2025

      What is the 80/20 rule of development? 🤔

      • Kristian Ask
        Kristian AskJun 5, 2025

        If 80% is done with 20% of effort the remaining 20% will take the remaing 80% of effort

  • Dotallio
    DotallioJun 2, 2025

    Yes! The real struggle is always UX and auth flows, not the code itself. Curious - if you could pick one thing to polish next, what would it be?

    • Sunil Kumar Dash
      Sunil Kumar DashJun 3, 2025

      It's definitely the UX; the most difficult part was app integrations for agentic flow, but Composio took care of it.

  • Parag Nandy Roy
    Parag Nandy RoyJun 2, 2025

    The fact that this level of complexity is now weekend-buildable is wild....love the breakdown

  • Samuel Boczek
    Samuel BoczekJun 3, 2025

    Just use NodeRed...

  • Mayank Raj
    Mayank RajJun 3, 2025

    clickbait: must clarify that a weekend of Vibe coded garbage did not get into YC neither its valued at 20M.

    This is like making a line follower robot on your desk and calling it Tesla.

  • sentinelae
    sentinelaeJun 3, 2025

    I MS Painted a $10 trillion painting in a few minutes to be displayed at Louvre Museum, here's how:

    I throw a bunch of meaningless crap together...

    Then I clickbait.

    Then I say it's 80% there.

  • Mr VICTOR
    Mr VICTORJun 3, 2025

    sweet

  • Goscha Graf
    Goscha GrafJun 3, 2025

    Oh, it's an ad for Composio.

    ngl, still some cool tidbits here and there!

  • Darie Dee
    Darie DeeJun 3, 2025

    Smh. Composio is your own product and you're using this click bait here to market it in a way that "composio took care of it", "composio this" "composio that".

    Genuinely market a product, if it's good, people will hop on it, it it's not good, then you know. But seeing what you did in a weekend, if that's any consolation, then we know Composio would be full of bugs.

    Hate click bait.

  • Johan Prins
    Johan PrinsJun 3, 2025

    I built a custom rocket in my backyard to launch to Mars, beating SpaceX, using AI. I will soon write my article about how. But gpt 4.1 was my sniper.

  • Rasmus Schultz
    Rasmus SchultzJun 3, 2025

    Click bait advertising for "Composio", which I don't even care to find out what is.

    This app needs a dislike button.

  • Julian Harris
    Julian HarrisJun 3, 2025

    Oh you meant Zimbabwe dollars 🤦‍♂️

  • Aref Karimi
    Aref KarimiJun 3, 2025

    Bro played with a couple of SaaS apps and called it a $20M app!!

  • Visar
    VisarJun 3, 2025

    🤣🤣🤣🤣

  • Piyush Goel
    Piyush GoelJun 3, 2025

    Clearly a promotion post for composio than any other benefit. Good marketing.

  • ClaireElaine Molnar
    ClaireElaine MolnarJun 3, 2025

    So what makes it worth $20M? And you didn't mention anything about Y Combinator?

  • Arber
    ArberJun 3, 2025

    What a humble dev, even after making $20M he hasn't forgotten about the rest of us lol

  • Nathan Tarbert
    Nathan TarbertJun 4, 2025

    Pretty crazy how much you pushed in a weekend - I always end up spending ages on tiny UI stuff too, so respect for just grinding through it and shipping.

  • Max Nelson
    Max NelsonJun 4, 2025

    Hot Garbage

  • Pedro José Pezzarini
    Pedro José PezzariniJun 4, 2025

    20M Saas... Could you call the IRS and share the story?

  • Dev Iskalo
    Dev IskaloJun 4, 2025

    Great project!

  • dapeng wang
    dapeng wangJun 4, 2025

    Well done, having so much of mine is not enough,mathGPT

  • Bill Baran
    Bill BaranJun 4, 2025

    Ironically the headline above the one that brought me here, "Advice from exec that survived the .com crash: Don't be a fraud!"

  • Izdrail Bogdanel
    Izdrail BogdanelJun 4, 2025

    Fuck your clickbait title

  • Parag Nandy Roy
    Parag Nandy RoyJun 4, 2025

    I'm impressed at the 60fps video at the end..

  • xR0am
    xR0amJun 5, 2025

    @sunilkumrdash great read and good job on this, will take a deeper look at the GitHub for sure !

    Let’s connect.

  • Nikoloz Turazashvili (@axrisi)
    Nikoloz Turazashvili (@axrisi)Jun 6, 2025
    • Overview: The development of a customizable no-code platform aimed at enhancing agent-oriented workflows highlighting the importance of robust programming and integrations.

    • No-Code Platforms

      • Many companies offer no-code platforms for automating workflows.
      • Existing platforms primarily designed for workflows rather than for agents.
      • Agents require customization to handle complex decisions and orchestration, which is often overlooked.
    • Objective

      • Create a platform that prioritizes agent customization and dynamic routing.
      • Showcase the robustness of Vibe coding for building sophisticated applications quickly.
    • Technology Stack Selected

      • NextJS selected for the vibe-coding stack due to ease of deployment.
      • Composio chosen for adding unlimited SaaS app integrations with automatic auth management.
      • Comparison of frameworks highlighted LangGraph for graph-based workflows over AI SDK for its convenience.
    • Core Components Developed

      • Five fundamental nodes built:
        • Input Node: Data entry point.
        • Output Node: Result output point.
        • LLM Node: Makes decisions.
        • Tool Node: Executes actions.
        • Agent Node: Combines LLM and tools for convenience.
    • Integration Management

      • Composio’s SDK simplifies tool integrations and manages various auth flows.
      • Reduces time spent on OAuth from months to weekends.
    • API Execution Process

      • A single JSON graph represents workflows, with nodes and edges defining connections.
      • Key steps taken when executing a user-initiated run:
        • Graph validation.
        • Topological sorting for execution order.
        • Node execution based on type with state management.
    • Authentication Management

      • Initially challenging, resolved by creating a user-friendly modal for tool authentication.
      • Inclusivity of various auth types, ensuring smooth integration experiences.
        • API Keys, OAuth2 tailored for hosted and custom installations.
    • Orchestration Patterns Implemented

      • Developed nodes for several agent orchestration patterns based on Anthropic’s guide:
        • Prompt Chaining: Sequential processing.
        • Parallelization: Concurrent processing with aggregation.
        • Routing: Dynamic decision-making by router agents.
        • Evaluator-Optimizer: Solution generation with iterative evaluation.
        • Augmented LLM: Tool calls dialog enhancement.
    • Final Outcome

      • Prototype completed within 48 hours, showcasing the potential of agent platforms.
      • Emphasis on the importance of understanding user needs and design over technical challenges.
      • Code available on GitHub for community contributions and enhancements.

    made with love by axrisi
    axrisi.com

Add comment