[{"data":1,"prerenderedAt":2543},["ShallowReactive",2],{"navigation_docs":3,"-developer-experience-intro-dockerized-worktree-development":1214,"-developer-experience-intro-dockerized-worktree-development-surround":2538},[4,231,472,511,732,822,906,976,1210],{"title":5,"path":6,"stem":7,"children":8,"page":78},"Getting Started","/getting-started","01.getting-started",[9,220,225],{"title":10,"order":11,"path":12,"stem":13,"children":14,"page":78},"Admin Onboarding: Getting Started",1,"/getting-started/admin-onboarding-getting-started","01.getting-started/01.admin-onboarding-getting-started",[15,19,23,27,34,38,45,79,128,141,152,156,169,173,182,199,207,213],{"title":16,"path":17,"stem":18},"Setting the Stage: How Predictability becomes Reality in DevStride","/getting-started/admin-onboarding-getting-started/setting-the-stage","01.getting-started/01.admin-onboarding-getting-started/01.setting-the-stage",{"title":20,"path":21,"stem":22},"Admin Onboarding - Getting Started","/getting-started/admin-onboarding-getting-started/admin-onboarding-guide","01.getting-started/01.admin-onboarding-getting-started/02.admin-onboarding-guide",{"title":24,"path":25,"stem":26},"Basic Terms","/getting-started/admin-onboarding-getting-started/basic-terms","01.getting-started/01.admin-onboarding-getting-started/03.basic-terms",{"title":28,"path":29,"stem":30,"children":31},"Setting Up Users and Teams","/getting-started/admin-onboarding-getting-started/setting-up-users-and-teams","01.getting-started/01.admin-onboarding-getting-started/04.setting-up-users-and-teams/index",[32],{"title":33,"path":29,"stem":30},"Admin Onboarding - Setting up  Users and Teams",{"title":35,"path":36,"stem":37},"Admin Onboarding - Configuring Your Work Model","/getting-started/admin-onboarding-getting-started/configuring-your-work-model","01.getting-started/01.admin-onboarding-getting-started/05.configuring-your-work-model",{"title":39,"path":40,"stem":41,"children":42},"Map Value: WorkStreams","/getting-started/admin-onboarding-getting-started/map-value-workstreams","01.getting-started/01.admin-onboarding-getting-started/06.map-value-workstreams/index",[43],{"title":44,"path":40,"stem":41},"Admin Onboarding: Understanding Workstreams",{"title":46,"path":47,"stem":48,"children":49,"page":78},"Items","/getting-started/admin-onboarding-getting-started/items","01.getting-started/01.admin-onboarding-getting-started/07.items",[50,54,61,67,74],{"title":51,"path":52,"stem":53},"Setting up Your Item Type Hierarchy","/getting-started/admin-onboarding-getting-started/items/setting-up-item-type-hierarchy","01.getting-started/01.admin-onboarding-getting-started/07.items/01.setting-up-item-type-hierarchy",{"title":55,"path":56,"stem":57,"children":58},"Items: Setting Up Custom Fields","/getting-started/admin-onboarding-getting-started/items/setting-up-custom-fields","01.getting-started/01.admin-onboarding-getting-started/07.items/02.setting-up-custom-fields/index",[59],{"title":60,"path":56,"stem":57},"Admin Onboarding - Setting up Custom Fields",{"title":62,"path":63,"stem":64,"children":65},"Admin Onboarding - Setting up Tags","/getting-started/admin-onboarding-getting-started/items/setting-up-tags","01.getting-started/01.admin-onboarding-getting-started/07.items/03.setting-up-tags/index",[66],{"title":62,"path":63,"stem":64},{"title":68,"path":69,"stem":70,"children":71},"Items: Creating and Managing Forms","/getting-started/admin-onboarding-getting-started/items/creating-and-managing-forms","01.getting-started/01.admin-onboarding-getting-started/07.items/04.creating-and-managing-forms/index",[72],{"title":73,"path":69,"stem":70},"Admin Onboarding - Creating and Managing Forms",{"title":75,"path":76,"stem":77},"Create Items with AI","/getting-started/admin-onboarding-getting-started/items/create-items-with-ai","01.getting-started/01.admin-onboarding-getting-started/07.items/05.create-items-with-ai",false,{"title":80,"path":81,"stem":82,"children":83,"page":78},"Item Workspace Tour","/getting-started/admin-onboarding-getting-started/item-workspace-tour","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour",[84,88,92,96,100,104,108,112,116,120,124],{"title":85,"path":86,"stem":87},"Admin Onboarding - Item Workspace Header","/getting-started/admin-onboarding-getting-started/item-workspace-tour/header","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/01.header",{"title":89,"path":90,"stem":91},"Admin Onboarding - Item Workspace Tabs","/getting-started/admin-onboarding-getting-started/item-workspace-tour/tabs","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/02.tabs",{"title":93,"path":94,"stem":95},"Admin Onboarding - Item Workspace Quick Links","/getting-started/admin-onboarding-getting-started/item-workspace-tour/quick-links","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/03.quick-links",{"title":97,"path":98,"stem":99},"Admin Onboarding - Item Workspace - Right Bar: Team through Status","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-team-through-status","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/04.right-bar-team-through-status",{"title":101,"path":102,"stem":103},"Admin Onboarding - Item Workspace - Right Bar: Point Estimates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-point-estimates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/05.right-bar-point-estimates",{"title":105,"path":106,"stem":107},"Admin Onboarding - Item Workspace - Right Bar: Time Estimates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-time-estimates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/06.right-bar-time-estimates",{"title":109,"path":110,"stem":111},"Admin Onboarding - Item Workspace -Right Bar: Best Practice time estimates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-best-practice-time-estimates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/07.right-bar-best-practice-time-estimates",{"title":113,"path":114,"stem":115},"Admin Onboarding - Item Workspace - Right Bar: Time Spent","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-time-spent","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/08.right-bar-time-spent",{"title":117,"path":118,"stem":119},"Admin Onboarding - Item Workspace - Right Bar: Priority","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-priority","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/09.right-bar-priority",{"title":121,"path":122,"stem":123},"Admin Onboarding - Item Workspace - Right Bar: Start Dates and Due Dates","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-start-dates-and-due-dates","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/10.right-bar-start-dates-and-due-dates",{"title":125,"path":126,"stem":127},"Admin Onboarding - Item Workspace - Right Bar: Progress Tracking","/getting-started/admin-onboarding-getting-started/item-workspace-tour/right-bar-progress-tracking","01.getting-started/01.admin-onboarding-getting-started/08.item-workspace-tour/11.right-bar-progress-tracking",{"title":129,"path":130,"stem":131,"children":132,"page":78},"Creating and Using Statuses","/getting-started/admin-onboarding-getting-started/creating-and-using-statuses","01.getting-started/01.admin-onboarding-getting-started/09.creating-and-using-statuses",[133,137],{"title":134,"path":135,"stem":136},"Admin Onboarding - Setting Up Workflow Statuses","/getting-started/admin-onboarding-getting-started/creating-and-using-statuses/setting-up-workflow-statuses","01.getting-started/01.admin-onboarding-getting-started/09.creating-and-using-statuses/01.setting-up-workflow-statuses",{"title":138,"path":139,"stem":140},"Admin Onboarding - Create Custom Status Collections","/getting-started/admin-onboarding-getting-started/creating-and-using-statuses/create-custom-status-collections","01.getting-started/01.admin-onboarding-getting-started/09.creating-and-using-statuses/02.create-custom-status-collections",{"title":142,"path":143,"stem":144,"children":145},"Populating and Managing WorkStreams","/getting-started/admin-onboarding-getting-started/populating-and-managing-workstreams","01.getting-started/01.admin-onboarding-getting-started/10.populating-and-managing-workstreams/index",[146,148],{"title":147,"path":143,"stem":144},"Admin Onboarding - Populating and Managing Workstreams",{"title":149,"path":150,"stem":151},"Import Templates","/getting-started/admin-onboarding-getting-started/populating-and-managing-workstreams/import-templates","01.getting-started/01.admin-onboarding-getting-started/10.populating-and-managing-workstreams/01.import-templates",{"title":153,"path":154,"stem":155},"Boards: Managing Workflow and Statuses","/getting-started/admin-onboarding-getting-started/boards-managing-workflow-and-statuses","01.getting-started/01.admin-onboarding-getting-started/11.boards-managing-workflow-and-statuses",{"title":157,"path":158,"stem":159,"children":160,"page":78},"Creating Cadences","/getting-started/admin-onboarding-getting-started/creating-cadences","01.getting-started/01.admin-onboarding-getting-started/12.creating-cadences",[161,165],{"title":162,"path":163,"stem":164},"Admin Onboarding - Organizing the When: Understanding Planning Cadences","/getting-started/admin-onboarding-getting-started/creating-cadences/understanding-planning-cadences","01.getting-started/01.admin-onboarding-getting-started/12.creating-cadences/01.understanding-planning-cadences",{"title":166,"path":167,"stem":168},"Admin Onboarding - Setting Up Cadences and Timeboxes","/getting-started/admin-onboarding-getting-started/creating-cadences/setting-up-cadences-and-timeboxes","01.getting-started/01.admin-onboarding-getting-started/12.creating-cadences/02.setting-up-cadences-and-timeboxes",{"title":170,"path":171,"stem":172},"Track Progress - Gantt Charts","/getting-started/admin-onboarding-getting-started/track-progress-gantt-charts","01.getting-started/01.admin-onboarding-getting-started/13.track-progress-gantt-charts",{"title":174,"path":175,"stem":176,"children":177,"page":78},"Using AI in DevStride","/getting-started/admin-onboarding-getting-started/using-ai-in-devstride","01.getting-started/01.admin-onboarding-getting-started/14.using-ai-in-devstride",[178],{"title":179,"path":180,"stem":181},"Creating Items with AI","/getting-started/admin-onboarding-getting-started/using-ai-in-devstride/create-items-with-ai","01.getting-started/01.admin-onboarding-getting-started/14.using-ai-in-devstride/01.create-items-with-ai",{"title":183,"path":184,"stem":185,"children":186,"page":78},"More on Permissions","/getting-started/admin-onboarding-getting-started/permissions","01.getting-started/01.admin-onboarding-getting-started/15.permissions",[187,191,195],{"title":188,"path":189,"stem":190},"Understanding Permissions","/getting-started/admin-onboarding-getting-started/permissions/understanding-permissions","01.getting-started/01.admin-onboarding-getting-started/15.permissions/01.understanding-permissions",{"title":192,"path":193,"stem":194},"Roles & Permissions","/getting-started/admin-onboarding-getting-started/permissions/roles-and-permissions","01.getting-started/01.admin-onboarding-getting-started/15.permissions/02.roles-and-permissions",{"title":196,"path":197,"stem":198},"Sharing & Access","/getting-started/admin-onboarding-getting-started/permissions/sharing-and-access","01.getting-started/01.admin-onboarding-getting-started/15.permissions/03.sharing-and-access",{"title":200,"path":201,"stem":202,"children":203,"page":78},"API Keys","/getting-started/admin-onboarding-getting-started/api-keys","01.getting-started/01.admin-onboarding-getting-started/16.api-keys",[204],{"title":200,"path":205,"stem":206},"/getting-started/admin-onboarding-getting-started/api-keys/api-keys","01.getting-started/01.admin-onboarding-getting-started/16.api-keys/01.api-keys",{"title":208,"path":209,"stem":210,"children":211},"Pulling it all together: Planned Value to Delivery","/getting-started/admin-onboarding-getting-started/overall-flow-and-best-practices","01.getting-started/01.admin-onboarding-getting-started/17.overall-flow-and-best-practices/index",[212],{"title":208,"path":209,"stem":210},{"title":214,"path":215,"stem":216,"children":217},"Best Practices for Project Management in DevStride","/getting-started/admin-onboarding-getting-started/best-practices-for-project-management","01.getting-started/01.admin-onboarding-getting-started/18.best-practices-for-project-management/index",[218],{"title":219,"path":215,"stem":216},"Handling incomplete items from Sprint to Sprint",{"title":24,"path":221,"stem":222,"children":223},"/getting-started/basic-terms","01.getting-started/02.basic-terms/index",[224],{"title":24,"path":221,"stem":222},{"title":226,"path":227,"stem":228,"children":229},"Keyboard Shortcuts","/getting-started/keyboard-shortcuts","01.getting-started/03.keyboard-shortcuts/index",[230],{"title":226,"path":227,"stem":228},{"title":232,"path":233,"stem":234,"children":235,"page":78},"Major Modules","/major-modules","02.major-modules",[236,294,348,369,427],{"title":237,"order":238,"path":239,"stem":240,"children":241,"page":78},"Map Value: Workstreams and Work Items",2,"/major-modules/workstreams-and-work-items","02.major-modules/01.workstreams-and-work-items",[242,246,250,253,257,261,265,269,272],{"title":243,"path":244,"stem":245},"Creating Items","/major-modules/workstreams-and-work-items/creating-work-items","02.major-modules/01.workstreams-and-work-items/01.creating-work-items",{"title":247,"path":248,"stem":249},"The Items Table","/major-modules/workstreams-and-work-items/manage-items-table","02.major-modules/01.workstreams-and-work-items/02.manage-items-table",{"title":179,"path":251,"stem":252},"/major-modules/workstreams-and-work-items/ai-item-creation","02.major-modules/01.workstreams-and-work-items/03.ai-item-creation",{"title":254,"path":255,"stem":256},"Published Lists","/major-modules/workstreams-and-work-items/published-lists","02.major-modules/01.workstreams-and-work-items/04.published-lists",{"title":258,"path":259,"stem":260},"Using the Map","/major-modules/workstreams-and-work-items/using-the-map","02.major-modules/01.workstreams-and-work-items/05.using-the-map",{"title":262,"path":263,"stem":264},"Dependency Graph","/major-modules/workstreams-and-work-items/dependency-graph","02.major-modules/01.workstreams-and-work-items/06.dependency-graph",{"title":266,"path":267,"stem":268},"Workstream & Item Permissions","/major-modules/workstreams-and-work-items/workstream-and-item-permissions","02.major-modules/01.workstreams-and-work-items/07.workstream-and-item-permissions",{"title":149,"path":270,"stem":271},"/major-modules/workstreams-and-work-items/import-templates","02.major-modules/01.workstreams-and-work-items/08.import-templates",{"title":273,"order":274,"path":275,"stem":276,"children":277,"page":78},"Workspace Capabilities",8,"/major-modules/workstreams-and-work-items/workspace-capabilities","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities",[278,282,286,290],{"title":279,"path":280,"stem":281},"Explore the Workspace","/major-modules/workstreams-and-work-items/workspace-capabilities/explore-the-workspace","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/01.explore-the-workspace",{"title":283,"path":284,"stem":285},"Workspace Editor & Collaboration","/major-modules/workstreams-and-work-items/workspace-capabilities/workspace-sidebar","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/02.workspace-sidebar",{"title":287,"path":288,"stem":289},"Themes & Appearance","/major-modules/workstreams-and-work-items/workspace-capabilities/themes-and-appearance","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/03.themes-and-appearance",{"title":291,"path":292,"stem":293},"Getting Help & Support","/major-modules/workstreams-and-work-items/workspace-capabilities/getting-help-and-support","02.major-modules/01.workstreams-and-work-items/09.workspace-capabilities/04.getting-help-and-support",{"title":295,"order":296,"path":297,"stem":298,"children":299,"page":78},"Plan Delivery: Boards",3,"/major-modules/boards","02.major-modules/02.boards",[300,304,308,312,316,320,324,328,332,336,340,344],{"title":301,"path":302,"stem":303},"How DevStride manages the When: Perpetual vs. Cycle-based Boards","/major-modules/boards/how-devstride-manages-the-when","02.major-modules/02.boards/01.how-devstride-manages-the-when",{"title":305,"path":306,"stem":307},"Working Group Folders: Organizing the Who of the work","/major-modules/boards/working-group-folders","02.major-modules/02.boards/02.working-group-folders",{"title":309,"path":310,"stem":311},"Understanding Board Views","/major-modules/boards/understanding-board-views","02.major-modules/02.boards/03.understanding-board-views",{"title":313,"path":314,"stem":315},"Import Stories and Epics into Boards","/major-modules/boards/import-stories-and-epics-into-boards","02.major-modules/02.boards/04.import-stories-and-epics-into-boards",{"title":317,"path":318,"stem":319},"Adding a Folder","/major-modules/boards/adding-a-folder","02.major-modules/02.boards/05.adding-a-folder",{"title":321,"path":322,"stem":323},"Manage and Edit Dependencies","/major-modules/boards/manage-and-edit-dependencies","02.major-modules/02.boards/06.manage-and-edit-dependencies",{"title":325,"path":326,"stem":327},"Creating Subfolders in DevStride","/major-modules/boards/creating-subfolders-in-devstride","02.major-modules/02.boards/07.creating-subfolders-in-devstride",{"title":329,"path":330,"stem":331},"Setting up and Using Perpetual Boards","/major-modules/boards/setting-up-and-using-perpetual-boards","02.major-modules/02.boards/08.setting-up-and-using-perpetual-boards",{"title":333,"path":334,"stem":335},"Using Cycle Boards","/major-modules/boards/using-cycle-boards","02.major-modules/02.boards/09.using-cycle-boards",{"title":337,"path":338,"stem":339},"Track and Move Work with Board Views","/major-modules/boards/track-and-move-work-with-board-views","02.major-modules/02.boards/10.track-and-move-work-with-board-views",{"title":341,"path":342,"stem":343},"Boards and WIP Limiters","/major-modules/boards/boards-and-wip-limiters","02.major-modules/02.boards/11.boards-and-wip-limiters",{"title":345,"path":346,"stem":347},"Board & Folder Permissions","/major-modules/boards/board-and-folder-permissions","02.major-modules/02.boards/12.board-and-folder-permissions",{"title":349,"path":350,"stem":351,"children":352,"page":78},"Track Progress: Gantts","/major-modules/track-progress-gantts","02.major-modules/03.track-progress-gantts",[353,357,361,365],{"title":354,"path":355,"stem":356},"Track Progress: Setting Up Gantt Charts","/major-modules/track-progress-gantts/setting-up-gantt-charts","02.major-modules/03.track-progress-gantts/01.setting-up-gantt-charts",{"title":358,"path":359,"stem":360},"Viewing Gantt Charts","/major-modules/track-progress-gantts/viewing-gantt-charts","02.major-modules/03.track-progress-gantts/02.viewing-gantt-charts",{"title":362,"path":363,"stem":364},"Using Gantt Charts: Navigating the timeline","/major-modules/track-progress-gantts/navigating-the-timeline","02.major-modules/03.track-progress-gantts/03.navigating-the-timeline",{"title":366,"path":367,"stem":368},"Using Gantt Charts: Navigating the table","/major-modules/track-progress-gantts/navigating-the-table","02.major-modules/03.track-progress-gantts/04.navigating-the-table",{"title":370,"order":371,"path":372,"stem":373,"children":374,"page":78},"Measure Performance: Reports",4,"/major-modules/measure-performance-reports","02.major-modules/04.measure-performance-reports",[375,379,383,387,391,395,399,403,407,411,415,419,423],{"title":376,"path":377,"stem":378},"Reports Overview","/major-modules/measure-performance-reports/viewing-optimization","02.major-modules/04.measure-performance-reports/01.viewing-optimization",{"title":380,"path":381,"stem":382},"Using AI for powerful reports","/major-modules/measure-performance-reports/using-ai-for-powerful-reports","02.major-modules/04.measure-performance-reports/02.using-ai-for-powerful-reports",{"title":384,"path":385,"stem":386},"Report Customization Options","/major-modules/measure-performance-reports/report-filters-and-options","02.major-modules/04.measure-performance-reports/03.report-filters-and-options",{"title":388,"path":389,"stem":390},"What is Current Progress?","/major-modules/measure-performance-reports/what-is-current-progress","02.major-modules/04.measure-performance-reports/04.what-is-current-progress",{"title":392,"path":393,"stem":394},"What is Trending Progress","/major-modules/measure-performance-reports/what-is-trending-progress","02.major-modules/04.measure-performance-reports/05.what-is-trending-progress",{"title":396,"path":397,"stem":398},"What is Cycle Time?","/major-modules/measure-performance-reports/what-is-cycle-time","02.major-modules/04.measure-performance-reports/06.what-is-cycle-time",{"title":400,"path":401,"stem":402},"What is Throughput?","/major-modules/measure-performance-reports/what-is-throughput","02.major-modules/04.measure-performance-reports/07.what-is-throughput",{"title":404,"path":405,"stem":406},"What is Cumulative Flow?","/major-modules/measure-performance-reports/what-is-cumulative-flow","02.major-modules/04.measure-performance-reports/08.what-is-cumulative-flow",{"title":408,"path":409,"stem":410},"What is Velocity?","/major-modules/measure-performance-reports/what-is-velocity","02.major-modules/04.measure-performance-reports/09.what-is-velocity",{"title":412,"path":413,"stem":414},"What is Burn Up?","/major-modules/measure-performance-reports/what-is-burn-up","02.major-modules/04.measure-performance-reports/10.what-is-burn-up",{"title":416,"path":417,"stem":418},"What is Burn Down?","/major-modules/measure-performance-reports/what-is-burn-down","02.major-modules/04.measure-performance-reports/11.what-is-burn-down",{"title":420,"path":421,"stem":422},"What is User Time Completed?","/major-modules/measure-performance-reports/what-is-user-time-completed","02.major-modules/04.measure-performance-reports/12.what-is-user-time-completed",{"title":424,"path":425,"stem":426},"What is Churn?","/major-modules/measure-performance-reports/what-is-churn","02.major-modules/04.measure-performance-reports/13.what-is-churn",{"title":428,"order":274,"path":429,"stem":430,"children":431,"page":78},"Service Desk","/major-modules/service-desk","02.major-modules/05.service-desk",[432,436,440,444,448,452,456,460,464,468],{"title":433,"path":434,"stem":435},"Overview","/major-modules/service-desk/overview","02.major-modules/05.service-desk/01.overview",{"title":437,"path":438,"stem":439},"Enabling Service Desk","/major-modules/service-desk/enabling-service-desk","02.major-modules/05.service-desk/02.enabling-service-desk",{"title":441,"path":442,"stem":443},"Email Channels & Setup","/major-modules/service-desk/email-channels","02.major-modules/05.service-desk/03.email-channels",{"title":445,"path":446,"stem":447},"Requesters & Companies","/major-modules/service-desk/requesters-and-companies","02.major-modules/05.service-desk/04.requesters-and-companies",{"title":449,"path":450,"stem":451},"Working a Ticket","/major-modules/service-desk/working-a-ticket","02.major-modules/05.service-desk/05.working-a-ticket",{"title":453,"path":454,"stem":455},"Request Forms","/major-modules/service-desk/request-forms","02.major-modules/05.service-desk/06.request-forms",{"title":457,"path":458,"stem":459},"The Suspended Queue","/major-modules/service-desk/suspended-messages","02.major-modules/05.service-desk/07.suspended-messages",{"title":461,"path":462,"stem":463},"Finding & Filtering Tickets","/major-modules/service-desk/finding-and-filtering-tickets","02.major-modules/05.service-desk/08.finding-and-filtering-tickets",{"title":465,"path":466,"stem":467},"Permissions","/major-modules/service-desk/permissions","02.major-modules/05.service-desk/09.permissions",{"title":469,"path":470,"stem":471},"Service Level Agreements (SLA)","/major-modules/service-desk/sla","02.major-modules/05.service-desk/10.sla",{"title":473,"path":474,"stem":475,"children":476,"page":78},"Personal Workspace","/personal-workspace","03.personal-workspace",[477,483,497,508],{"title":478,"path":479,"stem":480,"children":481},"My Work","/personal-workspace/my-work","03.personal-workspace/01.my-work/index",[482],{"title":478,"path":479,"stem":480},{"title":484,"order":485,"path":486,"stem":487,"children":488,"page":78},"Notifications",7,"/personal-workspace/notifications","03.personal-workspace/02.notifications",[489,493],{"title":490,"path":491,"stem":492},"Notifications in DevStride","/personal-workspace/notifications/overview-of-notification-options","03.personal-workspace/02.notifications/01.overview-of-notification-options",{"title":494,"path":495,"stem":496},"Customizing Notification Settings for Individuals and Teams","/personal-workspace/notifications/customizing-notification-settings-for-individuals-and-teams","03.personal-workspace/02.notifications/02.customizing-notification-settings-for-individuals-and-teams",{"title":498,"path":499,"stem":500,"children":501,"page":78},"My Account","/personal-workspace/my-account","03.personal-workspace/03.my-account",[502,505],{"title":433,"path":503,"stem":504},"/personal-workspace/my-account/overview","03.personal-workspace/03.my-account/01.overview",{"title":200,"path":506,"stem":507},"/personal-workspace/my-account/api-keys","03.personal-workspace/03.my-account/02.api-keys",{"title":226,"path":509,"stem":510},"/personal-workspace/keyboard-shortcuts","03.personal-workspace/04.keyboard-shortcuts",{"title":512,"path":513,"stem":514,"children":515,"page":78},"Workspace Administration","/workspace-administration","04.workspace-administration",[516,536,546,639,652],{"title":517,"path":518,"stem":519,"children":520,"page":78},"Manage Items Module","/workspace-administration/manage-items","04.workspace-administration/01.manage-items",[521,524,528,532],{"title":433,"path":522,"stem":523},"/workspace-administration/manage-items/overview","04.workspace-administration/01.manage-items/01.overview",{"title":525,"path":526,"stem":527},"Finding & Filtering Items","/workspace-administration/manage-items/finding-and-filtering-items","04.workspace-administration/01.manage-items/02.finding-and-filtering-items",{"title":529,"path":530,"stem":531},"Creating & Sharing Views","/workspace-administration/manage-items/creating-and-sharing-views","04.workspace-administration/01.manage-items/03.creating-and-sharing-views",{"title":533,"path":534,"stem":535},"Item Hierarchy","/workspace-administration/manage-items/item-hierarchy","04.workspace-administration/01.manage-items/04.item-hierarchy",{"title":537,"order":538,"path":539,"stem":540,"children":541,"page":78},"Automate Workflows",5,"/workspace-administration/automations","04.workspace-administration/02.automations",[542],{"title":543,"path":544,"stem":545},"Setting Up Basic Automations","/workspace-administration/automations/setting-up-basic-automations","04.workspace-administration/02.automations/01.setting-up-basic-automations",{"title":547,"order":548,"path":549,"stem":550,"children":551,"page":78},"Configure Settings",6,"/workspace-administration/settings","04.workspace-administration/03.settings",[552,565,602,611,635],{"title":553,"path":554,"stem":555,"children":556,"page":78},"Organization","/workspace-administration/settings/organization","04.workspace-administration/03.settings/01.organization",[557,561],{"title":558,"path":559,"stem":560},"Org Configuration","/workspace-administration/settings/organization/org-profile","04.workspace-administration/03.settings/01.organization/01.org-profile",{"title":562,"path":563,"stem":564},"Users, Roles & MFA","/workspace-administration/settings/organization/users-roles-and-mfa","04.workspace-administration/03.settings/01.organization/02.users-roles-and-mfa",{"title":566,"path":567,"stem":568,"children":569,"page":78},"Data Model","/workspace-administration/settings/data-model","04.workspace-administration/03.settings/02.data-model",[570,574,578,582,586,590,594,598],{"title":571,"path":572,"stem":573},"Cadences","/workspace-administration/settings/data-model/cadences","04.workspace-administration/03.settings/02.data-model/01.cadences",{"title":575,"path":576,"stem":577},"Item Types","/workspace-administration/settings/data-model/item-types","04.workspace-administration/03.settings/02.data-model/02.item-types",{"title":579,"path":580,"stem":581},"Tags","/workspace-administration/settings/data-model/tags","04.workspace-administration/03.settings/02.data-model/03.tags",{"title":583,"path":584,"stem":585},"Custom Fields","/workspace-administration/settings/data-model/custom-fields","04.workspace-administration/03.settings/02.data-model/04.custom-fields",{"title":587,"path":588,"stem":589},"Priority Levels","/workspace-administration/settings/data-model/priority-levels","04.workspace-administration/03.settings/02.data-model/05.priority-levels",{"title":591,"path":592,"stem":593},"Effort Points and Time Estimation","/workspace-administration/settings/data-model/effort-points-and-time-estimation","04.workspace-administration/03.settings/02.data-model/06.effort-points-and-time-estimation",{"title":595,"path":596,"stem":597},"Statuses and WIP Limiters","/workspace-administration/settings/data-model/statuses-and-wip-limiters","04.workspace-administration/03.settings/02.data-model/07.statuses-and-wip-limiters",{"title":599,"path":600,"stem":601},"Customizing the Item Drawer","/workspace-administration/settings/data-model/customizing-the-item-drawer","04.workspace-administration/03.settings/02.data-model/08.customizing-the-item-drawer",{"title":603,"path":604,"stem":605,"children":606,"page":78},"Forms","/workspace-administration/settings/forms","04.workspace-administration/03.settings/03.forms",[607],{"title":608,"path":609,"stem":610},"Item Request Forms","/workspace-administration/settings/forms/item-request-forms","04.workspace-administration/03.settings/03.forms/item-request-forms",{"title":612,"path":613,"stem":614,"children":615,"page":78},"Integrations","/workspace-administration/settings/integrations","04.workspace-administration/03.settings/04.integrations",[616,620,624,628,632],{"title":617,"path":618,"stem":619},"GitHub","/workspace-administration/settings/integrations/github","04.workspace-administration/03.settings/04.integrations/01.github",{"title":621,"path":622,"stem":623},"Connect AI & the MCP Server","/workspace-administration/settings/integrations/connect-ai-and-mcp","04.workspace-administration/03.settings/04.integrations/02.connect-ai-and-mcp",{"title":625,"path":626,"stem":627},"Database Access for BI Tools","/workspace-administration/settings/integrations/database-access","04.workspace-administration/03.settings/04.integrations/03.database-access",{"title":629,"path":630,"stem":631},"Jira Integration","/workspace-administration/settings/integrations/jira","04.workspace-administration/03.settings/04.integrations/04.jira",{"title":200,"path":633,"stem":634},"/workspace-administration/settings/integrations/api-keys","04.workspace-administration/03.settings/04.integrations/05.api-keys",{"title":636,"path":637,"stem":638},"Subscription & Billing","/workspace-administration/settings/subscription-and-billing","04.workspace-administration/03.settings/05.subscription-and-billing",{"title":465,"path":640,"stem":641,"children":642,"page":78},"/workspace-administration/permissions","04.workspace-administration/04.permissions",[643,646,649],{"title":188,"path":644,"stem":645},"/workspace-administration/permissions/understanding-permissions","04.workspace-administration/04.permissions/01.understanding-permissions",{"title":192,"path":647,"stem":648},"/workspace-administration/permissions/roles-and-permissions","04.workspace-administration/04.permissions/02.roles-and-permissions",{"title":196,"path":650,"stem":651},"/workspace-administration/permissions/sharing-and-access","04.workspace-administration/04.permissions/03.sharing-and-access",{"title":653,"order":654,"path":655,"stem":656,"children":657,"page":78},"Filters",10,"/workspace-administration/filters","04.workspace-administration/05.filters",[658,661,664,668,672,676,680,683,687,691,711],{"title":478,"path":659,"stem":660},"/workspace-administration/filters/my-work","04.workspace-administration/05.filters/01.my-work",{"title":484,"path":662,"stem":663},"/workspace-administration/filters/notifications","04.workspace-administration/05.filters/02.notifications",{"title":665,"path":666,"stem":667},"Workstreams","/workspace-administration/filters/workstreams","04.workspace-administration/05.filters/03.workstreams",{"title":669,"path":670,"stem":671},"Cycles","/workspace-administration/filters/cycles","04.workspace-administration/05.filters/04.cycles",{"title":673,"path":674,"stem":675},"Boards","/workspace-administration/filters/boards","04.workspace-administration/05.filters/05.boards",{"title":677,"path":678,"stem":679},"Gantt","/workspace-administration/filters/gantt","04.workspace-administration/05.filters/06.gantt",{"title":46,"path":681,"stem":682},"/workspace-administration/filters/items","04.workspace-administration/05.filters/07.items",{"title":684,"path":685,"stem":686},"Reports","/workspace-administration/filters/reports","04.workspace-administration/05.filters/08.reports",{"title":688,"path":689,"stem":690},"Automations","/workspace-administration/filters/automations","04.workspace-administration/05.filters/09.automations",{"title":692,"path":693,"stem":694,"children":695,"page":78},"Sort ","/workspace-administration/filters/sort","04.workspace-administration/05.filters/10.sort",[696,699,702,705,708],{"title":478,"path":697,"stem":698},"/workspace-administration/filters/sort/my-work","04.workspace-administration/05.filters/10.sort/01.my-work",{"title":665,"path":700,"stem":701},"/workspace-administration/filters/sort/workstreams","04.workspace-administration/05.filters/10.sort/02.workstreams",{"title":669,"path":703,"stem":704},"/workspace-administration/filters/sort/cycles","04.workspace-administration/05.filters/10.sort/03.cycles",{"title":673,"path":706,"stem":707},"/workspace-administration/filters/sort/boards","04.workspace-administration/05.filters/10.sort/04.boards",{"title":46,"path":709,"stem":710},"/workspace-administration/filters/sort/items","04.workspace-administration/05.filters/10.sort/05.items",{"title":712,"path":713,"stem":714,"children":715,"page":78},"Options","/workspace-administration/filters/options","04.workspace-administration/05.filters/11.options",[716,719,722,726,729],{"title":478,"path":717,"stem":718},"/workspace-administration/filters/options/my-work","04.workspace-administration/05.filters/11.options/01.my-work",{"title":665,"path":720,"stem":721},"/workspace-administration/filters/options/workstreams","04.workspace-administration/05.filters/11.options/02.workstreams",{"title":723,"path":724,"stem":725},"Cycle","/workspace-administration/filters/options/cycle","04.workspace-administration/05.filters/11.options/03.cycle",{"title":673,"path":727,"stem":728},"/workspace-administration/filters/options/boards","04.workspace-administration/05.filters/11.options/04.boards",{"title":46,"path":730,"stem":731},"/workspace-administration/filters/options/items","04.workspace-administration/05.filters/11.options/05.items",{"title":733,"path":734,"stem":735,"children":736,"page":78},"Planning Concepts & Use Cases","/planning-concepts-and-use-cases","05.planning-concepts-and-use-cases",[737,793],{"title":738,"order":739,"path":740,"stem":741,"children":742,"page":78},"Understanding Project Planning Tools",9,"/planning-concepts-and-use-cases/project-planning-tools","05.planning-concepts-and-use-cases/01.project-planning-tools",[743,776],{"title":744,"path":745,"stem":746,"children":747,"page":78},"Gantt Charts","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts",[748,752,756,760,764,768,772],{"title":749,"path":750,"stem":751},"Gantt Charts Basics","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/gantt-charts-basics","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/01.gantt-charts-basics",{"title":753,"path":754,"stem":755},"Create New Gantt","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/create-new-gantt","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/02.create-new-gantt",{"title":757,"path":758,"stem":759},"Add to Gantt","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/add-to-gantt","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/03.add-to-gantt",{"title":761,"path":762,"stem":763},"Gantt Charts Toolbar","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/gantt-charts-toolbar","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/04.gantt-charts-toolbar",{"title":765,"path":766,"stem":767},"Scenario Planning","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/scenario-planning","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/05.scenario-planning",{"title":769,"path":770,"stem":771},"Tips for Effective Gantt Chart Planning","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/tips-for-effective-gantt-chart-planning","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/06.tips-for-effective-gantt-chart-planning",{"title":773,"path":774,"stem":775},"Link Mode","/planning-concepts-and-use-cases/project-planning-tools/gantt-charts/link-mode","05.planning-concepts-and-use-cases/01.project-planning-tools/gantt-charts/07.link-mode",{"title":777,"path":778,"stem":779,"children":780,"page":78},"Kanban Boards","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards",[781,785,789],{"title":782,"path":783,"stem":784},"Setting Up Your Kanban Board","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards/setting-up-your-kanban-board","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards/01.setting-up-your-kanban-board",{"title":786,"path":787,"stem":788},"Using Kanban for Workflow Visualization","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards/using-kanban-for-workflow-visualization","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards/02.using-kanban-for-workflow-visualization",{"title":790,"path":791,"stem":792},"Kanban Best Practices","/planning-concepts-and-use-cases/project-planning-tools/kanban-boards/kanban-best-practices","05.planning-concepts-and-use-cases/01.project-planning-tools/kanban-boards/03.kanban-best-practices",{"title":794,"order":795,"path":796,"stem":797,"children":798,"page":78},"Use Cases",12,"/planning-concepts-and-use-cases/use-cases","05.planning-concepts-and-use-cases/02.use-cases",[799,802,806,810,814,818],{"title":744,"path":800,"stem":801},"/planning-concepts-and-use-cases/use-cases/gantt-charts","05.planning-concepts-and-use-cases/02.use-cases/01.gantt-charts",{"title":803,"path":804,"stem":805},"Plan a Sprint","/planning-concepts-and-use-cases/use-cases/plan-a-sprint","05.planning-concepts-and-use-cases/02.use-cases/02.plan-a-sprint",{"title":807,"path":808,"stem":809},"Conduct a Standup","/planning-concepts-and-use-cases/use-cases/conduct-a-standup","05.planning-concepts-and-use-cases/02.use-cases/03.conduct-a-standup",{"title":811,"path":812,"stem":813},"Manage Cadences","/planning-concepts-and-use-cases/use-cases/manage-cadences","05.planning-concepts-and-use-cases/02.use-cases/04.manage-cadences",{"title":815,"path":816,"stem":817},"Customizing Item Types","/planning-concepts-and-use-cases/use-cases/customizing-item-types","05.planning-concepts-and-use-cases/02.use-cases/05.customizing-item-types",{"title":819,"path":820,"stem":821},"Backlog Refinement","/planning-concepts-and-use-cases/use-cases/backlog-refinement","05.planning-concepts-and-use-cases/02.use-cases/06.backlog-refinement",{"title":823,"path":824,"stem":825,"children":826,"page":78},"Integrations & Extensibility","/integrations-and-extensibility","06.integrations-and-extensibility",[827,848],{"title":828,"path":829,"stem":830,"children":831,"page":78},"DevStride MCP Server","/integrations-and-extensibility/devstride-mcp-server","06.integrations-and-extensibility/01.devstride-mcp-server",[832,836,840,844],{"title":833,"path":834,"stem":835},"What Is the DevStride MCP Server?","/integrations-and-extensibility/devstride-mcp-server/what-is-the-devstride-mcp-server","06.integrations-and-extensibility/01.devstride-mcp-server/01.what-is-the-devstride-mcp-server",{"title":837,"path":838,"stem":839},"Setting Up Your Connection","/integrations-and-extensibility/devstride-mcp-server/setting-up-your-connection","06.integrations-and-extensibility/01.devstride-mcp-server/02.setting-up-your-connection",{"title":841,"path":842,"stem":843},"Doing Real Work with the DevStride MCP Server","/integrations-and-extensibility/devstride-mcp-server/doing-real-work-with-the-devstride-mcp-server","06.integrations-and-extensibility/01.devstride-mcp-server/03.doing-real-work-with-the-devstride-mcp-server",{"title":845,"path":846,"stem":847},"Best Practices & Tips","/integrations-and-extensibility/devstride-mcp-server/best-practices-and-tips","06.integrations-and-extensibility/01.devstride-mcp-server/04.best-practices-and-tips",{"title":849,"path":850,"stem":851,"children":852},"Plugins","/integrations-and-extensibility/plugins","06.integrations-and-extensibility/02.plugins/index",[853,855],{"title":854,"path":850,"stem":851},"Getting Started With Plugins",{"title":856,"path":857,"stem":858,"children":859,"page":78},"Weekly Logs","/integrations-and-extensibility/plugins/weekly-logs","06.integrations-and-extensibility/02.plugins/01.weekly-logs",[860,863,867,871,875,879,883,887,890,894,898,902],{"title":433,"path":861,"stem":862},"/integrations-and-extensibility/plugins/weekly-logs/overview","06.integrations-and-extensibility/02.plugins/01.weekly-logs/01.overview",{"title":864,"path":865,"stem":866},"Grid","/integrations-and-extensibility/plugins/weekly-logs/grid","06.integrations-and-extensibility/02.plugins/01.weekly-logs/02.grid",{"title":868,"path":869,"stem":870},"Views","/integrations-and-extensibility/plugins/weekly-logs/views","06.integrations-and-extensibility/02.plugins/01.weekly-logs/03.views",{"title":872,"path":873,"stem":874},"Navigation","/integrations-and-extensibility/plugins/weekly-logs/navigation","06.integrations-and-extensibility/02.plugins/01.weekly-logs/04.navigation",{"title":876,"path":877,"stem":878},"Proposed Items","/integrations-and-extensibility/plugins/weekly-logs/proposed-items","06.integrations-and-extensibility/02.plugins/01.weekly-logs/05.proposed-items",{"title":880,"path":881,"stem":882},"Search","/integrations-and-extensibility/plugins/weekly-logs/search","06.integrations-and-extensibility/02.plugins/01.weekly-logs/06.search",{"title":884,"path":885,"stem":886},"Time Logging","/integrations-and-extensibility/plugins/weekly-logs/logging","06.integrations-and-extensibility/02.plugins/01.weekly-logs/07.logging",{"title":653,"path":888,"stem":889},"/integrations-and-extensibility/plugins/weekly-logs/filtering","06.integrations-and-extensibility/02.plugins/01.weekly-logs/08.filtering",{"title":891,"path":892,"stem":893},"Team Logs","/integrations-and-extensibility/plugins/weekly-logs/team-logs","06.integrations-and-extensibility/02.plugins/01.weekly-logs/09.team-logs",{"title":895,"path":896,"stem":897},"Organization Switch","/integrations-and-extensibility/plugins/weekly-logs/organization-switch","06.integrations-and-extensibility/02.plugins/01.weekly-logs/10.organization-switch",{"title":899,"path":900,"stem":901},"Export","/integrations-and-extensibility/plugins/weekly-logs/export","06.integrations-and-extensibility/02.plugins/01.weekly-logs/11.export",{"title":903,"path":904,"stem":905},"Meetings","/integrations-and-extensibility/plugins/weekly-logs/meetings","06.integrations-and-extensibility/02.plugins/01.weekly-logs/12.meetings",{"title":907,"path":908,"stem":909,"children":910,"page":78},"Developer Experience","/developer-experience","07.developer-experience",[911,955],{"title":912,"path":913,"stem":914,"children":915,"page":78},"Intro","/developer-experience/intro","07.developer-experience/01.intro",[916,919,923,927,931,935,939,943,947,951],{"title":5,"path":917,"stem":918},"/developer-experience/intro/getting-started","07.developer-experience/01.intro/01.getting-started",{"title":920,"path":921,"stem":922},"Introduction to the ds CLI","/developer-experience/intro/introduction","07.developer-experience/01.intro/02.introduction",{"title":924,"path":925,"stem":926},"Command Reference","/developer-experience/intro/command-reference","07.developer-experience/01.intro/03.command-reference",{"title":928,"path":929,"stem":930},"Local Development","/developer-experience/intro/local-development","07.developer-experience/01.intro/04.local-development",{"title":932,"path":933,"stem":934},"Dockerized Worktree Development","/developer-experience/intro/dockerized-worktree-development","07.developer-experience/01.intro/05.dockerized-worktree-development",{"title":936,"path":937,"stem":938},"Golden Dataset","/developer-experience/intro/golden-dataset","07.developer-experience/01.intro/06.golden-dataset",{"title":940,"path":941,"stem":942},"Deployment","/developer-experience/intro/deployment","07.developer-experience/01.intro/07.deployment",{"title":944,"path":945,"stem":946},"API Development","/developer-experience/intro/api-development","07.developer-experience/01.intro/08.api-development",{"title":948,"path":949,"stem":950},"Stripe Integration","/developer-experience/intro/stripe-integration","07.developer-experience/01.intro/09.stripe-integration",{"title":952,"path":953,"stem":954},"Maintenance & Codebase Checks","/developer-experience/intro/maintenance-and-codebase-checks","07.developer-experience/01.intro/10.maintenance-and-codebase-checks",{"title":956,"path":957,"stem":958,"children":959,"page":78},"Agentic Skills","/developer-experience/agentic-skills","07.developer-experience/02.agentic-skills",[960,964,968,972],{"title":961,"path":962,"stem":963},"Claude Code Skills: AI-Assisted Development","/developer-experience/agentic-skills/claude-code-skills-overview","07.developer-experience/02.agentic-skills/01.claude-code-skills-overview",{"title":965,"path":966,"stem":967},"Skill Audit","/developer-experience/agentic-skills/skill-audit","07.developer-experience/02.agentic-skills/02.skill-audit",{"title":969,"path":970,"stem":971},"The Planning Loop","/developer-experience/agentic-skills/claude-skills-planning-loop","07.developer-experience/02.agentic-skills/03.claude-skills-planning-loop",{"title":973,"path":974,"stem":975},"The Delivery Loop","/developer-experience/agentic-skills/claude-skills-delivery-loop","07.developer-experience/02.agentic-skills/04.claude-skills-delivery-loop",{"title":977,"order":978,"path":979,"stem":980,"children":981,"page":78},"Release Notes",11,"/release-notes","08.release-notes",[982,986,990,994,998,1002,1006,1010,1014,1018,1022,1026,1030,1034,1038,1042,1046,1050,1054,1058,1062,1066,1070,1074,1078,1082,1086,1090,1094,1098,1102,1106,1110,1114,1118,1122,1126,1130,1134,1138,1142,1146,1150,1154,1158,1162,1166,1170,1174,1178,1182,1186,1190,1194,1198,1202,1206],{"title":983,"path":984,"stem":985},"2026-07-09","/release-notes/2026-07-09","08.release-notes/57.2026-07-09",{"title":987,"path":988,"stem":989},"2026-07-07","/release-notes/2026-07-07","08.release-notes/56.2026-07-07",{"title":991,"path":992,"stem":993},"2026-07-06","/release-notes/2026-07-06","08.release-notes/55.2026-07-06",{"title":995,"path":996,"stem":997},"2026-07-02","/release-notes/2026-07-02","08.release-notes/54.2026-07-02",{"title":999,"path":1000,"stem":1001},"2026-06-30","/release-notes/2026-06-30","08.release-notes/53.2026-06-30",{"title":1003,"path":1004,"stem":1005},"2026-06-17","/release-notes/2026-06-17","08.release-notes/52.2026-06-17",{"title":1007,"path":1008,"stem":1009},"2026-06-12","/release-notes/2026-06-12","08.release-notes/51.2026-06-12",{"title":1011,"path":1012,"stem":1013},"2026-05-29","/release-notes/2026-05-29","08.release-notes/50.2026-05-29",{"title":1015,"path":1016,"stem":1017},"2026-05-13","/release-notes/2026-05-13","08.release-notes/49.2026-05-13",{"title":1019,"path":1020,"stem":1021},"2026-04-29","/release-notes/2026-04-29","08.release-notes/48.2026-04-29",{"title":1023,"path":1024,"stem":1025},"2026-04-14","/release-notes/2026-04-14","08.release-notes/47.2026-04-14",{"title":1027,"path":1028,"stem":1029},"2026-04-09","/release-notes/2026-04-09","08.release-notes/46.2026-04-09",{"title":1031,"path":1032,"stem":1033},"2026-03-13","/release-notes/2026-03-13","08.release-notes/45.2026-03-13",{"title":1035,"path":1036,"stem":1037},"2026-02-16","/release-notes/2026-02-16","08.release-notes/44.2026-02-16",{"title":1039,"path":1040,"stem":1041},"2026-02-06","/release-notes/2026-02-06","08.release-notes/43.2026-02-06",{"title":1043,"path":1044,"stem":1045},"2026-01-30","/release-notes/2026-01-30","08.release-notes/42.2026-01-30",{"title":1047,"path":1048,"stem":1049},"2026-01-19","/release-notes/2026-01-19","08.release-notes/41.2026-01-19",{"title":1051,"path":1052,"stem":1053},"2025-09-27","/release-notes/2025-09-27","08.release-notes/40.2025-09-27",{"title":1055,"path":1056,"stem":1057},"2025-07-07","/release-notes/2025-07-07","08.release-notes/39.2025-07-07",{"title":1059,"path":1060,"stem":1061},"2025-06-16","/release-notes/2025-06-16","08.release-notes/38.2025-06-16",{"title":1063,"path":1064,"stem":1065},"2025-05-29","/release-notes/2025-05-29","08.release-notes/37.2025-05-29",{"title":1067,"path":1068,"stem":1069},"2025-04-28","/release-notes/2025-04-28","08.release-notes/36.2025-04-28",{"title":1071,"path":1072,"stem":1073},"2025-03-24","/release-notes/2025-03-24","08.release-notes/35.2025-03-24",{"title":1075,"path":1076,"stem":1077},"2024-12-20","/release-notes/2024-12-20","08.release-notes/34.2024-12-20",{"title":1079,"path":1080,"stem":1081},"2024-10-21","/release-notes/2024-10-21","08.release-notes/33.2024-10-21",{"title":1083,"path":1084,"stem":1085},"2024-10-11","/release-notes/2024-10-11","08.release-notes/32.2024-10-11",{"title":1087,"path":1088,"stem":1089},"2024-09-11","/release-notes/2024-09-11","08.release-notes/31.2024-09-11",{"title":1091,"path":1092,"stem":1093},"2024-08-28","/release-notes/2024-08-28","08.release-notes/30.2024-08-28",{"title":1095,"path":1096,"stem":1097},"2024-07-10","/release-notes/2024-07-10","08.release-notes/29.2024-07-10",{"title":1099,"path":1100,"stem":1101},"2024-06-24","/release-notes/2024-06-24","08.release-notes/28.2024-06-24",{"title":1103,"path":1104,"stem":1105},"2024-05-15","/release-notes/2024-05-15","08.release-notes/27.2024-05-15",{"title":1107,"path":1108,"stem":1109},"2024-04-29","/release-notes/2024-04-29","08.release-notes/26.2024-04-29",{"title":1111,"path":1112,"stem":1113},"2024-03-18","/release-notes/2024-03-18","08.release-notes/25.2024-03-18",{"title":1115,"path":1116,"stem":1117},"2024-03-04","/release-notes/2024-03-04","08.release-notes/24.2024-03-04",{"title":1119,"path":1120,"stem":1121},"2024-02-26","/release-notes/2024-02-26","08.release-notes/23.2024-02-26",{"title":1123,"path":1124,"stem":1125},"2024-01-17","/release-notes/2024-01-17","08.release-notes/22.2024-01-17",{"title":1127,"path":1128,"stem":1129},"2023-12-27","/release-notes/2023-12-27","08.release-notes/21.2023-12-27",{"title":1131,"path":1132,"stem":1133},"2023-11-08","/release-notes/2023-11-08","08.release-notes/20.2023-11-08",{"title":1135,"path":1136,"stem":1137},"2023-10-10","/release-notes/2023-10-10","08.release-notes/19.2023-10-10",{"title":1139,"path":1140,"stem":1141},"2023-09-27","/release-notes/2023-09-27","08.release-notes/18.2023-09-27",{"title":1143,"path":1144,"stem":1145},"2023-09-18","/release-notes/2023-09-18","08.release-notes/17.2023-09-18",{"title":1147,"path":1148,"stem":1149},"2023-09-04","/release-notes/2023-09-04","08.release-notes/16.2023-09-04",{"title":1151,"path":1152,"stem":1153},"2023-08-04","/release-notes/2023-08-04","08.release-notes/15.2023-08-04",{"title":1155,"path":1156,"stem":1157},"2023-07-11","/release-notes/2023-07-11","08.release-notes/14.2023-07-11",{"title":1159,"path":1160,"stem":1161},"2023-06-21","/release-notes/2023-06-21","08.release-notes/13.2023-06-21",{"title":1163,"path":1164,"stem":1165},"2023-05-24","/release-notes/2023-05-24","08.release-notes/12.2023-05-24",{"title":1167,"path":1168,"stem":1169},"2023-04-24","/release-notes/2023-04-24","08.release-notes/11.2023-04-24",{"title":1171,"path":1172,"stem":1173},"2023-04-20","/release-notes/2023-04-20","08.release-notes/10.2023-04-20",{"title":1175,"path":1176,"stem":1177},"2023-03-20","/release-notes/2023-03-20","08.release-notes/09.2023-03-20",{"title":1179,"path":1180,"stem":1181},"2023-02-28","/release-notes/2023-02-28","08.release-notes/08.2023-02-28",{"title":1183,"path":1184,"stem":1185},"2023-01-17","/release-notes/2023-01-17","08.release-notes/07.2023-01-17",{"title":1187,"path":1188,"stem":1189},"2023-01-23","/release-notes/2023-01-23","08.release-notes/06.2023-01-23",{"title":1191,"path":1192,"stem":1193},"2022-12-21","/release-notes/2022-12-21","08.release-notes/05.2022-12-21",{"title":1195,"path":1196,"stem":1197},"2022-12-06","/release-notes/2022-12-06","08.release-notes/04.2022-12-06",{"title":1199,"path":1200,"stem":1201},"2022-11-15","/release-notes/2022-11-15","08.release-notes/03.2022-11-15",{"title":1203,"path":1204,"stem":1205},"2022-11-02","/release-notes/2022-11-02","08.release-notes/02.2022-11-02",{"title":1207,"path":1208,"stem":1209},"2022-10-17","/release-notes/2022-10-17","08.release-notes/01.2022-10-17",{"title":1211,"path":1212,"target":1213},"API","https://api-docs.devstride.com/","_blank",{"id":1215,"title":932,"body":1216,"description":2532,"extension":2533,"links":2534,"meta":2535,"navigation":1532,"path":933,"seo":2536,"stem":934,"__hash__":2537},"docs/07.developer-experience/01.intro/05.dockerized-worktree-development.md",{"type":1217,"value":1218,"toc":2508},"minimark",[1219,1223,1249,1256,1267,1272,1313,1317,1327,1387,1403,1407,1412,1415,1481,1492,1496,1623,1626,1629,1803,1810,1843,1849,1869,1873,1883,1924,1950,1954,1961,2056,2070,2074,2108,2125,2129,2213,2217,2228,2296,2318,2342,2346,2374,2378,2417,2421,2472,2476,2504],[1220,1221,932],"h1",{"id":1222},"dockerized-worktree-development",[1224,1225,1226,1227,1230,1231,1235,1236,1239,1240,1244,1245,1248],"p",{},"The ",[1228,1229,928],"a",{"href":929}," page covers the AWS-bound loop (",[1232,1233,1234],"code",{},"ds run backend"," + ",[1232,1237,1238],{},"ds run ui"," against your personal SST stage). This page covers the ",[1241,1242,1243],"strong",{},"fully-local, no-AWS alternative",": a docker-compose stack that runs ",[1241,1246,1247],{},"many independent DevStride instances at once — one per git worktree"," — on a single machine.",[1224,1250,1251,1252,1255],{},"Each instance has its own branch, its own ports, and its own ",[1241,1253,1254],{},"isolated dataset",". They all share one set of heavy infra containers, so ~10 instances stay cheap.",[1257,1258,1261,1262,1266],"alert",{"title":1259,"type":1260},"When to use this","tip","Reach for worktree instances when you (or an agent) want to work on a feature in isolation and ",[1263,1264,1265],"em",{},"see it running"," — with its own data — without disturbing any other instance, and without touching AWS. It's ideal for running several branches side by side, or for pointing each worktree at a different version of the dataset (e.g. one on golden Acme, one on a copied customer org, one empty).",[1268,1269,1271],"h2",{"id":1270},"prerequisites","Prerequisites",[1273,1274,1275,1294],"ul",{},[1276,1277,1278,1281,1282,1293],"li",{},[1241,1279,1280],{},"Docker Desktop must be running."," The whole stack is docker-compose — there is ",[1241,1283,1284,1285,1288,1289,1292],{},"no AWS SSO, no ",[1232,1286,1287],{},".env"," stage binding, and no ",[1232,1290,1291],{},"sso"," login"," required for this flow.",[1276,1295,1296,1297,1300,1301,1304,1305,1308,1309,1312],{},"Your checkout must be on a branch that contains the stack code (the ",[1232,1298,1299],{},"docker/"," scripts and the ",[1232,1302,1303],{},"ds worktree"," CLI). ",[1232,1306,1307],{},"master"," and ",[1232,1310,1311],{},"develop"," both have it. New worktrees inherit these files from their base branch.",[1268,1314,1316],{"id":1315},"mental-model","Mental Model",[1318,1319,1324],"pre",{"className":1320,"code":1322,"language":1323},[1321],"language-text","                 ┌─────────────────────────────────────────────┐\n   shared core   │ postgres   dynamodb   minio   cognito-local  │   (started once)\n  (devstride-core)└─────────────────────────────────────────────┘\n                         ▲            ▲              ▲\n        ┌────────────────┼────────────┼──────────────┼────────────────┐\n        │ instance \"main\"│            │ instance \"featx\"              │ ...\n        │ backend :4000  │            │ backend :4001                 │\n        │ frontend :8080 │            │ frontend :8081                │\n        │ soketi :6001   │            │ soketi :6002                  │\n        │ db devstride_main           │ db devstride_featx            │\n        │ tables main-devstride-*     │ tables featx-devstride-*      │\n        │ buckets main-devstride-*    │ buckets featx-devstride-*     │\n        └────────────────────────────┴───────────────────────────────┘\n","text",[1232,1325,1322],{"__ignoreMap":1326},"",[1273,1328,1329,1349,1374],{},[1276,1330,1331,1334,1335,1338,1339,1338,1342,1338,1345,1348],{},[1241,1332,1333],{},"Shared core"," = ",[1232,1336,1337],{},"postgres",", ",[1232,1340,1341],{},"dynamodb",[1232,1343,1344],{},"minio",[1232,1346,1347],{},"cognito-local",". Heavy and stateful, started once, reused by every instance.",[1276,1350,1351,1354,1355,1235,1358,1361,1362,1365,1366,1369,1370,1373],{},[1241,1352,1353],{},"Per instance"," = a ",[1232,1356,1357],{},"backend",[1232,1359,1360],{},"frontend"," + tiny ",[1232,1363,1364],{},"soketi",", bind-mounting ",[1263,1367,1368],{},"that worktree's"," source. Isolation inside the shared infra is ",[1241,1371,1372],{},"logical",": each instance gets its own Postgres database, its own DynamoDB tables, its own MinIO buckets, its own Cognito user pool, and its own soketi app.",[1276,1375,1376,1377,1382,1383,1386],{},"The primary checkout is itself an instance named ",[1241,1378,1379],{},[1232,1380,1381],{},"main"," (index 0, ports 4000/8080), brought up by ",[1232,1384,1385],{},"ds run local",". Extra worktrees are indexes 1, 2, 3…",[1257,1388,1391,1392,1235,1395,1398,1399,1402],{"title":1389,"type":1390},"How the no-AWS emulation works","note","Under the hood, every AWS service is swapped for a local emulator (cognito-local, MinIO for S3, dynamodb-local, soketi for Pusher), and email/jobs/events run in-process. This is all gated behind ",[1232,1393,1394],{},"IS_LOCAL",[1232,1396,1397],{},"DEVSTRIDE_LOCAL_STACK"," so production, ",[1232,1400,1401],{},"sst dev",", and tests are completely untouched. You don't need to know the internals to use the stack, but it's why this flow needs no AWS credentials.",[1268,1404,1406],{"id":1405},"quick-start","Quick Start",[1408,1409,1411],"h3",{"id":1410},"just-the-primary-instance","Just the primary instance",[1224,1413,1414],{},"If you only want the main checkout running locally:",[1318,1416,1420],{"className":1417,"code":1418,"language":1419,"meta":1326,"style":1326},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","ds run local                          # shared core + the \"main\" instance (first run: a few minutes)\nds worktree cli main migrations run   # apply schema (first time / after new migrations)\nds worktree cli main golden build     # seed the Acme golden dataset + Cognito + aggregation recalc\n","bash",[1232,1421,1422,1441,1462],{"__ignoreMap":1326},[1423,1424,1426,1430,1434,1437],"span",{"class":1425,"line":11},"line",[1423,1427,1429],{"class":1428},"sBMFI","ds",[1423,1431,1433],{"class":1432},"sfazB"," run",[1423,1435,1436],{"class":1432}," local",[1423,1438,1440],{"class":1439},"sHwdD","                          # shared core + the \"main\" instance (first run: a few minutes)\n",[1423,1442,1443,1445,1448,1451,1454,1457,1459],{"class":1425,"line":238},[1423,1444,1429],{"class":1428},[1423,1446,1447],{"class":1432}," worktree",[1423,1449,1450],{"class":1432}," cli",[1423,1452,1453],{"class":1432}," main",[1423,1455,1456],{"class":1432}," migrations",[1423,1458,1433],{"class":1432},[1423,1460,1461],{"class":1439},"   # apply schema (first time / after new migrations)\n",[1423,1463,1464,1466,1468,1470,1472,1475,1478],{"class":1425,"line":296},[1423,1465,1429],{"class":1428},[1423,1467,1447],{"class":1432},[1423,1469,1450],{"class":1432},[1423,1471,1453],{"class":1432},[1423,1473,1474],{"class":1432}," golden",[1423,1476,1477],{"class":1432}," build",[1423,1479,1480],{"class":1439},"     # seed the Acme golden dataset + Cognito + aggregation recalc\n",[1224,1482,1483,1484,1491],{},"Open ",[1241,1485,1486],{},[1228,1487,1488],{"href":1488,"rel":1489},"http://localhost:8080",[1490],"nofollow",".",[1408,1493,1495],{"id":1494},"a-sandboxed-instance-on-its-own-branch","A sandboxed instance on its own branch",[1318,1497,1499],{"className":1417,"code":1498,"language":1419,"meta":1326,"style":1326},"# 1) Create a new instance on its own new branch + worktree, and start it.\nds worktree create featx\n#    → git worktree add, allocate ports, ensure the core is up, provision this\n#      instance's data, start it detached, and print its URLs.\n\n# 2) Apply schema + seed data (each instance starts with an EMPTY database).\nds worktree cli featx migrations run\nds worktree cli featx golden build          # optional: seed golden Acme\n\n# 3) Open it — frontend on http://localhost:8081 (backend :4001).\n\n# 4) See everything running.\nds worktree ls\n\n# 5) Tear it down (stops it, drops its data + worktree; KEEPS the branch).\nds worktree rm featx\n",[1232,1500,1501,1506,1518,1523,1528,1534,1539,1555,1572,1576,1581,1585,1590,1600,1605,1611],{"__ignoreMap":1326},[1423,1502,1503],{"class":1425,"line":11},[1423,1504,1505],{"class":1439},"# 1) Create a new instance on its own new branch + worktree, and start it.\n",[1423,1507,1508,1510,1512,1515],{"class":1425,"line":238},[1423,1509,1429],{"class":1428},[1423,1511,1447],{"class":1432},[1423,1513,1514],{"class":1432}," create",[1423,1516,1517],{"class":1432}," featx\n",[1423,1519,1520],{"class":1425,"line":296},[1423,1521,1522],{"class":1439},"#    → git worktree add, allocate ports, ensure the core is up, provision this\n",[1423,1524,1525],{"class":1425,"line":371},[1423,1526,1527],{"class":1439},"#      instance's data, start it detached, and print its URLs.\n",[1423,1529,1530],{"class":1425,"line":538},[1423,1531,1533],{"emptyLinePlaceholder":1532},true,"\n",[1423,1535,1536],{"class":1425,"line":548},[1423,1537,1538],{"class":1439},"# 2) Apply schema + seed data (each instance starts with an EMPTY database).\n",[1423,1540,1541,1543,1545,1547,1550,1552],{"class":1425,"line":485},[1423,1542,1429],{"class":1428},[1423,1544,1447],{"class":1432},[1423,1546,1450],{"class":1432},[1423,1548,1549],{"class":1432}," featx",[1423,1551,1456],{"class":1432},[1423,1553,1554],{"class":1432}," run\n",[1423,1556,1557,1559,1561,1563,1565,1567,1569],{"class":1425,"line":274},[1423,1558,1429],{"class":1428},[1423,1560,1447],{"class":1432},[1423,1562,1450],{"class":1432},[1423,1564,1549],{"class":1432},[1423,1566,1474],{"class":1432},[1423,1568,1477],{"class":1432},[1423,1570,1571],{"class":1439},"          # optional: seed golden Acme\n",[1423,1573,1574],{"class":1425,"line":739},[1423,1575,1533],{"emptyLinePlaceholder":1532},[1423,1577,1578],{"class":1425,"line":654},[1423,1579,1580],{"class":1439},"# 3) Open it — frontend on http://localhost:8081 (backend :4001).\n",[1423,1582,1583],{"class":1425,"line":978},[1423,1584,1533],{"emptyLinePlaceholder":1532},[1423,1586,1587],{"class":1425,"line":795},[1423,1588,1589],{"class":1439},"# 4) See everything running.\n",[1423,1591,1593,1595,1597],{"class":1425,"line":1592},13,[1423,1594,1429],{"class":1428},[1423,1596,1447],{"class":1432},[1423,1598,1599],{"class":1432}," ls\n",[1423,1601,1603],{"class":1425,"line":1602},14,[1423,1604,1533],{"emptyLinePlaceholder":1532},[1423,1606,1608],{"class":1425,"line":1607},15,[1423,1609,1610],{"class":1439},"# 5) Tear it down (stops it, drops its data + worktree; KEEPS the branch).\n",[1423,1612,1614,1616,1618,1621],{"class":1425,"line":1613},16,[1423,1615,1429],{"class":1428},[1423,1617,1447],{"class":1432},[1423,1619,1620],{"class":1432}," rm",[1423,1622,1517],{"class":1432},[1224,1624,1625],{},"That's the whole loop.",[1268,1627,924],{"id":1628},"command-reference",[1630,1631,1632,1645],"table",{},[1633,1634,1635],"thead",{},[1636,1637,1638,1642],"tr",{},[1639,1640,1641],"th",{},"Command",[1639,1643,1644],{},"What it does",[1646,1647,1648,1661,1678,1688,1712,1735,1748,1761,1779,1789],"tbody",{},[1636,1649,1650,1655],{},[1651,1652,1653],"td",{},[1232,1654,1385],{},[1651,1656,1657,1658,1660],{},"Bring up the shared core + the primary ",[1232,1659,1381],{}," instance in the foreground.",[1636,1662,1663,1668],{},[1651,1664,1665],{},[1232,1666,1667],{},"ds worktree create \u003Cname>",[1651,1669,1670,1673,1674,1677],{},[1232,1671,1672],{},"git worktree add"," a new branch, allocate ports, ensure the shared core is up, provision this instance's data, start it ",[1241,1675,1676],{},"detached",", print URLs.",[1636,1679,1680,1685],{},[1651,1681,1682],{},[1232,1683,1684],{},"ds worktree ls",[1651,1686,1687],{},"List instances: name, slug, index, status, frontend/backend URLs, branch.",[1636,1689,1690,1695],{},[1651,1691,1692],{},[1232,1693,1694],{},"ds worktree cli \u003Cname> \u003Ccmd...>",[1651,1696,1697,1698,1701,1702,1338,1705,1338,1708,1711],{},"Run any ",[1232,1699,1700],{},"cli/commands/\u003Ccmd>"," inside that instance's backend (e.g. ",[1232,1703,1704],{},"migrations run",[1232,1706,1707],{},"golden build",[1232,1709,1710],{},"data copy",").",[1636,1713,1714,1719],{},[1651,1715,1716],{},[1232,1717,1718],{},"ds worktree logs \u003Cname> [service]",[1651,1720,1721,1722,1725,1726,1338,1728,1338,1730,1338,1732,1711],{},"Follow logs (",[1232,1723,1724],{},"service"," ∈ ",[1232,1727,1357],{},[1232,1729,1360],{},[1232,1731,1364],{},[1232,1733,1734],{},"bootstrap",[1636,1736,1737,1742],{},[1651,1738,1739],{},[1232,1740,1741],{},"ds worktree up \u003Cname>",[1651,1743,1744,1745,1711],{},"Start a previously-created instance (after ",[1232,1746,1747],{},"down",[1636,1749,1750,1755],{},[1651,1751,1752],{},[1232,1753,1754],{},"ds worktree down \u003Cname>",[1651,1756,1757,1758,1491],{},"Stop an instance, ",[1241,1759,1760],{},"keeping its data",[1636,1762,1763,1768],{},[1651,1764,1765],{},[1232,1766,1767],{},"ds worktree rm \u003Cname>",[1651,1769,1770,1771,1774,1775,1778],{},"Stop + ",[1241,1772,1773],{},"drop all of this instance's data"," (db, tables, buckets, cognito pool) + remove the worktree. ",[1241,1776,1777],{},"Keeps the git branch","; prompts if the worktree has uncommitted changes.",[1636,1780,1781,1786],{},[1651,1782,1783],{},[1232,1784,1785],{},"ds worktree core up",[1651,1787,1788],{},"Start just the shared core.",[1636,1790,1791,1796],{},[1651,1792,1793],{},[1232,1794,1795],{},"ds worktree core down [--wipe]",[1651,1797,1798,1799,1802],{},"Stop the shared core (",[1232,1800,1801],{},"--wipe"," also deletes all shared data volumes).",[1408,1804,1806,1809],{"id":1805},"create-flags",[1232,1807,1808],{},"create"," flags",[1273,1811,1812,1818,1827,1837],{},[1276,1813,1814,1817],{},[1232,1815,1816],{},"-b, --branch \u003Cbranch>"," — branch to create/check out (default: the slug).",[1276,1819,1820,1823,1824,1711],{},[1232,1821,1822],{},"--from \u003Cref>"," — base ref for the new branch (default: current ",[1232,1825,1826],{},"HEAD",[1276,1828,1829,1832,1833,1836],{},[1232,1830,1831],{},"--rebuild"," — rebuild the shared ",[1232,1834,1835],{},"devstride-local"," image first (after dependency changes).",[1276,1838,1839,1842],{},[1232,1840,1841],{},"--attach"," — run in the foreground instead of detached.",[1408,1844,1846,1809],{"id":1845},"rm-flags",[1232,1847,1848],{},"rm",[1273,1850,1851,1857,1863],{},[1276,1852,1853,1856],{},[1232,1854,1855],{},"--keep-data"," — skip dropping the shared-core resources (just stop + remove the worktree).",[1276,1858,1859,1862],{},[1232,1860,1861],{},"--delete-branch"," — also delete the git branch (kept by default).",[1276,1864,1865,1868],{},[1232,1866,1867],{},"-f, --force"," — skip the confirmation when the worktree has uncommitted changes.",[1268,1870,1872],{"id":1871},"ports","Ports",[1224,1874,1875,1876,1879,1880,1882],{},"Derived from a per-instance index ",[1232,1877,1878],{},"i"," (index 0 = ",[1232,1881,1381],{},"):",[1630,1884,1885,1895],{},[1633,1886,1887],{},[1636,1888,1889,1892],{},[1639,1890,1891],{},"Service",[1639,1893,1894],{},"Port",[1646,1896,1897,1906,1915],{},[1636,1898,1899,1901],{},[1651,1900,1357],{},[1651,1902,1903],{},[1232,1904,1905],{},"4000 + i",[1636,1907,1908,1910],{},[1651,1909,1360],{},[1651,1911,1912],{},[1232,1913,1914],{},"8080 + i",[1636,1916,1917,1919],{},[1651,1918,1364],{},[1651,1920,1921],{},[1232,1922,1923],{},"6001 + i",[1224,1925,1926,1927,1930,1931,1934,1935,1938,1939,1942,1943,1946,1947,1949],{},"Shared core ports are fixed: postgres ",[1232,1928,1929],{},"5432",", dynamodb ",[1232,1932,1933],{},"8000",", minio ",[1232,1936,1937],{},"9000","/",[1232,1940,1941],{},"9001",", cognito-local ",[1232,1944,1945],{},"9229",". ",[1232,1948,1684],{}," always prints the resolved URLs.",[1268,1951,1953],{"id":1952},"per-worktree-data-pointing-each-instance-at-a-different-dataset","Per-Worktree Data: Pointing Each Instance at a Different Dataset",[1224,1955,1956,1957,1960],{},"This is the whole point of the setup: ",[1241,1958,1959],{},"every instance owns a completely separate copy of the data",", so you can run several branches at once, each backed by a different dataset. The isolation is enforced at the resource level, not by convention:",[1630,1962,1963,1973],{},[1633,1964,1965],{},[1636,1966,1967,1970],{},[1639,1968,1969],{},"Layer",[1639,1971,1972],{},"Per-instance resource",[1646,1974,1975,1997,2014,2028,2042],{},[1636,1976,1977,1982],{},[1651,1978,1979],{},[1241,1980,1981],{},"Postgres",[1651,1983,1984,1985,1988,1989,1992,1993,1996],{},"Its own database ",[1232,1986,1987],{},"devstride_\u003Cslug>"," (the CLI patches ",[1232,1990,1991],{},"DB_CONNECTION_STRING"," inside the instance's ",[1232,1994,1995],{},"DEVSTRIDE_CONFIG"," secret).",[1636,1998,1999,2004],{},[1651,2000,2001],{},[1241,2002,2003],{},"DynamoDB",[1651,2005,2006,2007,2010,2011,1491],{},"Its own tables ",[1232,2008,2009],{},"\u003Cslug>-devstride-{state,timetracking,ai,migrations}"," inside the shared ",[1232,2012,2013],{},"-sharedDb",[1636,2015,2016,2021],{},[1651,2017,2018],{},[1241,2019,2020],{},"MinIO (S3)",[1651,2022,2023,2024,2027],{},"Its own buckets ",[1232,2025,2026],{},"\u003Cslug>-devstride-*"," (media bucket is public-read).",[1636,2029,2030,2035],{},[1651,2031,2032],{},[1241,2033,2034],{},"Cognito",[1651,2036,2037,2038,2041],{},"Its own user pool ",[1232,2039,2040],{},"devstride-\u003Cslug>"," in the shared cognito-local.",[1636,2043,2044,2049],{},[1651,2045,2046],{},[1241,2047,2048],{},"Realtime",[1651,2050,2051,2052,2055],{},"Its own soketi container + app, so channels never cross between instances — even two instances holding the ",[1263,2053,2054],{},"same"," org id.",[1224,2057,2058,2059,2065,2066,2069],{},"Because each instance is a self-contained database, ",[1241,2060,2061,2062,2064],{},"the same data tooling from ",[1228,2063,928],{"href":929}," works per-instance"," — you just scope it with ",[1232,2067,2068],{},"ds worktree cli \u003Cname>",":",[1408,2071,2073],{"id":2072},"seed-a-specific-instance-with-golden-acme","Seed a specific instance with golden Acme",[1318,2075,2077],{"className":1417,"code":2076,"language":1419,"meta":1326,"style":1326},"ds worktree cli featx migrations run\nds worktree cli featx golden build\n",[1232,2078,2079,2093],{"__ignoreMap":1326},[1423,2080,2081,2083,2085,2087,2089,2091],{"class":1425,"line":11},[1423,2082,1429],{"class":1428},[1423,2084,1447],{"class":1432},[1423,2086,1450],{"class":1432},[1423,2088,1549],{"class":1432},[1423,2090,1456],{"class":1432},[1423,2092,1554],{"class":1432},[1423,2094,2095,2097,2099,2101,2103,2105],{"class":1425,"line":238},[1423,2096,1429],{"class":1428},[1423,2098,1447],{"class":1432},[1423,2100,1450],{"class":1432},[1423,2102,1549],{"class":1432},[1423,2104,1474],{"class":1432},[1423,2106,2107],{"class":1432}," build\n",[1224,2109,2110,2112,2113,2116,2117,2120,2121,2124],{},[1232,2111,1707],{}," seeds the Acme org (",[1232,2114,2115],{},"ac3e0000-0000-4000-8000-000000000001","), creates the Cognito logins in ",[1263,2118,2119],{},"that instance's"," pool, and runs the final aggregation recalc — all scoped to ",[1232,2122,2123],{},"featx"," only.",[1408,2126,2128],{"id":2127},"copy-an-org-from-a-source-db-into-a-specific-instance","Copy an org from a source DB into a specific instance",[1318,2130,2132],{"className":1417,"code":2131,"language":1419,"meta":1326,"style":1326},"# Copy one org's data from a source database into THIS instance.\n# Users land in this instance's cognito pool.\nds worktree cli featx data copy -o \u003CorganizationId>\n#   At a TTY you're prompted to pick a *_CONNECTION_STRING from .env, or pass it:\nds worktree cli featx data copy -o \u003CorganizationId> --source GOLDEN_DB_CONNECTION_STRING\n",[1232,2133,2134,2139,2144,2177,2182],{"__ignoreMap":1326},[1423,2135,2136],{"class":1425,"line":11},[1423,2137,2138],{"class":1439},"# Copy one org's data from a source database into THIS instance.\n",[1423,2140,2141],{"class":1425,"line":238},[1423,2142,2143],{"class":1439},"# Users land in this instance's cognito pool.\n",[1423,2145,2146,2148,2150,2152,2154,2157,2160,2163,2167,2170,2174],{"class":1425,"line":296},[1423,2147,1429],{"class":1428},[1423,2149,1447],{"class":1432},[1423,2151,1450],{"class":1432},[1423,2153,1549],{"class":1432},[1423,2155,2156],{"class":1432}," data",[1423,2158,2159],{"class":1432}," copy",[1423,2161,2162],{"class":1432}," -o",[1423,2164,2166],{"class":2165},"sMK4o"," \u003C",[1423,2168,2169],{"class":1432},"organizationI",[1423,2171,2173],{"class":2172},"sTEyZ","d",[1423,2175,2176],{"class":2165},">\n",[1423,2178,2179],{"class":1425,"line":371},[1423,2180,2181],{"class":1439},"#   At a TTY you're prompted to pick a *_CONNECTION_STRING from .env, or pass it:\n",[1423,2183,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2207,2210],{"class":1425,"line":538},[1423,2185,1429],{"class":1428},[1423,2187,1447],{"class":1432},[1423,2189,1450],{"class":1432},[1423,2191,1549],{"class":1432},[1423,2193,2156],{"class":1432},[1423,2195,2159],{"class":1432},[1423,2197,2162],{"class":1432},[1423,2199,2166],{"class":2165},[1423,2201,2169],{"class":1432},[1423,2203,2173],{"class":2172},[1423,2205,2206],{"class":2165},">",[1423,2208,2209],{"class":1432}," --source",[1423,2211,2212],{"class":1432}," GOLDEN_DB_CONNECTION_STRING\n",[1408,2214,2216],{"id":2215},"import-export-an-instances-database","Import / export an instance's database",[1224,2218,2219,2220,2223,2224,2227],{},"The worktree mounts its own ",[1232,2221,2222],{},"./data"," directory at ",[1232,2225,2226],{},"/data"," inside the container, so dumps round-trip through there:",[1318,2229,2231],{"className":1417,"code":2230,"language":1419,"meta":1326,"style":1326},"# Import a dump placed under the worktree's ./data.\nds worktree cli featx data import /data/\u003Cdump>.json\n\n# Export this instance's database.\nds worktree cli featx data export /data/featx-export\n",[1232,2232,2233,2238,2269,2273,2278],{"__ignoreMap":1326},[1423,2234,2235],{"class":1425,"line":11},[1423,2236,2237],{"class":1439},"# Import a dump placed under the worktree's ./data.\n",[1423,2239,2240,2242,2244,2246,2248,2250,2253,2256,2259,2262,2264,2266],{"class":1425,"line":238},[1423,2241,1429],{"class":1428},[1423,2243,1447],{"class":1432},[1423,2245,1450],{"class":1432},[1423,2247,1549],{"class":1432},[1423,2249,2156],{"class":1432},[1423,2251,2252],{"class":1432}," import",[1423,2254,2255],{"class":1432}," /data/",[1423,2257,2258],{"class":2165},"\u003C",[1423,2260,2261],{"class":1432},"dum",[1423,2263,1224],{"class":2172},[1423,2265,2206],{"class":2165},[1423,2267,2268],{"class":1432},".json\n",[1423,2270,2271],{"class":1425,"line":296},[1423,2272,1533],{"emptyLinePlaceholder":1532},[1423,2274,2275],{"class":1425,"line":371},[1423,2276,2277],{"class":1439},"# Export this instance's database.\n",[1423,2279,2280,2282,2284,2286,2288,2290,2293],{"class":1425,"line":538},[1423,2281,1429],{"class":1428},[1423,2283,1447],{"class":1432},[1423,2285,1450],{"class":1432},[1423,2287,1549],{"class":1432},[1423,2289,2156],{"class":1432},[1423,2291,2292],{"class":1432}," export",[1423,2294,2295],{"class":1432}," /data/featx-export\n",[1257,2297,2299,2300,2303,2304,2307,2308,1338,2311,1338,2314,2317],{"title":2298,"type":1260},"Different data per branch — the pattern","Give each worktree the dataset it needs: build golden on one (",[1232,2301,2302],{},"ds worktree cli demo golden build","), copy a specific customer org into another (",[1232,2305,2306],{},"ds worktree cli repro data copy -o \u003Cid>","), and leave a third empty for a from-scratch flow. They run simultaneously on ",[1232,2309,2310],{},"localhost:8080",[1232,2312,2313],{},":8081",[1232,2315,2316],{},":8082"," and never see each other's data.",[1257,2319,2322,2323,2326,2327,2330,2331,2333,2334,2337,2338,2341],{"title":2320,"type":2321},"Golden orgs: build, don't hand-edit","warning","If golden data looks wrong on an instance, ",[1241,2324,2325],{},"rebuild it"," (",[1232,2328,2329],{},"ds worktree cli \u003Cname> golden build",") — the build ends with an aggregation recalc and is the single source of truth. Never patch rows directly; the next build truncates and regenerates the Acme org, silently discarding manual edits. And prefer ",[1232,2332,1707],{}," (or ",[1232,2335,2336],{},"ds golden import"," on shared stages) over ",[1232,2339,2340],{},"ds data copy"," for golden persona orgs — the generic copier is marker-unaware and leaves the golden anchor marker stale.",[1268,2343,2345],{"id":2344},"logging-in","Logging In",[1224,2347,2348,2349,2351,2352,2355,2356,2361,2362,2367,2368,2373],{},"Local auth uses ",[1241,2350,1347],{},", which signs in by ",[1241,2353,2354],{},"username, not email",". After a golden build, use username ",[1241,2357,2358],{},[1232,2359,2360],{},"acme.devstride"," (Admin) or ",[1241,2363,2364],{},[1232,2365,2366],{},"alex.rte"," (RTE persona), password ",[1241,2369,2370],{},[1232,2371,2372],{},"Demo@123"," for all personas. Each instance has its own pool, so the same credentials exist independently on every instance you seed.",[1268,2375,2377],{"id":2376},"lifecycle-teardown","Lifecycle & Teardown",[1273,2379,2380,2391,2400],{},[1276,2381,2382,2384,2385,2388,2389,1491],{},[1232,2383,1754],{}," — stop an instance but ",[1241,2386,2387],{},"keep its data","; bring it back with ",[1232,2390,1741],{},[1276,2392,2393,2395,2396,2399],{},[1232,2394,1767],{}," — stop it, ",[1241,2397,2398],{},"drop all its data",", and remove the worktree (keeps the branch; prompts on uncommitted changes).",[1276,2401,2402,2405,2406,2413,2414,2416],{},[1232,2403,2404],{},"ds worktree core down"," — stop the shared core. ",[1241,2407,2408,2409,2412],{},"This stops the data layer for ",[1263,2410,2411],{},"all"," instances","; add ",[1232,2415,1801],{}," to also delete the shared data volumes.",[1268,2418,2420],{"id":2419},"notes-gotchas","Notes & Gotchas",[1273,2422,2423,2435,2453,2462],{},[1276,2424,2425,2428,2429,2333,2432,1711],{},[1241,2426,2427],{},"The image is built once"," and reused by every instance. After changing dependencies, rebuild: ",[1232,2430,2431],{},"ds worktree create --rebuild",[1232,2433,2434],{},"ds run local --rebuild",[1276,2436,2437,2440,2441,2443,2444,2447,2448,1338,2450,2452],{},[1241,2438,2439],{},"Base worktrees off a branch that has the stack."," The ",[1232,2442,1299],{}," scripts are bind-mounted from the worktree, so create instances from a branch that contains ",[1232,2445,2446],{},"docker/instance.compose.yml"," et al. (",[1232,2449,1307],{},[1232,2451,1311],{},", or any branch cut from them).",[1276,2454,2455,2458,2459,2461],{},[1241,2456,2457],{},"Create instances one at a time"," when scripting many — the CLI serializes port allocation with a lock, but back-to-back ",[1232,2460,1808],{},"s are simplest.",[1276,2463,2464,2467,2468,2471],{},[1241,2465,2466],{},"The instance registry"," lives in the repo's common git dir (",[1232,2469,2470],{},".git/devstride-local/registry.json",") and is shared across all worktrees.",[1268,2473,2475],{"id":2474},"next-steps","Next Steps",[1273,2477,2478,2487,2496],{},[1276,2479,2480,2482,2483,2486],{},[1228,2481,928],{"href":929}," — the AWS-bound day-to-day loop and the full ",[1232,2484,2485],{},"ds data"," command surface",[1276,2488,2489,2491,2492,2495],{},[1228,2490,936],{"href":937}," — the Acme demo/test fixture and the ",[1232,2493,2494],{},"ds golden"," commands",[1276,2497,2498,2500,2501,2503],{},[1228,2499,924],{"href":925}," — the complete ",[1232,2502,1429],{}," CLI surface",[2505,2506,2507],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":1326,"searchDepth":238,"depth":238,"links":2509},[2510,2511,2512,2516,2522,2523,2528,2529,2530,2531],{"id":1270,"depth":238,"text":1271},{"id":1315,"depth":238,"text":1316},{"id":1405,"depth":238,"text":1406,"children":2513},[2514,2515],{"id":1410,"depth":296,"text":1411},{"id":1494,"depth":296,"text":1495},{"id":1628,"depth":238,"text":924,"children":2517},[2518,2520],{"id":1805,"depth":296,"text":2519},"create flags",{"id":1845,"depth":296,"text":2521},"rm flags",{"id":1871,"depth":238,"text":1872},{"id":1952,"depth":238,"text":1953,"children":2524},[2525,2526,2527],{"id":2072,"depth":296,"text":2073},{"id":2127,"depth":296,"text":2128},{"id":2215,"depth":296,"text":2216},{"id":2344,"depth":238,"text":2345},{"id":2376,"depth":238,"text":2377},{"id":2419,"depth":238,"text":2420},{"id":2474,"depth":238,"text":2475},"Run many isolated, no-AWS DevStride instances at once — one per git worktree — each with its own database, and seed each one with a different dataset using the ds worktree data tooling.","md",null,{},{"title":932,"description":2532},"YpcknBKJm9NpJU5ce1ysGsAxSQQTKlG2SZwt8D6m5EM",[2539,2541],{"title":928,"path":929,"stem":930,"description":2540,"children":-1},"The real day-to-day dev loop: running the backend and UI, scaffolding CQRS code, migrations, and managing local data with the ds CLI.",{"title":936,"path":937,"stem":938,"description":2542,"children":-1},"The ds golden CLI: a scoped, generator-driven demo/test fixture built around the Acme org — what each subcommand does and where the deep-dive docs live.",1783661001783]