[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"examples-content:\u002Fexamples\u002Fapps\u002Fappwrite\u002Fflows":3,"content-store-meta":-1,"i-custom:bookmark":366},{"canonical_path":4,"template":5,"family":6,"indexable":7,"seo":8,"breadcrumbs":12,"content":24,"app":29,"examples":48,"showcases":343,"links":344,"dates":363},"\u002Fexamples\u002Fapps\u002Fappwrite\u002Fflows","detail","flows",true,{"title":9,"description":10,"og_image":11},"Appwrite user flows examples - Nicelydone","Explore Appwrite user flow examples. Preview the opening screens and steps for each task. Open-source backend platform for building and scaling apps with…","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F01a1635b-bf00-4053-9e87-8f1ed106855a.png",[13,16,19,22],{"label":14,"to":15},"Examples","\u002Fexamples",{"label":17,"to":18},"SaaS app design examples","\u002Fexamples\u002Fapps",{"label":20,"to":21},"Appwrite design examples","\u002Fexamples\u002Fapps\u002Fappwrite",{"label":23,"to":4},"Appwrite user flows examples",{"title":23,"eyebrow":25,"description":26,"sections":27,"body":28},"SaaS app examples","Explore Appwrite user flow examples. Preview the opening screens and steps for each task. Open-source backend platform for building and scaling apps with Auth, Database, Storage, Functions, Realtime, Messaging, and Sites.",[],[],{"title":30,"slug":31,"description":32,"logo":33,"url":34,"categories":35},"Appwrite","appwrite","Open-source backend platform for building and scaling apps with Auth, Database, Storage, Functions, Realtime, Messaging, and Sites.","https:\u002F\u002Fassets.nicelydone.club\u002Flogos\u002Faba3119b-0179-4fbd-b6d0-2bb3a0bfda07.png","https:\u002F\u002Fappwrite.io\u002F",[36,40,44],{"id":37,"title":38,"slug":39},48,"Developer Tools","developer-tools",{"id":41,"title":42,"slug":43},37,"Developer APIs","developer-apis",{"id":45,"title":46,"slug":47},45,"Open Source","open-source",[49,76,106,127,145,167,186,210,234,256,289,313],{"uuid":50,"title":51,"description":52,"canonical_path":4,"kind":53,"patterns_count":54,"categories":55,"screens":59,"app":75},"9d75dd17-017f-40e9-9b69-e2199a1d2e5b","Creating project","User creates a new Appwrite project by naming it, optionally setting a custom ID, and selecting a hosting region","flow",6,[56],{"id":57,"title":51,"slug":58},20,"create-project",[60,67,71],{"uuid":61,"title":62,"description":63,"image":11,"image_alt":64,"width":65,"height":66},"01a1635b-bf00-4053-9e87-8f1ed106855a","Create project - Appwrite","Create page where the user names their new project and selects a hosting region.","Create project - Appwrite from Appwrite",3024,1758,{"uuid":68,"title":62,"description":69,"image":70,"image_alt":64,"width":65,"height":66},"adce3b7c-d476-4475-95a8-dcc23540f077","Creation screen where the user sets up a new project by providing a name, an optional custom ID, and selecting a hosting region.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002Fadce3b7c-d476-4475-95a8-dcc23540f077.png",{"uuid":72,"title":62,"description":73,"image":74,"image_alt":64,"width":65,"height":66},"7bd42b81-5503-43ee-848c-a866f4400daa","Creation screen where the user sets up a new project by providing a name, an optional custom Project ID, and selecting a hosting region.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F7bd42b81-5503-43ee-848c-a866f4400daa.png",{"slug":31,"title":30,"logo":33},{"uuid":77,"title":78,"description":79,"canonical_path":4,"kind":53,"patterns_count":80,"categories":81,"screens":90,"app":105},"1f341598-89ca-4002-88ae-a28c23170202","Adding web platform","User adds a web platform to an Appwrite project by selecting a framework and hostname in a modal then completing multi-step onboarding setup with code snippets and starter kit",7,[82,86],{"id":83,"title":84,"slug":85},80,"Adding","add",{"id":87,"title":88,"slug":89},62,"Connecting to integration","connect-to-integration",[91,97,101],{"uuid":92,"title":93,"description":94,"image":95,"image_alt":96,"width":65,"height":66},"0d67f00b-5c06-49e8-a4d1-9a150bc25b83","Console - Appwrite","Integration setup Project setup","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F0d67f00b-5c06-49e8-a4d1-9a150bc25b83.png","Console - Appwrite from Appwrite",{"uuid":98,"title":93,"description":99,"image":100,"image_alt":96,"width":65,"height":66},"a555fd88-74ee-4537-aac2-5e21d323622a","Project setup","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002Fa555fd88-74ee-4537-aac2-5e21d323622a.png",{"uuid":102,"title":93,"description":103,"image":104,"image_alt":96,"width":65,"height":66},"15766c56-9f29-4838-b1f8-c4b0a8a2b52f","Onboarding step where the user configures a new Vue web platform by copying an AI setup prompt and cloning a starter kit.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F15766c56-9f29-4838-b1f8-c4b0a8a2b52f.png",{"slug":31,"title":30,"logo":33},{"uuid":107,"title":108,"description":109,"canonical_path":4,"kind":53,"patterns_count":80,"categories":110,"screens":113,"app":126},"c6423191-893d-4501-8f39-e2152c10f2ec","Adding React Native platform","User adds and configures a React Native platform integration via modal and form screens then completes onboarding with code snippets and connection wait state",[111,112],{"id":83,"title":84,"slug":85},{"id":87,"title":88,"slug":89},[114,118,122],{"uuid":115,"title":93,"description":116,"image":117,"image_alt":96,"width":65,"height":66},"1c0c317d-e2e4-4bbb-9134-3c809b00cd5f","Modal where the user configures a new React Native platform integration by selecting the OS and providing app details.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F1c0c317d-e2e4-4bbb-9134-3c809b00cd5f.png",{"uuid":119,"title":93,"description":120,"image":121,"image_alt":96,"width":65,"height":66},"4b5e23d5-81a9-4be2-b897-c47bb680076a","Integration setup","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F4b5e23d5-81a9-4be2-b897-c47bb680076a.png",{"uuid":123,"title":93,"description":124,"image":125,"image_alt":96,"width":65,"height":66},"3e0d3846-25b3-4b63-ad5c-f963c9c94b44","Form layout","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F3e0d3846-25b3-4b63-ad5c-f963c9c94b44.png",{"slug":31,"title":30,"logo":33},{"uuid":128,"title":129,"description":130,"canonical_path":4,"kind":53,"patterns_count":80,"categories":131,"screens":134,"app":144},"4df3a71d-dc75-4cb4-bd31-401e4f49a4b5","Adding Apple platform","User adds and configures an Apple platform integration (iOS\u002FmacOS\u002FtvOS) to an Appwrite project via form, modal, and wizard steps",[132,133],{"id":83,"title":84,"slug":85},{"id":87,"title":88,"slug":89},[135,138,141],{"uuid":136,"title":93,"description":124,"image":137,"image_alt":96,"width":65,"height":66},"d79ce4c3-18ad-4120-af85-d2e8215f02d3","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002Fd79ce4c3-18ad-4120-af85-d2e8215f02d3.png",{"uuid":139,"title":93,"description":124,"image":140,"image_alt":96,"width":65,"height":66},"53c728db-d0f8-492d-9837-1c6e6201fc7d","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F53c728db-d0f8-492d-9837-1c6e6201fc7d.png",{"uuid":142,"title":93,"description":124,"image":143,"image_alt":96,"width":65,"height":66},"8a240a69-68d9-4c97-8c86-100b4e04123e","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F8a240a69-68d9-4c97-8c86-100b4e04123e.png",{"slug":31,"title":30,"logo":33},{"uuid":146,"title":147,"description":148,"canonical_path":4,"kind":53,"patterns_count":149,"categories":150,"screens":153,"app":166},"f8e49fbc-6710-4752-9018-95d3bda7818b","Adding Flutter platform","User opens add platform modal or onboarding step to register a new Flutter integration by selecting target OS and entering app details like name, package ID or bundle ID",13,[151,152],{"id":83,"title":84,"slug":85},{"id":87,"title":88,"slug":89},[154,158,162],{"uuid":155,"title":93,"description":156,"image":157,"image_alt":96,"width":65,"height":66},"2a60a87e-3b76-4211-9dce-da5218a2a383","Create screen where the user configures a new Flutter platform integration by selecting a target OS like Android or iOS and providing app details.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F2a60a87e-3b76-4211-9dce-da5218a2a383.png",{"uuid":159,"title":93,"description":160,"image":161,"image_alt":96,"width":65,"height":66},"31c3238b-6959-49f0-9bbb-ac1c61c0c6e8","Create screen where the user configures a new Flutter platform integration by selecting the target operating system and providing a name and package identifier.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F31c3238b-6959-49f0-9bbb-ac1c61c0c6e8.png",{"uuid":163,"title":93,"description":164,"image":165,"image_alt":96,"width":65,"height":66},"61fb897a-e6dc-406d-9123-68135eb31188","Creation modal where the user configures a new Flutter platform integration by selecting the target OS and providing a bundle ID.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F61fb897a-e6dc-406d-9123-68135eb31188.png",{"slug":31,"title":30,"logo":33},{"uuid":168,"title":169,"description":170,"canonical_path":4,"kind":53,"patterns_count":54,"categories":171,"screens":172,"app":185},"1c4485b3-7ba2-489d-8a64-851f985a6922","Monitoring project overview","Reviewing project bandwidth, request, storage, and database metrics with integrations and API keys on Appwrite dashboard",[],[173,177,181],{"uuid":174,"title":93,"description":175,"image":176,"image_alt":96,"width":65,"height":66},"9db42af7-f19c-49e8-9560-13923e191fc5","API management Project dashboard","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F9db42af7-f19c-49e8-9560-13923e191fc5.png",{"uuid":178,"title":93,"description":179,"image":180,"image_alt":96,"width":65,"height":66},"7a6c9819-0959-4489-b9a4-bd71fbb768bf","Database management API Integrations","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F7a6c9819-0959-4489-b9a4-bd71fbb768bf.png",{"uuid":182,"title":93,"description":183,"image":184,"image_alt":96,"width":65,"height":66},"298a524e-5d9a-4627-bafe-ee8f7bf39b9d","Dashboard overview for a specific project showing bandwidth and request metrics alongside a list of API keys.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F298a524e-5d9a-4627-bafe-ee8f7bf39b9d.png",{"slug":31,"title":30,"logo":33},{"uuid":187,"title":188,"description":189,"canonical_path":4,"kind":53,"patterns_count":80,"categories":190,"screens":194,"app":209},"d8097ce7-a4c0-46cb-a483-811da9cb1124","Resetting password","Password recovery flow where user requests reset link via email then sets new password",[191],{"id":192,"title":188,"slug":193},58,"reset-password",[195,201,205],{"uuid":196,"title":197,"description":198,"image":199,"image_alt":200,"width":65,"height":66},"6c89fa89-e190-40df-b2e1-9903602548c4","Recover - Appwrite","Password recovery screen where the user enters their email address to receive a reset link.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F6c89fa89-e190-40df-b2e1-9903602548c4.png","Recover - Appwrite from Appwrite",{"uuid":202,"title":197,"description":203,"image":204,"image_alt":200,"width":65,"height":66},"2505236a-15da-4b0a-9786-fcc965a84f2f","Auth screen where the user enters their email address to request a password reset link, alongside options to navigate to sign in or sign up.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F2505236a-15da-4b0a-9786-fcc965a84f2f.png",{"uuid":206,"title":197,"description":207,"image":208,"image_alt":200,"width":65,"height":66},"b2a34c3d-fffc-4720-af36-0802aa391629","Password recovery screen where the user requests a reset link via email, showing a success confirmation toast.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002Fb2a34c3d-fffc-4720-af36-0802aa391629.png",{"slug":31,"title":30,"logo":33},{"uuid":211,"title":212,"description":213,"canonical_path":4,"kind":53,"patterns_count":54,"categories":214,"screens":219,"app":233},"89e39d99-cb0f-43d7-a714-c6c715a86500","Creating auth user","Developer creates first or additional auth user from empty list via modal form, then lands on user detail with success confirmation",[215],{"id":216,"title":217,"slug":218},28,"Creating","create",[220,226,230],{"uuid":221,"title":222,"description":223,"image":224,"image_alt":225,"width":65,"height":66},"1b5f3fd9-49c9-43fe-a063-f83abbf07222","Auth - Appwrite","List view where the developer manages authenticated users for their project, currently showing an empty state with a prompt to create the first user.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F1b5f3fd9-49c9-43fe-a063-f83abbf07222.png","Auth - Appwrite from Appwrite",{"uuid":227,"title":222,"description":228,"image":229,"image_alt":225,"width":65,"height":66},"5915de9c-9c0a-43f5-9e04-2054a32875be","User management","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F5915de9c-9c0a-43f5-9e04-2054a32875be.png",{"uuid":231,"title":222,"description":228,"image":232,"image_alt":225,"width":65,"height":66},"6d705c3f-f42b-42cc-b587-a0de88bceda5","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F6d705c3f-f42b-42cc-b587-a0de88bceda5.png",{"slug":31,"title":30,"logo":33},{"uuid":235,"title":236,"description":237,"canonical_path":4,"kind":53,"patterns_count":238,"categories":239,"screens":240,"app":255},"4bed4091-5a65-4672-90e1-53e9bfbff55a","Reviewing auth user profile","Navigating tabs on an auth user detail page across empty states for memberships, identities, sessions, activity and populated targets view",9,[],[241,247,251],{"uuid":242,"title":243,"description":244,"image":245,"image_alt":246,"width":65,"height":66},"594e887e-e60d-47ef-8a69-53687578750c","User - Appwrite","User management Sidebar navigation Project dashboard","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F594e887e-e60d-47ef-8a69-53687578750c.png","User - Appwrite from Appwrite",{"uuid":248,"title":243,"description":249,"image":250,"image_alt":246,"width":65,"height":66},"d0d110fe-87e7-40fc-bbd2-7cbd3ce8a039","User profile","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002Fd0d110fe-87e7-40fc-bbd2-7cbd3ce8a039.png",{"uuid":252,"title":243,"description":253,"image":254,"image_alt":246,"width":65,"height":66},"8946834a-0498-4ee6-9e68-fc612580ba87","User profile User management","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F8946834a-0498-4ee6-9e68-fc612580ba87.png",{"slug":31,"title":30,"logo":33},{"uuid":257,"title":258,"description":259,"canonical_path":4,"kind":53,"patterns_count":54,"categories":260,"screens":273,"app":288},"3e3289a0-9743-4914-b385-60d99ebf4e9f","Configuring auth email templates","User navigates Auth settings to review and edit email templates for verification, magic URL, OTP, password reset and other auth flows, with SMTP requirement and upgrade gate for branding removal",[261,265,269],{"id":262,"title":263,"slug":264},67,"Customizing","customize",{"id":266,"title":267,"slug":268},60,"Editing","edit",{"id":270,"title":271,"slug":272},71,"Settings","settings",[274,280,284],{"uuid":275,"title":276,"description":277,"image":278,"image_alt":279,"width":65,"height":66},"916782b4-bff8-4ab8-a097-8728087aacaa","Team - Appwrite","Project dashboard","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F916782b4-bff8-4ab8-a097-8728087aacaa.png","Team - Appwrite from Appwrite",{"uuid":281,"title":276,"description":282,"image":283,"image_alt":279,"width":65,"height":66},"2d62ccac-579c-4677-8ba9-c9d205833773","Settings page where the user configures the verification email template, including sender details, subject, and HTML message body with copyable variables.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F2d62ccac-579c-4677-8ba9-c9d205833773.png",{"uuid":285,"title":276,"description":286,"image":287,"image_alt":279,"width":65,"height":66},"10030880-5c39-4fc1-a206-c0229369c784","Settings page where the user configures the email template for account verification, including sender details, subject, and HTML message body.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F10030880-5c39-4fc1-a206-c0229369c784.png",{"slug":31,"title":30,"logo":33},{"uuid":290,"title":291,"description":292,"canonical_path":4,"kind":53,"patterns_count":238,"categories":293,"screens":298,"app":312},"a5568640-b47a-4750-be76-70f53d2d8f85","Filtering table rows","User opens filter builder popover on database table rows view and configures multi-condition rules to refine visible data",[294],{"id":295,"title":296,"slug":297},63,"Filtering & sorting","filter-sort",[299,305,309],{"uuid":300,"title":301,"description":302,"image":303,"image_alt":304,"width":65,"height":66},"56cec958-bbba-401f-8aff-35f27255c76e","Name - Appwrite","Database management","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F56cec958-bbba-401f-8aff-35f27255c76e.png","Name - Appwrite from Appwrite",{"uuid":306,"title":301,"description":307,"image":308,"image_alt":304,"width":65,"height":66},"1c7fdbc6-057a-4da7-92af-3e80d57832e1","Database management Data Grid","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F1c7fdbc6-057a-4da7-92af-3e80d57832e1.png",{"uuid":310,"title":301,"description":302,"image":311,"image_alt":304,"width":65,"height":66},"48205069-f874-4562-aff6-d57f1faee948","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F48205069-f874-4562-aff6-d57f1faee948.png",{"slug":31,"title":30,"logo":33},{"uuid":314,"title":315,"description":316,"canonical_path":4,"kind":53,"patterns_count":80,"categories":317,"screens":327,"app":342},"c10a85db-05c0-4e89-b0b4-8ca70d45ae74","Configuring function settings","User configures serverless function runtime, integrations, permissions, limits and scopes across sequential settings screens in Appwrite console",[318,322,323],{"id":319,"title":320,"slug":321},59,"Managing roles and permissions","manage-roles-and-permissions",{"id":270,"title":271,"slug":272},{"id":324,"title":325,"slug":326},73,"Updating","update",[328,334,338],{"uuid":329,"title":330,"description":331,"image":332,"image_alt":333,"width":65,"height":66},"d9b29a97-c73e-4bdd-92cd-1e81f805e54b","Create execution - Appwrite","Settings page where the user configures a serverless function's name, runtime environment, and entrypoint.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002Fd9b29a97-c73e-4bdd-92cd-1e81f805e54b.png","Create execution - Appwrite from Appwrite",{"uuid":335,"title":330,"description":336,"image":337,"image_alt":333,"width":65,"height":66},"6da3691d-8da3-4cde-a952-5bb86bb009ee","Settings page where the user configures a serverless function's runtime, Git repository connection, environment variables, and build commands.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F6da3691d-8da3-4cde-a952-5bb86bb009ee.png",{"uuid":339,"title":330,"description":340,"image":341,"image_alt":333,"width":65,"height":66},"6bf8a2b6-ebf4-421d-9a92-2d23e72695f6","Settings page where the user configures build commands, deployment retention, execute access, and resource limits for a serverless function.","https:\u002F\u002Fassets.nicelydone.club\u002Ff\u002F6bf8a2b6-ebf4-421d-9a92-2d23e72695f6.png",{"slug":31,"title":30,"logo":33},[],[345,348,351,354,357,360],{"label":346,"to":347},"Appwrite product screens","\u002Fexamples\u002Fapps\u002Fappwrite\u002Fscreens",{"label":349,"to":350},"Appwrite marketing pages","\u002Fexamples\u002Fapps\u002Fappwrite\u002Fmarketing",{"label":352,"to":353},"Appwrite UI components","\u002Fexamples\u002Fapps\u002Fappwrite\u002Fcomponents",{"label":355,"to":356},"Developer Tools app examples","\u002Fexamples\u002Fapps\u002Fcategories\u002Fdeveloper-tools",{"label":358,"to":359},"Developer APIs app examples","\u002Fexamples\u002Fapps\u002Fcategories\u002Fdeveloper-apis",{"label":361,"to":362},"Open Source app examples","\u002Fexamples\u002Fapps\u002Fcategories\u002Fopen-source",{"published_at":364,"updated_at":365},"2026-05-23T18:28:00.000Z","2026-09-13T13:02:39.000Z",{"left":367,"top":367,"width":57,"height":57,"rotate":367,"vFlip":368,"hFlip":368,"body":369},0,false,"\u003Cg fill=\"none\">\u003Cpath d=\"M9.7334 2.41699H10.2666C11.3987 2.41699 12.2028 2.41737 12.832 2.46875C13.4526 2.51945 13.8371 2.61637 14.1416 2.77148C14.7531 3.08307 15.2509 3.57988 15.5625 4.19141C15.7176 4.49587 15.8136 4.88039 15.8643 5.50098C15.9157 6.13035 15.916 6.93496 15.916 8.06738V15.1338C15.916 15.6634 15.9153 16.0086 15.8926 16.2578C15.879 16.4067 15.8598 16.4744 15.8525 16.4971C15.8095 16.5461 15.7506 16.576 15.6855 16.5811C15.6634 16.5734 15.5976 16.5486 15.4697 16.4697C15.2568 16.3384 14.9804 16.1313 14.5566 15.8135L11.4102 13.4541C11.1193 13.236 10.8105 12.9878 10.4453 12.8916C10.1533 12.8147 9.84573 12.8147 9.55371 12.8916C9.18862 12.9879 8.88057 13.2361 8.58984 13.4541L5.44336 15.8135C5.01942 16.1314 4.74231 16.3384 4.5293 16.4697C4.40092 16.5489 4.33537 16.5735 4.31348 16.5811C4.24875 16.5759 4.18941 16.5468 4.14648 16.498C4.13942 16.4762 4.12019 16.4085 4.10645 16.2578C4.08375 16.0086 4.08301 15.6634 4.08301 15.1338V8.06738C4.08301 6.93498 4.08335 6.13034 4.13477 5.50098C4.18547 4.88035 4.28236 4.49588 4.4375 4.19141C4.74906 3.58004 5.24605 3.08305 5.85742 2.77148C6.16189 2.61635 6.54637 2.51946 7.16699 2.46875C7.79636 2.41734 8.60099 2.41699 9.7334 2.41699Z\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linejoin=\"round\"\u002F>\u003C\u002Fg>"]