[00:02] AI can build you a beautiful app in a demo, but real users break it in about a week. I think I've finally found a tool that fixes that, and I'm building a real one live, so you can judge for yourself. All right, let me just open up Softr and [00:16] build the thing I mentioned. I'm going to build a freelancer management portal, because that's a real use case we run at our agency every single week. I click into the AI co-builder, and instead of just spitting out an app, it starts [00:30] asking me questions. What kind of tool am I building? Who are the users? What you start seeing what makes this particular take on Vibe coding different from Lovable or Retool. And now, here's the part that actually won me over the [00:46] first time I used this thing. Before anything builds, it shows me a full spec preview of the app I'm about to get. On the left side, I can see every page it plans to create. There's a dashboard, a projects list, an hours tracker, an [01:00] invoices table, and utility pages like login, sign up, and forgot password. On the right side, there's a clean matrix showing exactly which user group can access which page. With a lot of prompt-only tools, you type something in [01:14] and hope for the best. Here, I'm literally co-creating the spec with the AI before any generation happens. If something looks wrong to me, I fix it in this panel, and I never waste a single credit on a bad build. The spec looks [01:27] right to me, so I move on. I pick my navigation styles and a light theme, and happening on the right side of the screen right now. It is not just generating a user interface. It's building my entire relational database [01:42] in real time, right in front of me. I can see the freelancers table appear first with name, email, hourly rate, and status fields. Then the projects table freelancers through a proper relationship. Then hours drops in, then [01:58] invoices, and each new table connects into the right parent table automatically. This tool also drops in sample data for every table, and that sample data is specific to creative agency use case. That's useful because I [02:12] get to see the app working end to end before I add a single real record of my own. This is a huge deal, and I want to name it directly. In lovable or replit, the database is a black box. You cannot open it, you cannot inspect it, and you [02:26] certainly cannot edit a row by hand. The database is right here in front of me. It looks like airtable, but it has the power of a proper SQL backend behind it. One more thing worth knowing about what you just watched. This database isn't [02:41] just something that happens to power your app, it's a standalone product in its own right, exactly like airtable. You can use it on its own without ever building an app on top of it just to store and manage information for your [02:54] team. Quick note before we go further. They set up a co-branded landing page for this channel, and if you sign up through the link pinned in the description, you get a stack of free AI credits to try the co-builder yourself. [03:07] The build finishes in under 3 minutes, and I'm now dropped into the studio. This is where the app actually lives, and this is also where the second half of the story gets really interesting. First thing I want to do is preview the [03:20] app as a real user would see it. There's a role switcher up in the top right, and I'm going to preview as a freelancer first. The screen reloads, and I'm would see when they log in. They see their own dashboard, their own project [03:34] list, their own hours, and their own invoices. That's it. The full owner dashboard is completely invisible to them, and it should be. Now I switch the preview back to agency owner. Same app, same URL, but the whole picture opens [03:48] up. Every freelancer, every project, every invoice, all in one view. This is what real permissions look like when they work correctly. And I didn't write a single conditional statement to make it happen. Everything got wired up from [04:02] those questions I answered 5 minutes ago. Now, let me show you something even more granular that this tool does really well. Every single block on every page has its own permission settings, and I can control visibility all the way down [04:16] at the block level. I'm clicking on the revenue widget on the owner dashboard right now. In the right panel, there's a visibility toggle, and I can restrict this block to admin users only. So, even if another role somehow lands on this [04:30] page, that specific block will not render for them. I can also filter the block by how many hours were logged. Say I want the hours table on the freelancer dashboard to only show entries over 4 hours a day, so short one-off tasks [04:45] don't clutter the view. One drop-down, and it's done. No SQL, no reprompting, no hoping the AI got the join right. Try doing that in Lovable or Replit. You'd be prompting for 20 minutes and burning credits the entire time, and you'd still [05:00] One thing I haven't shown you yet is where these roles actually come from. I'm clicking into user management on the left navigation. Here are my two groups already set up from the questions I answered at the very start, agency owner [05:15] and freelancer. I can invite someone right now by typing their email, signing them to a group, and sending the invite. That person gets an email, sets a password, and logs in to exactly the role I gave them. There's also a [05:28] distinction between public and logged-in data. Some pages, like a public intake form, don't require a login at all. Everything inside the actual portal does. And there's a global data restriction setting here, too, which is [05:42] block-level permissions I just showed you. Even if I forget to lock down one specific block, this restriction stops the wrong role from ever touching the wrong table in the first place. Softr calls this dual mode, and it's honestly [05:57] the smartest structural decision in the whole platform. You get to pick how you build, and you can switch between approaches whenever you want. Here's what dual mode actually means. For the heavy lifting, generating the app, [06:09] adding a whole new section, restructuring a big flow, you prompt the AI code builder exactly like you would with any vibe coding tool. But for small edits, you don't have to touch the AI at all. You just use the drag-and-drop [06:22] visual editor. Watch this. I want to change the label on this button from edit invoice to save invoice. I click the button, I type the new label into the field, and it's done. Zero credits spent, no rebuild, no waiting. Same [06:37] story if I want to change a color, move a block, hide a column, or reorder my navigation. All of it happens in the visual editor. All of it is free, and none of it goes anywhere near the AI. That's the real value of dual mode. The [06:51] last 20% of any real build is dozens of tiny tweaks, [music] and here that entire 20% is free and instant because you're not locked into prompting for every single change. And when I do need something bigger than a label change, [07:06] say I decide the freelancer portal actually needs a whole new section for contracts, I go right back to prompting. I open the code builder and tell it directly add a contract section where freelancers can view and download their [07:19] signed agreements. It picks up right where the app already is, builds the new tables and pages on top of what exists, and I'm back in the visual editor a minute later for the small stuff. That's the whole pitch on dual mode. Prompt [07:32] when you want AI speed, edit visually when you want control. And if you ever need something that doesn't come with Softr's predefined blocks, that's exactly what the vibe coding block is for, which I will show you next. There [07:44] will always be a moment where you need something this AI doesn't ship as a native block. Maybe you want a CSV import flow or a complex custom dashboard or a weird little calculator for a specific business logic case. [07:57] That's where the Vibe coding block comes in. It's basically a Vibe coding sandbox living inside your app. You prompt it in plain English and it generates a custom block that plugs directly into your real database with proper CRUD operations [08:12] built in. I'm dropping one onto this page right now. I'm prompting it to build me a simple utilization dashboard, hours locked per freelancer this month, plotted against their target hours. It generates and it wires itself straight [08:26] into my hours table with the right user filter applied. This is honestly one of the smartest calls and how software is built. Generating code from scratch on every single prompt is a great escape hatch, but it's a shaky foundation to [08:39] build a whole app on. Softr flips that around. The foundation is handcrafted battle-tested blocks and prompting for custom code is the escape hatch for the last 5% and that's really the core difference in how these two approaches [08:53] work under the hood. Pure prompt-to-code tools generate raw code from scratch every single time you prompt them. Softr doesn't do that by default. It assembles your app from a library of handcrafted battle-tested blocks, fields, and [09:07] actions. The same building blocks powering thousands of real apps already in production. And you mix and match them for your specific case. Then, you drop into prompting through the Vibe coding block the moment you hit a wall [09:20] those blocks don't cover. That's why the foundation holds up even though you still get all the speed of prompting when you actually need it. One question I always get about no-code app builders is what happens to the Airtable base [09:32] I've already been running for 2 years. So, let me answer that one directly. You actually get to make this call before you even start building. On the studio home screen, there is a connect data option inside the co-builder. You can [09:45] point a brand new app straight at an existing Airtable base, a Google Sheet, or a Notion database instead of generating a fresh one. I let it build me a new database for this demo, but that choice is there from the very first [09:59] screen. If you build fresh like I did and decide later that you want to switch to an external source or you want to sync with something like Supabase or HubSpot, the platform handles that too with real-time two-way sync. I click [10:12] into integrations and here's the full list: Airtable, Notion, Supabase, HubSpot, REST API, and more. I click Airtable, authorize my account, and this is the remapping screen where each field on my end gets paired to the matching [10:27] Airtable column. Either way, none of this asks you to migrate anything. Your existing data can keep living where it lives, and this just puts a proper app and a proper permissions layer on top of it. Now, let's talk about automation [10:41] because this is another place where a lot of AI builders quietly fall apart. It ships a full workflow product right alongside everything else, and I want to build a real one on camera right now. I'm clicking into the workflows tab on [10:55] the left navigation. The canvas opens up empty and I get to pick my trigger. I'm picking when a new invoice is created as the trigger for this one. For the action side, I want a Slack message to fire into our team channel every time a [11:08] freelancer uploads a new invoice. I add a Slack action, I connect my workspace, drop-down. Then I map the message body to pull the freelancer name, the invoice amount, and the project title straight from the record. I hit save on the [11:23] workflow, and now I want to actually run it live for you. I'm switching over to the invoices table, and I'm adding a new row for a freelancer named Maya on the row for a freelancer named Maya on the brand refresh project for $2,400. [11:37] Watch the Slack channel on the right side of the screen. The message lands within a couple of seconds. No error icon anywhere on the workflow, and it reads back exactly the fields I mapped. This is the piece that usually forces [11:49] people onto Zapier or Make, and this handles it in the same place without a second subscription. That was the simplest possible workflow. One trigger, one action. The This canvas handles a lot more than that. You can chain [12:03] conditions, loops, and filters into the same flow. Add wait times if you need a delay before the next step fires, and branch the logic so different outcomes trigger completely different actions. If you need to reach outside Soft entirely, [12:17] there's a call API action that hits any third-party API directly. And if the built-in actions still don't cover your case, you can drop in a custom JavaScript or Python code block right inside the workflow. I'm not building [12:31] all of that on camera today, but it's worth knowing this isn't a toy automation tool bolted onto the side. It's a real workflow engine sitting right next to your data. The real unlock here is that the workflow lives right [12:44] next to my data and right next to my app. When something breaks, I don't have to jump between three different tools to figure out where it broke. Everything sits in one place, and everything speaks the same language. This next piece is [12:57] one of the coolest things this platform has shipped. It's called the database AI agent, and it lives right inside your tables. This is the scenario I run into every single month at our agency. Freelancers send in PDF invoices, and [13:11] someone on the team has to open each one, read the total, and manually type it into a spreadsheet. It's mind-numbing work, and it's exactly the kind of thing an AI agent should just handle for us. Here's what I'm doing on the invoices [13:23] table right now. I'm right-clicking on the invoice amount column header and I'm picking let AI auto fill this field from the menu. The configuration panel slides out on the right. I pick Gen and I free flash as the model because it's fast and [13:38] it's dirt cheap on tokens for this kind of extraction job. I tell the agent to read the attached PDF from the invoice PDF column, find the total amount and drop the number into the invoice amount column. Now I'm going to actually run [13:51] it. I've got three real invoice PDFs already attached to the rows in this table and every single invoice amount cell is empty right now. I click run auto fill and I watch the column populate. The first row fills in with [14:04] 2,500, the second with 4,500, the third with 1,800. I'm cross checking each number against the PDF preview on the side and every single one is correct. Think about what [14:18] just happened. I did not write a prompt for each invoice. I did not upload anything to a separate AI tool. I set the rule once at the column level and now every future invoice that hits this table gets read and totaled [14:31] automatically. That's the difference between an AI feature and an AI agent that actually does the work. And because this agent is permission aware, it only ever operates on the rows a given user is allowed to see. So a freelancer [14:44] running ask AI against their invoices never accidentally pulls a number from someone else's row. That is a big deal for anyone handling client data. Okay, the app is built, the permissions are locked in, the workflow is running and [14:59] the AI agent is doing its job. Time to publish this thing and make it real. I'm clicking the publish button in the top right. A confirmation panel opens up and I get a live URL for the app. That's it. That's the whole flow. Here's what came [15:14] along for the ride when I hit publish. Hosting is handled, the login page is live, the sign up flow is live, the forgot password flow works, all the user roles are already enforced. Every single one of those things was set up before I [15:28] clicked publish, and none of them cost me a single extra minute. With a lot of prompt-only tools, this is the point where the wheels usually come off. You've got the app looking pretty, and then you realize you still have to wire [15:40] up authentication, host the thing somewhere, deal with password resets, and figure out how to keep freelancer data separated from client data. Here, all of that shipped with the app itself. [music] I'm logging in as the agency [15:52] owner right now on the live URL, and everything works exactly like it did in preview mode. Then I log in as a freelancer on a second browser, and I only see that freelancer's own data. This app is production ready, and we're [16:05] a little over 20 minutes into the build. Most reviews of these tools completely skip over this part. Building an app is the easy part now. Every AI tool on the looks like an app in a demo. [music] The hard part is main- taining that app 6 [16:21] months in. When the business logic has shifted, when your users are asking for new fields, and when something quietly breaks in production. In a tool where prompt, maintenance is where you get punished. Another rebuild, another [16:35] credit hit, and another chance for the AI to break something that was working yesterday. Non-technical owners end up frozen because they can't touch the code, and they can't afford to keep paying a developer for every tiny tweak. [16:48] Here, maintenance is where the platform actually shines. You want to add a new column to your freelancer's table? You click into the table, and you add it. role? You click the block, and you toggle visibility. You want to change a [17:01] workflow trigger? You open the workflow, and you edit it. None of these operations touch the AI, none of them cost credits, and none of them risk breaking something else. That is what I mean when I say this platform is [17:14] production-proven. It's not just that the initial build works, it's that the app you ship this month is still going to be editable, auditable, and understandable by a non-technical owner 2 years from now. I'm not saying pure [17:27] prompt-to-code tools are useless. They're great [music] at a specific job. If you want to throw together a quick prototype for a pitch deck, or you're testing a landing page idea over a weekend, Lovable and Retool and Base 44 [17:40] are a lot of fun for that. They give you something on screen in minutes, and that has real value for very early-stage exploration. The problem starts the moment you try to run a real business on top of that prototype. Real users, real [17:55] permissions, real data, real maintenance. That's the wall, and it's exactly why Software exists as a different kind of vibe coding platform. One built for the thing you're building to actually survive contact with real [18:08] users. So, here's the takeaway I want you to leave with. You don't have to choose between prompting your way to an app and actually owning what you built. Software gives you both prompt the AI co-builder, and it hands you real [18:21] structure and logic already in place. Drop into the visual editor anytime you want full control without touching a single credit, and reach for the vibe coding block the moment you need something that doesn't come as one of [18:34] the predefined blocks. That's the best of every world [music] in one platform. Software is the tool I reach for when I want AI speed for the heavy lift, a visual editor for everything else, and a database, a [18:47] permissions layer, workflows, and hosting all in one place. The co-branded link with the free AI credits is pinned in the description. Go build something real on it, and let me know in the comments what you shipped. I read every [18:59] comments what you shipped. I read every one. See you in the next one.