1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[292],{3066:function(e,r,t){t.d(r,{G:function(){return s}});var i=t(4951);let n={fontFamily:"'JetBrains Mono',monospace",fontSize:"10.5px",letterSpacing:"1.5px",textTransform:"uppercase",color:"#69728e",marginBottom:"14px"},a=["User auth","Database & CRUD","Type-safe API"],o=[{id:"admin-dashboard",name:"Admin CRUD Pages",desc:"Admin-only CRUD page for your app",meta:"+24 files",on:!1},{id:"rest-api",name:"REST API Endpoints",desc:"REST API endpoints & API Key management",meta:"+14 files",on:!1},{id:"uploads",name:"File uploads (S3)",desc:"Signed uploads, image handling and storage",meta:"+11 files",on:!1},{id:"analytics",name:"Analytics & Telemetry",desc:"Events, funnels, metrics and telemetry",meta:"+16 files",on:!1}];function s(){return(0,i.jsx)("div",{style:{maxWidth:"1240px",margin:"0 auto",padding:"150px 40px 0"},children:(0,i.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"0.9fr 1.4fr",gap:"64px",alignItems:"start"},children:[(0,i.jsxs)("div",{style:{paddingTop:"8px",position:"sticky",top:"40px"},children:[(0,i.jsx)("div",{style:{fontFamily:"'JetBrains Mono',monospace",fontSize:"12px",letterSpacing:"2.5px",textTransform:"uppercase",color:"#5b8cff",marginBottom:"22px"},children:"Yours to the last file"}),(0,i.jsx)("h2",{style:{fontSize:"52px",lineHeight:1.03,fontWeight:800,letterSpacing:"-1.5px",margin:"0 0 26px",color:"#f4f6fc"},children:"Ship only the features you want"}),(0,i.jsx)("p",{style:{fontSize:"18px",lineHeight:1.6,color:"#8b93ab",margin:"0 0 28px",maxWidth:"400px",textWrap:"pretty"}
1,children:"The essentials come wired in. Everything else is a switch. Turn on admin pages, REST API support, or file uploads and Codotype scaffolds the routes, tables and deps â leave the rest off and they never touch your repo. No dead code, no half-features to delete later."})]}),(0,i.jsxs)("div",{className:"js-demo",style:{border:"1px solid rgba(120,140,220,0.16)",borderRadius:"16px",background:"#0a0e1c",overflow:"hidden",boxShadow:"0 40px 80px -40px rgba(0,0,0,0.8)"},children:[(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",padding:"14px 18px",borderBottom:"1px solid rgba(120,140,220,0.12)",background:"#0c1122"},children:[(0,i.jsx)("span",{style:{width:"11px",height:"11px",borderRadius:"50%",background:"#ff5f57"}}),(0,i.jsx)("span",{style:{width:"11px",height:"11px",borderRadius:"50%",background:"#febc2e"}}),(0,i.jsx)("span",{style:{width:"11px",height:"11px",borderRadius:"50%",background:"#28c840"}}),(0,i.jsx)("span",{style:{fontFamily:"'JetBrains Mono',monospace",fontSize:"12.5px",color:"#8b93ab",marginLeft:"12px"},children:"Configure â my-saas"})]}),(0,i.jsxs)("div",{style:{padding:"22px 24px"},children:[(0,i.jsx)("div",{style:n,children:"Included by default"}),(0,i.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"8px",marginBottom:"26px"},children:a.map(e=>(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"7px",padding:"7px 12px",border:"1px solid rgba(80,180,130,0.22)",borderRadius:"9px",background:"rgba(40,200,120,0.06)",fontSize:"13px",fontWeight:600,color:"#bfe8d1"},children:[(0,i.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"#3fce86",strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",children:(0,i.jsx)("polyline",{points:"20 6 9 17 4 12"})}),e]},e))}),(0,i.jsx)("div",{style:{...n,marginBottom:"6px"},children:"Add what you need"}),(0,i.jsx)("div",{children:o.map(e=>(0,i.jsxs)("button",{style:{width:"100%",display:"flex",alignItems:"center",gap:"14px",padding:"14px 4px",background:"transparent",border:"none",borderBottom:"1px solid rgba(120,140,220,0.08)",cursor:"pointer",textAlign:"left"},children:[(0,i.jsx)("span",{style:{width:"34px",height:"34px",borderRadius:"9px",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,background:e.on?"rgba(110,140,255,0.14)":"rgba(120,140,220,0.05)",border:`1px solid ${e.on?"rgba(110,140,255,0.4)":"rgba(120,140,220,0.12)"}`},children:(0,i.jsx)("span",{style:{width:"8px",height:"8px",borderRadius:"2px",background:e.on?"rgba(110,140,255,0.9)":"rgba(120,130,160,0.35)"}})}),(0,i.jsxs)("span",{style:{flex:1,minWidth:0},children:[(0,i.jsx)("span",{style:{display:"block",fontSize:"14.5px",fontWeight:700,color:e.on?"#f0f3fb":"#aab2c8"},children:e.name}),(0,i.jsx)("span",{style:{display:"block",fontSize:"12.5px",color:"#767f99",marginTop:"1px"},children:e.desc})]}),(0,i.jsx)("span",{style:{fontFamily:"'JetBrains Mono',monospace",fontSize:"11px",color:"#5f6884",flexShrink:0,width:"64px",textAlign:"right"},children:e.meta}),(0,i.jsx)("span",{style:{width:"42px",height:"24px",borderRadius:"999px",flexShrink:0,position:"relative",transition:"background .18s ease",background:e.on?"rgba(110,140,255,0.85)":"rgba(120,130,160,0.28)"},children:(0,i.jsx)("span",{style:{position:"absolute",top:"3px",width:"18px",height:"18px",borderRadius:"50%",background:"#fff",transition:"left .18s ease",left:e.on?"21px":"3px"}})})]},e.id))}),(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"16px",marginTop:"22px",padding:"16px 18px",border:"1px solid rgba(120,140,220,0.14)",borderRadius:"12px",background:"#0c1122"},children:[(0,i.jsxs)("div",{style:{fontFamily:"'JetBrains Mono',monospace",fontSize:"13px",color:"#9aa3bd"},children:[(0,i.jsx)("span",{style:{color:"#5b8cff"},children:"$"})," ","codotype build â"," ",(0,i.jsx)("span",{style:{color:"#e9edf7"},children:"126 files"}),","," ",(0,i.jsx)("span",{style:{color:"#e9edf7"},children:"24 deps"}),","," ",(0,i.jsx)("span",{style:{color:"#e9edf7"},children:"5 tables"})]}),(0,i.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",fontSize:"12.5px",fontWeight:600,color:"#3fce86"},children:[(0,i.jsx)("span",{style:{width:"8px",height:"8px",borderRadius:"50%",background:"#3fce8
16"}})," ","Ready"]})]})]})]})]})})}},6837:function(e,r,t){t.d(r,{g:function(){return d}});var i=t(4951);let n={border:"1px solid rgba(120,140,200,.16)",borderRadius:"14px",background:"#0e1426",padding:"22px",boxShadow:"0 16px 40px rgba(0,0,0,.35)",transition:"transform .3s ease, border-color .3s ease"},a={width:"40px",height:"40px",borderRadius:"11px",display:"flex",alignItems:"center",justifyContent:"center",marginBottom:"16px"},o={width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",strokeWidth:"1.8",strokeLinecap:"round",strokeLinejoin:"round"},s=[{hoverBorder:"rgba(96,165,250,.5)",iconGradient:"rgba(96,165,250,.22),rgba(99,102,241,.12)",iconBorder:"rgba(96,165,250,.4)",icon:(0,i.jsxs)("svg",{...o,stroke:"#93c5fd",children:[(0,i.jsx)("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2"}),(0,i.jsx)("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})]}),title:"User authentication",description:"Sign-up, login, sessions, and password resets â wired up and secure from the first run."},{hoverBorder:"rgba(129,140,248,.5)",iconGradient:"rgba(129,140,248,.22),rgba(99,102,241,.12)",iconBorder:"rgba(129,140,248,.4)",icon:(0,i.jsxs)("svg",{...o,stroke:"#a5b4fc",children:[(0,i.jsx)("ellipse",{cx:"12",cy:"5",rx:"8",ry:"3"}),(0,i.jsx)("path",{d:"M4 5v6c0 1.66 3.58 3 8 3s8-1.34 8-3V5"}),(0,i.jsx)("path",{d:"M4 11v6c0 1.66 3.58 3 8 3s8-1.34 8-3v-6"})]}),title:"Database & CRUD",description:"A real Postgres database with your models, relations, and full create-read-update-delete already wired."},{hoverBorder:"rgba(168,85,247,.5)",iconGradient:"rgba(168,85,247,.22),rgba(99,102,241,.12)",iconBorder:"rgba(168,85,247,.4)",icon:(0,i.jsxs)("svg",{...o,stroke:"#c4b5fd",children:[(0,i.jsx)("polyline",{points:"16 18 22 12 16 6"}),(0,i.jsx)("polyline",{points:"8 6 2 12 8 18"})]}),title:"Type-safe API",description:"A full tRPC layer connecting your screens to your data â end-to-end typed, no guesswork."},{hoverBorder:"rgba(96,165,250,.5)",iconGradient:"rgba(96,165,250,.22),rgba(129,140,248,.12)",iconBorder:"rgba(96,165,250,.4)",icon:(0,i.jsxs)("svg",{...o,stroke:"#93c5fd",children:[(0,i.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"2"}),(0,i.jsx)("path",{d:"M3 9h18"}),(0,i.jsx)("path",{d:"M9 21V9"})]}),title:"Admin dashboards",description:"Polished screens to view, manage, and navigate every part of your app â generated for you."}];function d(){return(0,i.jsx)("div",{style:{padding:"88px 40px"},children:(0,i.jsxs)("div",{style:{maxWidth:"1180px",margin:"0 auto",display:"grid",gridTemplateColumns:"1fr 1.18fr",gap:"60px",alignItems:"center"},"data-cc-col":"2",children:[(0,i.jsxs)("div",{"data-reveal":!0,children:[(0,i.jsx)("div",{style:{fontFamily:"'JetBrains Mono',monospace",fontSize:"12px",letterSpacing:".1em",color:"#60a5fa",marginBottom:"16px"},children:"A REAL APP, NOT A STARTER KIT"}),(0,i.jsx)("h2",{style:{margin:0,fontSize:"clamp(29px,5.8vw,44px)",fontWeight:700,letterSpacing:"-.03em",lineHeight:1.08},children:"Everything a real app needs, already built"}),(0,i.jsx)("p",{style:{margin:"22px 0 0",fontSize:"17px",lineHeight:1.65,color:"#a2abc4"},children:"Sign-in and accounts, a real database, and polished screens for every part of your app â all wired together and working the moment it opens. You start from a finished product, not a blank folder."})]}),(0,i.jsx)("div",{className:"js-demo","data-reveal":!0,"data-reveal-delay":"120","data-cc":"featuretiles",style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"16px"},children:s.map(e=>(0,i.jsxs)("div",{style:n,"style-hover":`transform:translateY(-4px); border-color:${e.hoverBorder}`,children:[(0,i.jsx)("div",{style:{...a,background:`linear-gradient(135deg,${e.iconGradient})`,border:`1px solid ${e.iconBorder}`},children:e.icon}),(0,i.jsx)("div",{style:{fontSize:"16px",fontWeight:700,marginBottom:"6px"},children:e.title}),(0,i.jsx)("div",{style:{fontSize:"13.5px",lineHeight:1.55,color:"#9aa3ba"},children:e.description})]},e.title))}),(0,i.jsxs)("div",{"data-reveal":!0,"data-reveal-delay":"220",style:{gridColumn:"1 / -1",textAlign:"center",marginTop:"34px",fontSize:"15px",color:"#8b95ad"},children:["â¦plus roles & permissions, secure API-key storage, file uploads, email, and a whole lot more â"," ",(0,i.jsx)("span",{style:{color:"#cfd6e8",fontWeight:600},children:"all wired together out of the box."})]})]})})}}}]);
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.