PageSourceSearch

https://create.helixscribe.ai/assets/AdminRoadmapPage-C4MOq8HJ.js

js helixscribe.ai collected 2026-10-05 12:37:09 UTC 6,953 bytes, 1 lines download raw bytes

1import{j as e}from"./app-Bz8f8tvc.js";import{m as d,U as l}from"./index-DNw6bGyP.js";import{A as c}from"./AdminLayout-BQ1rEbk_.js";import{f as t}from"./AdminUI-DgrnIB3D.js";import{B as a}from"./badge-kN-LcTPc.js";import{C as m}from"./credit-card-B_-ynH6H.js";import{S as p}from"./shield-check-DUdRvyN7.js";import{C as h}from"./clock-3-CCoutCxw.js";import{A as x}from"./alert-circle-BVoUmZUR.js";import{L as g}from"./list-checks-EdHgltbO.js";import{C as u}from"./check-circle-2-B5Dgt--v.js";import"./preload-helper-BXl3LOEh.js";import"./App-CdUY2yBm.js";import"./createAuthClient-BhMYW23_.js";import"./Combination-BG3zUdtA.js";import"./check-vUgECwyx.js";import"./circle-DhDdaWQa.js";import"./book-open-BTxEVI4O.js";import"./zap-Drw09ART.js";import"./file-text-DinhTmRK.js";import"./PublicCtaLink-Cly4gHBP.js";import"./bar-chart-3-3JV--5Ls.js";import"./map-7lxI90DO.js";import"./wrench-Xjg0fpcO.js";import"./trending-up-DNNjjnLM.js";import"./card-Ahiv1xsK.js";import"./input-DvLzGl0e.js";import"./textarea-R14YjXFW.js";import"./switch-CFsKXgkm.js";import"./label-BTcKxFfj.js";import"./dialog-D_UCJq5M.js";import"./index-C95v7IJL.js";import"./loader-2-De04crkR.js";const f=d("DoorOpen",[["path",{d:"M13 4h3a2 2 0 0 1 2 2v14",key:"hrm0s9"}],["path",{d:"M2 20h3",key:"1gaodv"}],["path",{d:"M13 20h9",key:"s90cdi"}],["path",{d:"M10 12v.01",key:"vx6srw"}],["path",{d:"M13 4.562v16.157a1 1 0 0 1-1.242.97L5 20V5.562a2 2 0 0 1 1.515-1.94l4-1A2 2 0 0 1 13 4.561Z",key:"199qr4"}
1]]),r={title:"Keep billing enforcement off for now",status:"Confirmed decision",date:"3 July 2026",env:"BILLING_ENFORCED=false"},b=["Public CTAs now route to the interest form instead of sending everyone straight into account creation.","The live browser journey has confirmed founding-user mode works end to end: register, add source, generate, compare, edit, save and learn.","There are no real active users yet, so enforcing billing now mainly adds friction and extra moving parts before there is demand.","The current operating model is to collect interest first, then invite people deliberately."],j=["Real people start submitting HelixScribe Create interest forms.","Claire is ready to invite people outside the inner/test circle.","Stripe, trial/payment copy and onboarding expectations are aligned enough for paid/trial gating.","The product needs to behave like a normal paid SaaS instead of a controlled founding-user preview."],v=["Public pages use the central Register interest CTA.","The interest link can later be swapped to signup via environment config.","/v2/register remains available for deliberate/manual account creation.","Billing enforcement stays off until there is a real queue at the door."];function i({items:n,icon:o=u}){return e.jsx("ul",{className:"grid gap-3",children:n.map(s=>e.jsxs("li",{className:"flex gap-3 text-sm leading-6 text-muted-foreground",children:[e.jsx(o,{className:"mt-0.5 h-4 w-4 flex-shrink-0 text-primary"}),e.jsx("span",{children:s})]},s))})}function ee(){return e.jsxs(c,{children:[e.jsx(l,{children:e.jsx("title",{children:"Roadmap & Decisions - HelixScribe"})}),e.jsxs("div",{className:"mb-6",children:[e.jsxs("div",{className:"mb-3 flex flex-wrap items-center gap-2",children:[e.jsx(a,{variant:"secondary",children:r.status}),e.jsx(a,{variant:"outline",children:r.date})]}),e.jsx("h1",{className:"text-3xl font-bold tracking-tight",children:"Roadmap & Decisions"}),e.jsx("p",{className:"mt-2 max-w-3xl text-muted-foreground",children:"Admin-only record of current product decisions, launch gates and revisit triggers for HelixScribe Create."})]}),e.jsx(t,{className:"mb-6 border-primary/30 bg-primary/5",children:e.jsxs("div",{className:"grid gap-4 lg:grid-cols-[auto_1fr_auto] lg:items-center",children:[e.jsx("div",{className:"rounded-lg bg-background p-3 text-primary shadow-sm",children:e.jsx(m,{className:"h-6 w-6"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium uppercase tracking-wide text-muted-foreground",children:"Billing gate decision"}),e.jsx("h2",{className:"mt-1 text-2xl font-semibold",children:r.title}),e.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:["Current production stance: ",e.jsx("span",{className:"font-mono font-semibold text-foreground",children:r.env})]})]}),e.jsx("div",{className:"rounded-lg border bg-background px-4 py-3 text-sm text-muted-foreground",children:"Interest CTA is the gate for now."})]})}),e.jsxs("div",{className:"grid gap-6 xl:grid-cols-2",children:[e.jsx(t,{title:"Why This Is The Current Decision",description:"The practical reasoning behind leaving billing enforcement off.",children:e.jsx(i,{items:b})}),e.jsx(t,{title:"Current Access Model",description:"What controls access before billing enforcement is switched on.",children:e.jsx(i,{items:v,icon:p})}),e.jsx(t,{title:"Revisit When",description:"Signals that it is time to consider turning billing enforcement on.",children:e.jsx(i,{items:j,icon:h})}),e.jsx(t,{title:"Next Decision Needed",description:"What should happen before changing the production flag.",children:e.jsxs("div",{className:"space-y-4 text-sm leading-6 text-muted-foreground",children:[e.jsxs("p",{children:["Before setting ",e.jsx("span",{className:"font-mono text-foreground",children:"BILLING_ENFORCED=true"}),", confirm the exact launch path: invite-only founding users, paid trial, paid plan, or a short manually approved beta."]}),e.jsxs("div",{className:"rounded-lg border border-amber-300/40 bg-amber-50 p-4 text-amber-950 dark:bg-amber-950/20 dark:text-amber-100",children:[e.jsxs("div",{className:"mb-2 flex items-center gap-2 font-medium",children:[e.jsx(x,{className:"h-4 w-4"}),"Do not make the gate clever before there is demand."]}),e.jsx("p",{children:"The current interest form is enough for public control. Billing enforcement should become a product/commercial decision, not a reflex."})]})]})})]}),e.jsx(t,{title:"Roadmap Snapshot",description:"The active remaining product/admin work after the proof and CTA updates.",className:"mt-6",children:e.jsxs("div",{className:"grid gap-3 md:grid-cols-2",children:[e.jsxs("div",{className:"flex gap-3 rounded-lg border p-4",children:[e.jsx(f,{className:"mt-1 h-5 w-5 flex-shrink-0 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold",children:"Distribution stays paused"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Outreach, demo video and public posts remain waiting until Claire decides to start inviting interest more actively."})]})]}),e.jsxs("div",{className:"flex gap-3 rounded-lg border p-4",children:[e.jsx(g,{className:"mt-1 h-5 w-5 flex-shrink-0 text-primary"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-semibold",children:"Operational watchlist"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Watch logs/jobs after real user activity, then add deeper worker tests or database changes only if usage justifies it."})]})]})]})})]})}export{ee as default};

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.