1<!doctype html> 2<html lang="en" class="app-shell-loading" data-beasties-container=""> 3 <head>
3<script>window.__APP_CONFIG__={"apiBaseUrl":"https://api.wundership.com/api"};</script>
3<script defer src="https://cloud.umami.is/script.js" data-website-id="3c370669-21e5-45fc-8dd6-e9223236b4be"></script>
3<meta name="x-ssr-rendered" content="true"> 4 <meta charset="utf-8"> 5 <title>BuilderStudio | Agentic Creation</title> 6 <base href="/"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, interactive-widget=resizes-content"> 8 <meta name="description" content="Download BuilderStudio, the free local-first agentic coding IDE for macOS, Windows, and Linux with MCP, Skills, Agentic Swarms, secure previews, source editing, packaging, and deployment handoff."> 9 <meta name="robots" content="index,follow"> 10 <link rel="canonical" href="https://builderstudio.dev/ide"> 11 12 <meta property="og:site_name" content="BuilderStudio"> 13 <meta property="og:type" content="website"> 14 <meta property="og:url" content="https://builderstudio.dev/ide"> 15 <meta property="og:title" content="BuilderStudio | Agentic Creation"> 16 <meta property="og:description" content="Download BuilderStudio, the free local-first agentic coding IDE for macOS, Windows, and Linux with MCP, Skills, Agentic Swarms, secure previews, source editing, packaging, and deployment handoff."> 17 <meta property="og:image" content="https://builderstudio.dev/assets/banner.png"> 18 <meta property="og:image:secure_url" content="https://builderstudio.dev/assets/banner.png"> 19 <meta property="og:image:type" content="image/png"> 20 <meta property="og:image:alt" content="BuilderStudio local-first agentic coding IDE"> 21 22 <meta name="twitter:card" content="summary_large_image"> 23 <meta name="twitter:title" content="BuilderStudio | Agentic Creation"> 24 <meta name="twitter:description" content="Download BuilderStudio, the free local-first agentic coding IDE for macOS, Windows, and Linux with MCP, Skills, Agentic Swarms, secure previews, source editing, packaging, and deployment handoff."> 25 <meta name="twitter:image" content="https://builderstudio.dev/assets/banner.png"> 26 <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"> 27 <link rel="shortcut icon" type="image/x-icon" href="/assets/favicon.ico"> 28 <link rel="apple-touch-icon" href="/assets/banner.png"> 29 <link rel="preconnect" href="https://fonts.googleapis.com"> 30 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin=""> 31 <style>@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwRGFWfOw.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwYGFWfOw.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwTGFWfOw.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwSGFWfOw.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Geist';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwcGFU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwRGFWfOw.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;
31src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwYGFWfOw.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwTGFWfOw.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwSGFWfOw.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Geist';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwcGFU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwRGFWfOw.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwYGFWfOw.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwTGFWfOw.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwSGFWfOw.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Geist';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geist/v5/gyByhwUxId8gMEwcGFU.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');unicode-range:U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;
31src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');unicode-range:U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrodmgPn.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrMdmgPn.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFg08vz7ehw.woff2) format('woff2');unicode-range:U+2000-2001, U+2004-2008, U+200A, U+23B8-23BD, U+2500-259F;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrgdmgPn.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrkdmgPn.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Geist Mono';font-style:normal;font-weight:600;font-display:swap;
31src:url(https://fonts.gstatic.com/s/geistmono/v6/or3nQ6H-1_WfwkMZI_qYFrcdmg.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style> 32 <link rel="stylesheet" href="https://unpkg.com/@phosphor-icons/[email protected]/src/regular/style.css"> 33 <link rel="stylesheet" href="https://unpkg.com/@phosphor-icons/[email protected]/src/fill/style.css"> 34
34<script async="" src="https://unpkg.com/[email protected]/dist/es-module-shims.js"></script>
34 35
35<script type="importmap"> 36 { 37 "imports": { 38 "three": "https://cdn.jsdelivr.net/npm/[email protected]/build/three.module.js", 39 "three/addons/": "https://cdn.jsdelivr.net/npm/[email protected]/examples/jsm/", 40 "lil-gui": "https://unpkg.com/[email protected]/dist/lil-gui.esm.min.js" 41 } 42 } 43 </script>
43 44
44<script> 45 (function () { 46 var normalizedHost = (window.location.hostname || "").replace(/^www\./, "").toLowerCase(); 47 var isProfileHost = normalizedHost === "launch.you"; 48 var isStartupHost = normalizedHost === "startup.you"; 49 var currentPath = window.location.pathname || "/"; 50 var isStartupPath = currentPath === "/startup" || currentPath.indexOf("/startup/") === 0; 51 var isBaseShipYouHome = normalizedHost === "ship.you" && (currentPath === "/" || currentPath === ""); 52 var isBuilderStudioDownloadPath = 53 !isStartupHost && 54 !isProfileHost && 55 (currentPath === "/" || currentPath === "/ide" || currentPath === "/studio" || currentPath === "/builderstudio" || currentPath === "/download"); 56 var builderStudioOrigin = "https://builderstudio.dev"; 57 var profileOrigin = "https://launch.you"; 58 var startupOrigin = "https://startup.you"; 59 60 if (isBaseShipYouHome) { 61 window.location.replace(builderStudioOrigin + "/ide" + window.location.search + window.location.hash); 62 return; 63 } 64 65 var activeOrigin = isStartupHost || isStartupPath ? startupOrigin : isProfileHost ? profileOrigin : builderStudioOrigin; 66 var activeCanonicalUrl = isBuilderStudioDownloadPath ? builderStudioOrigin + "/ide" : activeOrigin + "/"; 67 var activeImageUrl = isStartupHost || isStartupPath ? startupOrigin + "/assets/banner.png" : activeOrigin + "/assets/banner.png"; 68 var activeSiteName = isStartupHost || isStartupPath ? "BuilderStudio by WunderCorp" : isProfileHost ? "BuilderStudio by WunderCorp" : "BuilderStudio"; 69 var activeTitle = 70 isStartupHost || isStartupPath 71 ? "BuilderStudio by WunderCorp" 72 : isProfileHost 73 ? "BuilderStudio by WunderCorp" 74 : "BuilderStudio | Agentic Creation"; 75 var activeDescription = 76 isStartupHost || isStartupPath 77 ? "BuilderStudio by WunderCorp, Inc is an agentic IDE for developers to automate app creation and more." 78 : isProfileHost 79 ? "BuilderStudio by WunderCorp, Inc is an agentic IDE for developers to automate app creation and more." 80 : "Download BuilderStudio, the free local-first agentic coding IDE for macOS, Windows, and Linux with MCP, Skills, Agentic Swarms, secure previews, source editing, packaging, and deployment handoff."; 81 82 if (isProfileHost) { 83 document.documentElement.setAttribute("data-launch-you-host", "true"); 84 } 85 86 if (isStartupHost || isStartupPath) { 87 document.documentElement.setAttribute("data-startup-you-host", "true"); 88 } 89 90 document.title = activeTitle; 91 92 var descriptionMeta = document.querySelector('meta[name="description"]'); 93 if (descriptionMeta) { 94 descriptionMeta.setAttribute("content", activeDescription); 95 } 96 97 var canonicalLink = document.querySelector('link[rel="canonical"]'); 98 if (canonicalLink) { 99 canonicalLink.setAttribute("href", activeCanonicalUrl); 100 } 101 102 var ogSiteNameMeta = document.querySelector('meta[property="og:site_name"]'); 103 if (ogSiteNameMeta) { 104 ogSiteNameMeta.setAttribute("content", activeSiteName); 105 } 106 107 var ogTitleMeta = document.querySelector('meta[property="og:title"]'); 108 if (ogTitleMeta) { 109 ogTitleMeta.setAttribute("content", activeTitle); 110 } 111 112 var ogDescriptionMeta = document.querySelector('meta[property="og:description"]'); 113 if (ogDescriptionMeta) { 114 ogDescriptionMeta.setAttribute("content", activeDescription); 115 } 116 117 var twitterTitleMeta = document.querySelector('meta[name="twitter:title"]'); 118 if (twitterTitleMeta) { 119 twitterTitleMeta.setAttribute("content", activeTitle); 120 } 121 122 var twitterDescriptionMeta = document.querySelector('meta[name="twitter:description"]'); 123 if (twitterDescriptionMeta) { 124 twitterDescriptionMeta.setAttribute("content", activeDescription); 125 } 126 127 var ogUrlMeta = document.querySelector('meta[property="og:url"]'); 128 if (ogUrlMeta) { 129 ogUrlMeta.setAttribute("content", activeCanonicalUrl); 130 } 131 132 var ogImageMeta = document.querySelector('meta[property="og:image"]'); 133 if (ogImageMeta) { 134 ogImageMeta.setAttribute("content", activeImageUrl); 135 } 136 137 var ogSecureImageMeta = document.querySelector('meta[property="og:image:secure_url"]'); 138 if (ogSecureImageMeta) { 139 ogSecureImageMeta.setAttribute("content", activeImageUrl); 140 } 141 142 var twitterImageMeta = document.querySelector('meta[name="twitter:image"]'); 143 if (twitterImageMeta) { 144 twitterImageMeta.setAttribute("content", activeImageUrl); 145 } 146 147 var structuredDataElement = document.getElementById("default-site-structured-data"); 148 if (structuredDataElement) { 149 structuredDataElement.textContent = JSON.stringify({ 150 "@context": "https://schema.org", 151 "@graph": [ 152 { 153 "@type": "Organization", 154 name: activeSiteName, 155 url: activeOrigin + "/", 156 logo: builderStudioOrigin + "/assets/banner.png", 157 image: activeImageUrl, 158 sameAs: ["https://github.com/wundercorp", "https://www.instagram.com/wundercorp/"], 159 }, 160 { 161 "@type": "WebSite", 162 name: activeSiteName, 163 url: activeOrigin + "/", 164 description: activeDescription, 165 }, 166 { 167 "@type": "WebPage", 168 name: activeTitle, 169 url: activeCanonicalUrl, 170 description: activeDescription, 171 isPartOf: { 172 "@type": "WebSite", 173 name: activeSiteName, 174 url: activeOrigin + "/", 175 }, 176 }, 177 ], 178 }); 179 } 180 181 document.documentElement.classList.add("app-shell-loading"); 182 })(); 183 </script>
183 184
184<script id="default-site-structured-data" type="application/ld+json"> 185 { 186 "@context": "https://schema.org", 187 "@graph": [ 188 { 189 "@type": "Organization", 190 "name": "BuilderStudio", 191 "url": "https://builderstudio.dev/", 192 "logo": "https://builderstudio.dev/assets/banner.png", 193 "image": "https://builderstudio.dev/assets/banner.png", 194 "sameAs": ["https://github.com/wundercorp", "https://www.instagram.com/wundercorp/"] 195 }, 196 { 197 "@type": "WebSite", 198 "name": "BuilderStudio", 199 "url": "https://builderstudio.dev/", 200 "description": "Download BuilderStudio, the free local-first agentic coding IDE for macOS, Windows, and Linux with MCP, Skills, Agentic Swarms, secure previews, source editing, packaging, and deployment handoff.", 201 }, 202 { 203 "@type": "WebPage", 204 "name": "BuilderStudio | Agentic Creation", 205 "url": "https://builderstudio.dev/ide", 206 "description": "Download BuilderStudio, the free local-first agentic coding IDE for macOS, Windows, and Linux with MCP, Skills, Agentic Swarms, secure previews, source editing, packaging, and deployment handoff.", 207 "isPartOf": { 208 "@type": "WebSite", 209 "name": "BuilderStudio", 210 "url": "https://builderstudio.dev/" 211 } 212 } 213 ] 214 } 215 </script>
215 216 217
217<script> 218 (function () { 219 try { 220 var storedTheme = window.localStorage.getItem("marketflow.theme"); 221 var resolvedTheme = storedTheme === "dark" ? "dark" : "light"; 222 document.documentElement.setAttribute("data-theme", resolvedTheme); 223 } catch (error) { 224 document.documentElement.setAttribute("data-theme", "light"); 225 } 226 })(); 227 </script>
227 228 229 <style> 230 :root, 231 :root[data-theme="light"] { 232 color-scheme: light; 233 --bg: #ffffff; 234 --bg-soft: #ffffff; 235 --panel: rgba(255, 255, 255, 0.92); 236 --line: rgba(15, 23, 42, 0.12); 237 --text: #0f172a; 238 --muted: #525252; 239 --brand: #111111; 240 --brand-strong: #000000; 241 --loader-overlay: rgba(250, 250, 250, 0.96); 242 --loader-surface: rgba(255, 255, 255, 0.92); 243 --loader-surface-strong: rgba(255, 255, 255, 0.98); 244 --loader-card-border: rgba(24, 24, 27, 0.12); 245 --loader-card-shadow: 0 1px 2px rgba(24, 24, 27, 0.05), 0 20px 55px rgba(24, 24, 27, 0.1); 246 --loader-spinner-track: rgba(24, 24, 27, 0.1); 247 --loader-progress-track: rgba(24, 24, 27, 0.08); 248 --loader-refresh-bg: rgba(255, 255, 255, 0.92); 249 --loader-refresh-bg-hover: rgba(248, 250, 252, 1); 250 --loader-refresh-border: rgba(24, 24, 27, 0.12); 251 --loader-refresh-border-hover: rgba(24, 24, 27, 0.22); 252 --loader-refresh-text: #71717a; 253 --loader-refresh-button-text: #09090b; 254 } 255 256 :root[data-theme="dark"] { 257 color-scheme: dark; 258 --bg: #000000; 259 --bg-soft: #050505; 260 --panel: rgba(0, 0, 0, 0.92); 261 --line: rgba(255, 255, 255, 0.14); 262 --text: #ffffff; 263 --muted: #a1a1aa; 264 --brand: #f5f5f5; 265 --brand-strong: #ffffff; 266 --loader-overlay: rgba(0, 0, 0, 0.92); 267 --loader-surface: rgba(9, 9, 11, 0.74); 268 --loader-surface-strong: rgba(9, 9, 11, 0.94); 269 --loader-card-border: rgba(255, 255, 255, 0.12); 270 --loader-card-shadow: 0 1px 2px rgba(0, 0, 0, 0.35), 0 20px 65px rgba(0, 0, 0, 0.46); 271 --loader-spinner-track: rgba(255, 255, 255, 0.12); 272 --loader-progress-track: rgba(255, 255, 255, 0.08); 273 --loader-refresh-bg: rgba(255, 255, 255, 0.08); 274 --loader-refresh-bg-hover: rgba(255, 255, 255, 0.12); 275 --loader-refresh-border: rgba(255, 255, 255, 0.14); 276 --loader-refresh-border-hover: rgba(255, 255, 255, 0.22); 277 --loader-refresh-text: #a1a1aa; 278 --loader-refresh-button-text: #ffffff; 279 } 280 281 html[data-launch-you-host="true"] app-site-header, 282 html[data-launch-you-host="true"] app-site-footer { 283 display: none !important; 284 } 285 286 html[data-launch-you-host="true"] .app-page-shell--public-profile { 287 padding: 0 !important; 288 } 289 290 body.app-shell-loading { 291 overflow: hidden; 292 } 293 294 .boot-loading-shell { 295 position: relative; 296 display: grid; 297 align-items: center; 298 justify-items: center; 299 min-height: 100vh; 300 min-height: 100dvh; 301 padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom)); 302 overflow: hidden; 303 background: var(--bg); 304 color: var(--text); 305 font-family: 306 "Geist", 307 ui-sans-serif, 308 system-ui, 309 -apple-system, 310 BlinkMacSystemFont, 311 "Segoe UI", 312 sans-serif; 313 } 314 315 .boot-loading-shell__glow { 316 position: absolute; 317 inset: 0; 318 background: linear-gradient(180deg, transparent, transparent); 319 opacity: 0.9; 320 pointer-events: none; 321 } 322 323 .boot-loading-shell__card { 324 position: relative; 325 z-index: 1; 326 display: grid; 327 justify-items: center; 328 gap: 0.85rem; 329 width: min(24rem, 100%); 330 padding: 1.5rem; 331 border: 1px solid var(--loader-card-border); 332 border-radius: 1.5rem; 333 background: var(--loader-surface-strong); 334 box-shadow: var(--loader-card-shadow); 335 text-align: center; 336 backdrop-filter: blur(16px); 337 } 338 339 .boot-loading-shell__mark { 340 position: relative; 341 display: grid; 342 place-items: center; 343 width: 3rem; 344 height: 3rem; 345 border: 1px solid var(--loader-card-border); 346 border-radius: 1rem; 347 background: color-mix(in srgb, var(--loader-surface-strong) 90%, var(--text) 10%); 348 box-shadow: inset 0 1px 0 color-mix(in srgb, #ffffff 38%, transparent); 349 } 350 351 .boot-loading-shell__mark::before, 352 .boot-loading-shell__mark::after, 353 .boot-loading-shell__mark-dot { 354 content: ""; 355 position: absolute; 356 width: 0.55rem; 357 height: 0.55rem; 358 border-radius: 999px; 359 background: var(--text); 360 animation: boot-loading-shell-pulse 1.25s ease-in-out infinite; 361 } 362 363 .boot-loading-shell__mark::before { 364 --dot-offset: -0.7rem; 365 transform: translateX(var(--dot-offset)); 366 animation-delay: 0s; 367 } 368 369 .boot-loading-shell__mark-dot { 370 --dot-offset: 0rem; 371 transform: translateX(var(--dot-offset)); 372 animation-delay: 0.16s; 373 } 374 375 .boot-loading-shell__mark::after { 376 --dot-offset: 0.7rem; 377 transform: translateX(var(--dot-offset)); 378 animation-delay: 0.32s; 379 } 380 381 .boot-loading-shell__eyebrow { 382 display: inline-flex; 383 align-items: center; 384 min-height: 1.5rem; 385 padding: 0 0.65rem; 386 border: 1px solid var(--loader-card-border); 387 border-radius: 999px; 388 background: var(--loader-surface); 389 font-size: 0.72rem; 390 font-weight: 600; 391 letter-spacing: 0.04em; 392 color: var(--muted); 393 } 394 395 .boot-loading-shell__title { 396 font-size: clamp(1.25rem, 2.4vw, 1.6rem); 397 font-weight: 650; 398 letter-spacing: -0.03em; 399 } 400 401 .boot-loading-shell__copy { 402 max-width: 21rem; 403 margin: -0.2rem 0 0; 404 font-size: 0.92rem; 405 line-height: 1.6; 406 color: var(--muted); 407 } 408 409 .app-shell-loading-overlay { 410 position: fixed; 411 inset: 0; 412 z-index: 2147483647; 413 display: grid; 414 align-items: center; 415 justify-items: center; 416 padding: max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom)); 417 background: var(--loader-overlay); 418 backdrop-filter: blur(12px); 419 opacity: 1; 420 visibility: visible; 421 transition: 422 opacity 0.2s ease, 423 visibility 0.2s ease; 424 pointer-events: auto; 425 } 426 427 .app-shell-loading-overlay__card { 428 position: relative; 429 display: grid; 430 justify-items: center; 431 gap: 0.85rem; 432 width: min(24rem, 100%); 433 padding: 1.5rem; 434 border-radius: 1.5rem; 435 border: 1px solid var(--loader-card-border); 436 background: var(--loader-surface-strong); 437 box-shadow: var(--loader-card-shadow); 438 color: var(--text); 439 text-align: center; 440 backdrop-filter: blur(16px); 441 } 442 443 .app-shell-loading-overlay__progress { 444 position: relative; 445 width: min(15rem, 100%); 446 height: 0.45rem; 447 overflow: hidden; 448 border-radius: 999px; 449 background: var(--loader-progress-track); 450 } 451 452 .app-shell-loading-overlay__progress::after { 453 content: ""; 454 position: absolute; 455 inset: 0; 456 width: 38%; 457 border-radius: inherit; 458 background: var(--text); 459 animation: app-shell-loading-slide 1.15s ease-in-out infinite; 460 } 461 462 .app-loading-refresh { 463 display: none; 464 justify-items: center; 465 gap: 0.45rem; 466 opacity: 0; 467 pointer-events: none; 468 } 469 470 .app-loading-refresh--visible { 471 display: grid; 472 animation: app-loading-refresh-reveal 0.2s ease forwards; 473 } 474 475 .app-loading-refresh__text { 476 font-size: 0.82rem; 477 color: var(--loader-refresh-text); 478 } 479 480 .app-loading-refresh__button { 481 appearance: none; 482 border: 1px solid var(--loader-refresh-border); 483 border-radius: 0.75rem; 484 background: var(--loader-refresh-bg); 485 color: var(--loader-refresh-button-text); 486 padding: 0.52rem 0.88rem; 487 font: inherit; 488 font-size: 0.86rem; 489 font-weight: 600; 490 cursor: pointer; 491 transition: 492 background 0.18s ease, 493 border-color 0.18s ease, 494 transform 0.18s ease, 495 opacity 0.18s ease; 496 } 497 498 .app-loading-refresh__button:hover { 499 background: var(--loader-refresh-bg-hover); 500 border-color: var(--loader-refresh-border-hover); 501 transform: translateY(-1px); 502 } 503 504 .app-loading-refresh__button:focus-visible { 505 outline: 2px solid var(--text); 506 outline-offset: 3px; 507 } 508 509 .app-loading-refresh__button:disabled { 510 cursor: wait; 511 opacity: 0.7; 512 transform: none; 513 } 514 515 .app-boot-loader--hidden { 516 opacity: 0; 517 visibility: hidden; 518 pointer-events: none; 519 } 520 521 @keyframes app-loading-refresh-reveal { 522 from { 523 opacity: 0; 524 transform: translateY(-0.15rem); 525 } 526 527 to { 528 opacity: 1; 529 pointer-events: auto; 530 transform: translateY(0); 531 } 532 } 533 534 @keyframes boot-loading-shell-pulse { 535 0%, 536 100% { 537 opacity: 0.35; 538 transform: translateX(var(--dot-offset, 0)) scale(0.86); 539 } 540 50% { 541 opacity: 1; 542 transform: translateX(var(--dot-offset, 0)) scale(1); 543 } 544 } 545 546 547 548 .boot-seo-fallback { 549 width: min(100% - 2rem, 68rem); 550 margin: 1.5rem auto 3rem; 551 padding: 1.5rem; 552 border: 1px solid var(--loader-card-border); 553 border-radius: 1.25rem; 554 background: var(--loader-surface); 555 color: var(--text); 556 font-family: 557 "Geist", 558 ui-sans-serif, 559 system-ui, 560 -apple-system, 561 BlinkMacSystemFont, 562 "Segoe UI", 563 sans-serif; 564 line-height: 1.65; 565 } 566 567 .boot-seo-fallback h1, 568 .boot-seo-fallback h2 { 569 margin: 0 0 0.75rem; 570 color: var(--text); 571 letter-spacing: -0.04em; 572 line-height: 1.05; 573 } 574 575 .boot-seo-fallback h1 { 576 font-size: clamp(2rem, 7vw, 4rem); 577 } 578 579 .boot-seo-fallback h2 { 580 margin-top: 1.5rem; 581 font-size: clamp(1.35rem, 3vw, 2rem); 582 } 583 584 .boot-seo-fallback p { 585 margin: 0 0 1rem; 586 color: var(--muted); 587 } 588 589 .boot-seo-fallback nav { 590 display: flex; 591 flex-wrap: wrap; 592 gap: 0.75rem; 593 margin-top: 1.25rem; 594 } 595 596 .boot-seo-fallback a { 597 display: inline-flex; 598 align-items: center; 599 min-height: 2.5rem; 600 border: 1px solid var(--loader-refresh-border); 601 border-radius: 999px; 602 padding: 0 1rem; 603 color: var(--loader-refresh-button-text); 604 text-decoration: none; 605 font-weight: 700; 606 } 607 608 @keyframes app-shell-loading-slide { 609 0% { 610 transform: translateX(-115%); 611 } 612 100% { 613 transform: translateX(260%); 614 } 615 } 616 </style> 617
617<script src="https://scripts.refgrowcdn.com/latest.js" data-project-id="933" data-param="ref" data-cookie-days="30" async="" defer=""></script>
617 618 <style>@layer properties;@layer theme,base,components,utilities;@layer theme{:root{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-200:oklch(88.5% .062 18.334);--color-red-400:oklch(70.4% .191 22.216);--color-red-500:oklch(63.7% .237 25.331);--color-emerald-400:oklch(76.5% .177 163.223);--color-blue-400:oklch(70.7% .165 254.624);--color-violet-400:oklch(70.2% .183 293.541);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-gray-500:oklch(55.1% .027 264.364);--color-zinc-200:oklch(92% .004 286.32);--color-zinc-300:oklch(87.1% .006 286.286);--color-zinc-400:oklch(70.5% .015 286.067);--color-zinc-500:oklch(55.2% .016 285.938);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tight:-.025em;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-xl:24px;--blur-2xl:40px;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;margin:0;padding:0;border:0 solid}html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}button{appearance:button}}@layer utilities{}html,body{width:100%;overflow-x:clip}html{scrollbar-width:thin;scrollbar-color:var(--muted) transparent}@supports (color: color-mix(in lab,red,red)){html{scrollbar-color:color-mix(in srgb,var(--muted) 34%,transparent) transparent}}body{position:relative}app-root{display:block;max-width:100%;overflow-x:clip}:root{color-scheme:light;--bg:#ffffff;--bg-soft:#ffffff;--panel:rgba(255, 255, 255, .92);--panel-strong:#ffffff;--drawer-panel:rgba(255, 255, 255, .96);--line:rgba(15, 23, 42, .12);--line-strong:rgba(15, 23, 42, .1);--text:#0f172a;--foreground:var(--text);--muted:#516074;--ship-you-neutral-accent:#09090b;--ship-you-neutral-accent-contrast:#ffffff;--brand:var(--ship-you-neutral-accent);--brand-dark:var(--ship-you-neutral-accent);--brand-strong:var(--ship-you-neutral-accent);--accent:#12795e;--loader-overlay:rgba(250, 250, 250, .96);--loader-surface:rgba(255, 255, 255, .92);--loader-surface-strong:rgba(255, 255, 255, .98);--loader-card-border:rgba(24, 24, 27, .12);--loader-card-shadow:0 1px 2px rgba(24, 24, 27, .05), 0 20px 55px rgba(24, 24, 27, .1);--loader-spinner-track:rgba(24, 24, 27, .1);--loader-progress-track:rgba(24, 24, 27, .08);--loader-refresh-bg:rgba(255, 255, 255, .92);--loader-refresh-bg-hover:rgba(248, 250, 252, 1);--loader-refresh-border:rgba(24, 24, 27, .12);--loader-refresh-border-hover:rgba(24, 24, 27, .22);--loader-refresh-text:#71717a;--loader-refresh-button-text:#09090b;--app-font-scale:1;--button-radius:1rem;--theme-toggle-active-blue:var(--ship-you-neutral-accent)}@layer base{*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:16px}body{margin:0;min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:calc(15px * var(--app-font-scale, 1));background:linear-gradient(180deg,transparent,transparent),linear-gradient(180deg,transparent,transparent),linear-gradient(180deg,var(--bg),var(--bg-soft));color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}}:root{--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Geist Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;--bg:#fafaf7;--bg-soft:#f4f4ef;--panel:rgba(250, 250, 247, .94);--panel-strong:#ffffff;--drawer-panel:rgba(250, 250, 247, .98);--line:rgba(17, 17, 17, .14);--line-strong:rgba(17, 17, 17, .22);--text:#111111;--foreground:#111111;--muted:#666660;--signal-orange:#ef6f2e;--signal-orange-strong:#dc5819;--signal-orange-soft:rgba(239, 111, 46, .12);
618--ship-you-neutral-accent:var(--signal-orange);--ship-you-neutral-accent-contrast:#111111;--brand:var(--signal-orange);--brand-dark:var(--signal-orange-strong);--brand-strong:var(--signal-orange);--accent:var(--signal-orange);--button-radius:4px;--theme-toggle-active-blue:var(--signal-orange)}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-feature-settings:"kern" 1,"liga" 1,"calt" 1}button{font-family:var(--font-sans)}@property --tw-font-weight{syntax:"*";inherits:false;}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0;}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0;}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0;}@property --tw-tracking{syntax:"*";inherits:false;}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}@property --tw-shadow-color{syntax:"*";inherits:false;}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%;}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}@property --tw-inset-shadow-color{syntax:"*";inherits:false;}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%;}@property --tw-ring-color{syntax:"*";inherits:false;}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}@property --tw-inset-ring-color{syntax:"*";inherits:false;}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}@property --tw-ring-inset{syntax:"*";inherits:false;}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0px;}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff;}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000;}@property --tw-rotate-x{syntax:"*";inherits:false;}@property --tw-rotate-y{syntax:"*";inherits:false;}@property --tw-rotate-z{syntax:"*";inherits:false;}@property --tw-skew-x{syntax:"*";inherits:false;}@property --tw-skew-y{syntax:"*";inherits:false;}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0;}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid;}@property --tw-leading{syntax:"*";inherits:false;}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid;}@property --tw-blur{syntax:"*";inherits:false;}@property --tw-brightness{syntax:"*";inherits:false;}@property --tw-contrast{syntax:"*";inherits:false;}@property --tw-grayscale{syntax:"*";inherits:false;}@property --tw-hue-rotate{syntax:"*";inherits:false;}@property --tw-invert{syntax:"*";inherits:false;}@property --tw-opacity{syntax:"*";inherits:false;}@property --tw-saturate{syntax:"*";inherits:false;}@property --tw-sepia{syntax:"*";inherits:false;}@property --tw-drop-shadow{syntax:"*";inherits:false;}@property --tw-drop-shadow-color{syntax:"*";inherits:false;}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%;}@property --tw-drop-shadow-size{syntax:"*";inherits:false;}@property --tw-backdrop-blur{syntax:"*";inherits:false;}@property --tw-backdrop-brightness{syntax:"*";inherits:false;}@property --tw-backdrop-contrast{syntax:"*";inherits:false;}@property --tw-backdrop-grayscale{syntax:"*";inherits:false;}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false;}@property --tw-backdrop-invert{syntax:"*";inherits:false;}@property --tw-backdrop-opacity{syntax:"*";inherits:false;}@property --tw-backdrop-saturate{syntax:"*";inherits:false;}@property --tw-backdrop-sepia{syntax:"*";inherits:false;}@property --tw-duration{syntax:"*";inherits:false;}@property --tw-ease{syntax:"*";inherits:false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-font-weight:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}
618}</style><link rel="stylesheet" href="styles-AXPGC4O7.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-AXPGC4O7.css"></noscript></head> 619 <body class="app-shell-loading" ngcm=""><div id="ssr-marker" data-ssr="true" style="display:none"></div> 620 <app-root> 621 <div id="app-boot-loader" class="boot-loading-shell" aria-live="polite" aria-busy="true"> 622 <div class="boot-loading-shell__glow"></div> 623 <div class="boot-loading-shell__card"> 624 <div class="boot-loading-shell__mark" aria-hidden="true"> 625 <span class="boot-loading-shell__mark-dot"></span> 626 </div> 627 <div class="boot-loading-shell__title">Preparing your workspace</div> 628 <p class="boot-loading-shell__copy">Loading your route and syncing the latest session state.</p> 629 <div class="app-shell-loading-overlay__progress" aria-hidden="true"></div> 630 631 <div class="app-loading-refresh"> 632 <div class="app-loading-refresh__text">Taking longer than expected?</div> 633 <button class="app-loading-refresh__button" type="button" onclick=" 634 this.disabled = true; 635 this.textContent = 'Refreshing...'; 636 window.location.reload(); 637 "> 638 Refresh page 639 </button> 640 </div> 641 </div> 642 </div> 643 644 <section class="boot-seo-fallback" aria-labelledby="builder-studio-static-title" data-nosnippet=""> 645 <h1 id="builder-studio-static-title">Download BuilderStudio</h1> 646 <p>BuilderStudio is a free native agentic coding IDE for builders who want a focused local workspace for app creation. It brings source editing, terminal workflows, MCP-aware tools, reusable Skills, OpenRouter model access, local previews, source packaging, and deployment handoff into one desktop flow. The app is designed for people who want to build app projects locally first, inspect the generated code, run safe previews, and then move a clean source bundle into the BuilderStudio control plane when it is ready to launch.</p> 647 <p>The MacOS release includes a recommended Apple Silicon DMG package and an alternate ZIP archive. BuilderStudio can help you move from an idea to an app workspace with practical building blocks: project files, command review, terminal execution, Docker-contained local previews, Aikido SafeChain dependency checks for frontend package installs, and curated Skills for better design, copy, motion, components, and interface polish. The goal is to make agentic app building feel less like a black box and more like a professional development loop
647you can inspect, adjust, package, and deploy.</p> 648 <h2>Build locally, package safely, deploy through our control plane</h2> 649 <p>Use BuilderStudio to download the latest release, create or open a project, run local app previews, manage source changes, and prepare a source handoff for the cloud control plane. The surrounding BuilderStudio site also includes the Matrix, founder tools, pricing, and support areas that help teams compare the platform and plan the next step after the local build is complete.</p> 650 <nav aria-label="BuilderStudio internal links"> 651 <a href="/ide">BuilderStudio download</a> 652 <a href="/matrix">BuilderStudio Matrix</a> 653 <a href="/startup/tools">Founder tools</a> 654 <a href="/pricing">Pricing</a> 655 <a href="/support">Support</a> 656 </nav> 657 </section> 658 </app-root> 659 660
660<script> 661 (function () { 662 window.setTimeout(function () { 663 var refreshElements = document.querySelectorAll(".app-loading-refresh"); 664 665 refreshElements.forEach(function (refreshElement) { 666 refreshElement.classList.add("app-loading-refresh--visible"); 667 }); 668 }, 7000); 669 })(); 670 </script>
670 671 672 <div id="app-shell-loading-overlay" class="app-shell-loading-overlay" aria-live="polite" aria-busy="true"> 673 <div class="app-shell-loading-overlay__card"> 674 <div class="boot-loading-shell__mark" aria-hidden="true"> 675 <span class="boot-loading-shell__mark-dot"></span> 676 </div> 677 <div class="boot-loading-shell__title">Loading page</div> 678 <div class="app-loading-refresh"> 679 <div class="app-loading-refresh__text">Taking longer than expected?</div> 680 <button class="app-loading-refresh__button" type="button" onclick=" 681 this.disabled = true; 682 this.textContent = 'Refreshing...'; 683 window.location.reload(); 684 "> 685 Refresh page 686 </button> 687 </div> 688 </div> 689 </div> 690 <link rel="modulepreload" href="chunk-RUKR5ZJD.js"><link rel="modulepreload" href="chunk-C6AMCN3O.js"><link rel="modulepreload" href="chunk-QWWAGSPG.js"><link rel="modulepreload" href="chunk-NQRLHYY5.js"><link rel="modulepreload" href="chunk-4QO55MOZ.js"><link rel="modulepreload" href="chunk-X3YO5ZS4.js"><link rel="modulepreload" href="chunk-4N2MR6FN.js"><link rel="modulepreload" href="chunk-LTHACFWH.js"><link rel="modulepreload" href="chunk-JRWJG7GL.js"><link rel="modulepreload" href="chunk-N6FP2GZP.js">
690<script src="polyfills-DOYHMSTV.js" type="module"></script>
690<script src="main-IQFAWUUO.js" type="module"></script>
690</body> 691</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.