[{"data":1,"prerenderedAt":1194},["ShallowReactive",2],{"navigation":3,"blog":47,"\u002Fblog":60},[4,22],{"title":5,"path":6,"stem":7,"children":8,"icon":21},"Getting Started","\u002Fdocs\u002Fgetting-started","1.docs\u002F1.getting-started\u002F1.index",[9,12,16],{"title":10,"path":6,"stem":7,"icon":11},"Introduction","i-lucide-house",{"title":5,"path":13,"stem":14,"icon":15},"\u002Fdocs\u002Fgetting-started\u002Finstallation","1.docs\u002F1.getting-started\u002F2.installation","i-lucide-rocket",{"title":17,"path":18,"stem":19,"icon":20},"Deployment Workflow","\u002Fdocs\u002Fgetting-started\u002Fusage","1.docs\u002F1.getting-started\u002F3.usage","i-lucide-git-branch",false,{"title":23,"path":24,"stem":25,"children":26,"page":21},"Essentials","\u002Fdocs\u002Fessentials","1.docs\u002F2.essentials",[27,32,37,42],{"title":28,"path":29,"stem":30,"icon":31},"Custom Domains","\u002Fdocs\u002Fessentials\u002Fmarkdown-syntax","1.docs\u002F2.essentials\u002F1.markdown-syntax","i-lucide-link",{"title":33,"path":34,"stem":35,"icon":36},"Environment Variables","\u002Fdocs\u002Fessentials\u002Fcode-blocks","1.docs\u002F2.essentials\u002F2.code-blocks","i-lucide-key",{"title":38,"path":39,"stem":40,"icon":41},"Serverless Functions","\u002Fdocs\u002Fessentials\u002Fprose-components","1.docs\u002F2.essentials\u002F3.prose-components","i-lucide-server",{"title":43,"path":44,"stem":45,"icon":46},"Analytics & Monitoring","\u002Fdocs\u002Fessentials\u002Fimages-embeds","1.docs\u002F2.essentials\u002F4.images-embeds","i-lucide-bar-chart",{"id":48,"title":49,"body":50,"description":51,"extension":52,"meta":53,"navigation":54,"path":56,"seo":57,"stem":58,"__hash__":59},"blog\u002F3.blog.yml","Blog",null,"Discover the latest insights, tutorials, and updates from our team. Stay informed about web development trends, best practices, and innovative solutions.","yml",{},{"icon":55},"i-lucide-newspaper","\u002Fblog",{"title":49,"description":51},"3.blog","xU5p5VdJkx0QeTWiWoE__dOAG_p2L7hLKHVurHf_RyQ",[61,202,344,483,723,948],{"id":62,"title":63,"authors":64,"badge":69,"body":71,"date":191,"description":192,"extension":193,"image":194,"meta":196,"navigation":197,"path":198,"seo":199,"stem":200,"__hash__":201},"posts\u002F3.blog\u002F1.asian-cuisine.md","Getting Started with DeployHub",[65],{"name":66,"avatar":67},"DeployHub Team",{"src":68},"https:\u002F\u002Fi.pravatar.cc\u002F128?u=0",{"label":70},"Guide",{"type":72,"value":73,"toc":179},"minimark",[74,79,83,87,90,103,107,116,120,123,127,130,144,148,151,155,158,162,176],[75,76,78],"h2",{"id":77},"welcome-to-deployhub","Welcome to DeployHub",[80,81,82],"p",{},"DeployHub makes deploying web applications easier than ever. In this guide, we'll walk you through the entire process of deploying your first application.",[75,84,86],{"id":85},"prerequisites","Prerequisites",[80,88,89],{},"Before getting started, you'll need:",[91,92,93,97,100],"ul",{},[94,95,96],"li",{},"A GitHub or GitLab account",[94,98,99],{},"A web application repository",[94,101,102],{},"Basic understanding of Git",[75,104,106],{"id":105},"step-1-create-an-account","Step 1: Create an Account",[80,108,109,110,115],{},"Head over to our ",[111,112,114],"a",{"href":113},"\u002Fsignup","sign up"," page and create your free account. You can sign up with GitHub or GitLab for a faster experience.",[75,117,119],{"id":118},"step-2-connect-your-repository","Step 2: Connect Your Repository",[80,121,122],{},"Once logged in, click \"New Project\" and select your Git provider. Authorize DeployHub to access your repositories and choose the one you want to deploy.",[75,124,126],{"id":125},"step-3-configure-deployment","Step 3: Configure Deployment",[80,128,129],{},"We'll automatically detect your framework and suggest build settings. You can customize:",[91,131,132,135,138,141],{},[94,133,134],{},"Build command",[94,136,137],{},"Output directory",[94,139,140],{},"Environment variables",[94,142,143],{},"Branch settings",[75,145,147],{"id":146},"step-4-deploy","Step 4: Deploy",[80,149,150],{},"Click \"Deploy\" and watch as we build and deploy your application to our global edge network. The first deployment may take a minute, but subsequent deploys are instant.",[75,152,154],{"id":153},"step-5-custom-domain-optional","Step 5: Custom Domain (Optional)",[80,156,157],{},"Add a custom domain to your project for a professional look. We'll automatically provision SSL certificates.",[75,159,161],{"id":160},"next-steps","Next Steps",[91,163,164,167,170,173],{},[94,165,166],{},"Set up preview deployments for pull requests",[94,168,169],{},"Add environment variables",[94,171,172],{},"Invite team members",[94,174,175],{},"Explore our documentation",[80,177,178],{},"Happy deploying! 🚀",{"title":180,"searchDepth":181,"depth":181,"links":182},"",2,[183,184,185,186,187,188,189,190],{"id":77,"depth":181,"text":78},{"id":85,"depth":181,"text":86},{"id":105,"depth":181,"text":106},{"id":118,"depth":181,"text":119},{"id":125,"depth":181,"text":126},{"id":146,"depth":181,"text":147},{"id":153,"depth":181,"text":154},{"id":160,"depth":181,"text":161},"2024-04-15","A comprehensive guide to deploying your first application on DeployHub","md",{"src":195},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F490\u002F640\u002F360",{},true,"\u002Fblog\u002Fasian-cuisine",{"title":63,"description":192},"3.blog\u002F1.asian-cuisine","QB8LaVegaa9HsSiSydoo8xTskrC58zXOJiHgF3ItUaA",{"id":203,"title":204,"authors":205,"badge":209,"body":211,"date":335,"description":336,"extension":193,"image":337,"meta":339,"navigation":197,"path":340,"seo":341,"stem":342,"__hash__":343},"posts\u002F3.blog\u002F2.pyrenees.md","Optimizing Your Deployments for Performance",[206],{"name":66,"avatar":207},{"src":208},"https:\u002F\u002Fi.pravatar.cc\u002F128?u=1",{"label":210},"Performance",{"type":72,"value":212,"toc":325},[213,217,220,224,227,231,242,246,249,260,264,267,270,273,284,288,291,305,308,311,322],[75,214,216],{"id":215},"performance-optimization-guide","Performance Optimization Guide",[80,218,219],{},"DeployHub is built for speed, but there are steps you can take to optimize your applications even further.",[75,221,223],{"id":222},"enable-compression","Enable Compression",[80,225,226],{},"Make sure your build process includes gzip or Brotli compression for static assets. Most modern frameworks do this automatically.",[75,228,230],{"id":229},"optimize-images","Optimize Images",[91,232,233,236,239],{},[94,234,235],{},"Use modern formats like WebP or AVIF",[94,237,238],{},"Implement responsive images with srcset",[94,240,241],{},"Consider using an image CDN",[75,243,245],{"id":244},"code-splitting","Code Splitting",[80,247,248],{},"Leverage your framework's code splitting capabilities to only load what's needed:",[91,250,251,254,257],{},[94,252,253],{},"Next.js: Automatic with App Router",[94,255,256],{},"Nuxt: Uses Vue's async components",[94,258,259],{},"React: React.lazy and Suspense",[75,261,263],{"id":262},"caching-strategy","Caching Strategy",[80,265,266],{},"Configure proper cache headers for static assets. DeployHub automatically sets appropriate headers, but you can customize them if needed.",[75,268,33],{"id":269},"environment-variables",[80,271,272],{},"Keep sensitive configuration out of your codebase. Use DeployHub's environment variables for:",[91,274,275,278,281],{},[94,276,277],{},"API keys",[94,279,280],{},"Database connections",[94,282,283],{},"Feature flags",[75,285,287],{"id":286},"monitoring","Monitoring",[80,289,290],{},"Use our analytics dashboard to monitor:",[91,292,293,296,299,302],{},[94,294,295],{},"Core Web Vitals",[94,297,298],{},"Request latency",[94,300,301],{},"Error rates",[94,303,304],{},"Bandwidth usage",[75,306,38],{"id":307},"serverless-functions",[80,309,310],{},"When using serverless functions:",[91,312,313,316,319],{},[94,314,315],{},"Keep functions small and focused",[94,317,318],{},"Use environment variables for configuration",[94,320,321],{},"Take advantage of edge caching",[80,323,324],{},"By following these best practices, you'll ensure your applications load quickly and perform optimally for your users.",{"title":180,"searchDepth":181,"depth":181,"links":326},[327,328,329,330,331,332,333,334],{"id":215,"depth":181,"text":216},{"id":222,"depth":181,"text":223},{"id":229,"depth":181,"text":230},{"id":244,"depth":181,"text":245},{"id":262,"depth":181,"text":263},{"id":269,"depth":181,"text":33},{"id":286,"depth":181,"text":287},{"id":307,"depth":181,"text":38},"2024-04-20","Tips and best practices for getting the most out of your DeployHub deployments",{"src":338},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F10\u002F640\u002F360",{},"\u002Fblog\u002Fpyrenees",{"title":204,"description":336},"3.blog\u002F2.pyrenees","6A_KKDNHhkTI7EAhuk29K05Ya_th05ry2_l5pFcAhVk",{"id":345,"title":346,"authors":50,"badge":50,"body":347,"date":50,"description":180,"extension":193,"image":50,"meta":466,"navigation":197,"path":467,"seo":468,"stem":481,"__hash__":482},"posts\u002F3.blog\u002F3.james-webb.md","[object Object]",{"type":72,"value":348,"toc":453},[349,353,356,360,378,382,387,390,394,397,401,404,408,411,415,418,432,436,450],[75,350,352],{"id":351},"the-power-of-preview-deployments","The Power of Preview Deployments",[80,354,355],{},"Preview deployments are one of the most powerful features of DeployHub. Every pull request automatically gets a live preview URL.",[75,357,359],{"id":358},"how-it-works","How It Works",[361,362,363,366,369,372,375],"ol",{},[94,364,365],{},"Create a pull request in your repository",[94,367,368],{},"DeployHub automatically builds and deploys the changes",[94,370,371],{},"A preview URL is added to the pull request",[94,373,374],{},"Team members can review and test the changes",[94,376,377],{},"Once merged, the changes deploy to production",[75,379,381],{"id":380},"benefits","Benefits",[383,384,386],"h3",{"id":385},"early-feedback","Early Feedback",[80,388,389],{},"Get feedback on changes before they're merged. Designers, product managers, and QA can review without needing a local environment.",[383,391,393],{"id":392},"catch-issues-early","Catch Issues Early",[80,395,396],{},"Preview deployments help catch bugs, styling issues, and performance problems before they reach production.",[383,398,400],{"id":399},"collaboration","Collaboration",[80,402,403],{},"Team members can easily share preview URLs and discuss changes in context.",[383,405,407],{"id":406},"cicd-integration","CI\u002FCD Integration",[80,409,410],{},"Preview deployments integrate seamlessly with your CI\u002FCD pipeline. You can run tests against the preview before merging.",[75,412,414],{"id":413},"configuration","Configuration",[80,416,417],{},"You can customize preview deployments in project settings:",[91,419,420,423,426,429],{},[94,421,422],{},"Enable\u002Fdisable for specific branches",[94,424,425],{},"Set custom build settings",[94,427,428],{},"Configure environment variables",[94,430,431],{},"Set auto-delete policies",[75,433,435],{"id":434},"best-practices","Best Practices",[361,437,438,441,444,447],{},[94,439,440],{},"Always review preview deployments before merging",[94,442,443],{},"Use preview deployments for user testing",[94,445,446],{},"Share preview URLs with stakeholders for approval",[94,448,449],{},"Set up alerts for failed preview deployments",[80,451,452],{},"Preview deployments transform how teams collaborate and ship features. Start using them today!",{"title":180,"searchDepth":181,"depth":181,"links":454},[455,456,457,464,465],{"id":351,"depth":181,"text":352},{"id":358,"depth":181,"text":359},{"id":380,"depth":181,"text":381,"children":458},[459,461,462,463],{"id":385,"depth":460,"text":386},3,{"id":392,"depth":460,"text":393},{"id":399,"depth":460,"text":400},{"id":406,"depth":460,"text":407},{"id":413,"depth":181,"text":414},{"id":434,"depth":181,"text":435},{},"\u002Fblog\u002Fjames-webb",{"title":469,"description":180},{"Preview Deployments":470,"description":471,"image":472,"authors":474,"date":478,"badge":479},"Streamline Your Workflow","How preview deployments can improve your development workflow",{"src":473},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F20\u002F640\u002F360",[475],{"name":66,"avatar":476},{"src":477},"https:\u002F\u002Fi.pravatar.cc\u002F128?u=2","2024-04-25",{"label":480},"Workflow","3.blog\u002F3.james-webb","XvOnD9Pc7d6o7SVkpWR_zXt83YbyhK3pj-dYibeXL3Q",{"id":484,"title":485,"authors":486,"badge":490,"body":492,"date":714,"description":715,"extension":193,"image":716,"meta":718,"navigation":197,"path":719,"seo":720,"stem":721,"__hash__":722},"posts\u002F3.blog\u002F4.meditation.md","Environment Variables Best Practices",[487],{"name":66,"avatar":488},{"src":489},"https:\u002F\u002Fi.pravatar.cc\u002F128?u=3",{"label":491},"Security",{"type":72,"value":493,"toc":693},[494,498,501,505,508,512,515,519,522,526,529,531,535,538,542,545,549,552,556,559,577,581,584,588,591,595,599,625,629,667,671,686,689],[75,495,497],{"id":496},"managing-environment-variables-securely","Managing Environment Variables Securely",[80,499,500],{},"Environment variables are a critical part of modern application development. Here's how to manage them effectively in DeployHub.",[75,502,504],{"id":503},"types-of-variables","Types of Variables",[80,506,507],{},"DeployHub supports different types of environment variables:",[383,509,511],{"id":510},"production-variables","Production Variables",[80,513,514],{},"Available in production deployments. Use these for sensitive configuration.",[383,516,518],{"id":517},"preview-variables","Preview Variables",[80,520,521],{},"Available only in preview deployments (pull requests). Useful for testing configurations.",[383,523,525],{"id":524},"secret-variables","Secret Variables",[80,527,528],{},"Values are encrypted and not visible once saved. Perfect for API keys and passwords.",[75,530,435],{"id":434},[383,532,534],{"id":533},"keep-secrets-out-of-code","Keep Secrets Out of Code",[80,536,537],{},"Never commit secrets to version control. Always use environment variables.",[383,539,541],{"id":540},"use-different-values-per-environment","Use Different Values per Environment",[80,543,544],{},"Use different API keys for development, staging, and production.",[383,546,548],{"id":547},"limit-access","Limit Access",[80,550,551],{},"Restrict who can view and modify environment variables. Use role-based access control.",[383,553,555],{"id":554},"use-descriptive-names","Use Descriptive Names",[80,557,558],{},"Use clear, consistent naming conventions:",[91,560,561,567,572],{},[94,562,563],{},[564,565,566],"code",{},"API_URL",[94,568,569],{},[564,570,571],{},"DATABASE_URL",[94,573,574],{},[564,575,576],{},"STRIPE_API_KEY",[383,578,580],{"id":579},"test-with-preview-deployments","Test with Preview Deployments",[80,582,583],{},"Use preview deployments to test environment variable changes before production.",[383,585,587],{"id":586},"rotate-secrets-regularly","Rotate Secrets Regularly",[80,589,590],{},"Regularly rotate API keys and other secrets, especially if team members leave.",[75,592,594],{"id":593},"framework-specifics","Framework Specifics",[383,596,598],{"id":597},"nextjs","Next.js",[600,601,605],"pre",{"className":602,"code":603,"language":604,"meta":180,"style":180},"language-javascript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F .env.local\nNEXT_PUBLIC_API_URL=https:\u002F\u002Fapi.example.com\nAPI_SECRET=secret\n","javascript",[564,606,607,615,620],{"__ignoreMap":180},[608,609,612],"span",{"class":610,"line":611},"line",1,[608,613,614],{},"\u002F\u002F .env.local\n",[608,616,617],{"class":610,"line":181},[608,618,619],{},"NEXT_PUBLIC_API_URL=https:\u002F\u002Fapi.example.com\n",[608,621,622],{"class":610,"line":460},[608,623,624],{},"API_SECRET=secret\n",[383,626,628],{"id":627},"nuxt","Nuxt",[600,630,632],{"className":602,"code":631,"language":604,"meta":180,"style":180},"\u002F\u002F nuxt.config.ts\nexport default defineNuxtConfig({\n  runtimeConfig: {\n    apiKey: process.env.API_KEY\n  }\n})\n",[564,633,634,639,644,649,655,661],{"__ignoreMap":180},[608,635,636],{"class":610,"line":611},[608,637,638],{},"\u002F\u002F nuxt.config.ts\n",[608,640,641],{"class":610,"line":181},[608,642,643],{},"export default defineNuxtConfig({\n",[608,645,646],{"class":610,"line":460},[608,647,648],{},"  runtimeConfig: {\n",[608,650,652],{"class":610,"line":651},4,[608,653,654],{},"    apiKey: process.env.API_KEY\n",[608,656,658],{"class":610,"line":657},5,[608,659,660],{},"  }\n",[608,662,664],{"class":610,"line":663},6,[608,665,666],{},"})\n",[383,668,670],{"id":669},"vite","Vite",[600,672,674],{"className":602,"code":673,"language":604,"meta":180,"style":180},"\u002F\u002F .env\nVITE_API_URL=https:\u002F\u002Fapi.example.com\n",[564,675,676,681],{"__ignoreMap":180},[608,677,678],{"class":610,"line":611},[608,679,680],{},"\u002F\u002F .env\n",[608,682,683],{"class":610,"line":181},[608,684,685],{},"VITE_API_URL=https:\u002F\u002Fapi.example.com\n",[80,687,688],{},"By following these practices, you'll keep your application secure and maintainable.",[690,691,692],"style",{},"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);}",{"title":180,"searchDepth":181,"depth":181,"links":694},[695,696,701,709],{"id":496,"depth":181,"text":497},{"id":503,"depth":181,"text":504,"children":697},[698,699,700],{"id":510,"depth":460,"text":511},{"id":517,"depth":460,"text":518},{"id":524,"depth":460,"text":525},{"id":434,"depth":181,"text":435,"children":702},[703,704,705,706,707,708],{"id":533,"depth":460,"text":534},{"id":540,"depth":460,"text":541},{"id":547,"depth":460,"text":548},{"id":554,"depth":460,"text":555},{"id":579,"depth":460,"text":580},{"id":586,"depth":460,"text":587},{"id":593,"depth":181,"text":594,"children":710},[711,712,713],{"id":597,"depth":460,"text":598},{"id":627,"depth":460,"text":628},{"id":669,"depth":460,"text":670},"2024-05-01","How to manage environment variables securely in DeployHub",{"src":717},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F40\u002F640\u002F360",{},"\u002Fblog\u002Fmeditation",{"title":485,"description":715},"3.blog\u002F4.meditation","MFLqhReMHduSkK_Df5Zjc0Ij0flyQJBfzaA09Q49Fa8",{"id":724,"title":725,"authors":726,"badge":730,"body":732,"date":939,"description":940,"extension":193,"image":941,"meta":943,"navigation":197,"path":944,"seo":945,"stem":946,"__hash__":947},"posts\u002F3.blog\u002F5.animals.md","Migrating to DeployHub",[727],{"name":66,"avatar":728},{"src":729},"https:\u002F\u002Fi.pravatar.cc\u002F128?u=4",{"label":731},"Migration",{"type":72,"value":733,"toc":924},[734,738,741,745,748,759,763,780,784,787,796,800,803,814,818,821,832,836,839,850,854,857,868,872,874,890,892,903,907,921],[75,735,737],{"id":736},"migrating-your-applications-to-deployhub","Migrating Your Applications to DeployHub",[80,739,740],{},"Migrating to DeployHub is straightforward. Here's a step-by-step guide.",[75,742,744],{"id":743},"step-1-prepare-your-repository","Step 1: Prepare Your Repository",[80,746,747],{},"Ensure your repository is ready for deployment:",[91,749,750,753,756],{},[94,751,752],{},"Make sure your build command is configured correctly",[94,754,755],{},"Test your build locally",[94,757,758],{},"Ensure all dependencies are in package.json",[75,760,762],{"id":761},"step-2-create-a-new-project","Step 2: Create a New Project",[361,764,765,771,774,777],{},[94,766,767,768],{},"Go to ",[111,769,770],{"href":113},"deployhub.com\u002Fsignup",[94,772,773],{},"Click \"New Project\"",[94,775,776],{},"Connect your repository",[94,778,779],{},"Configure build settings",[75,781,783],{"id":782},"step-3-configure-environment-variables","Step 3: Configure Environment Variables",[80,785,786],{},"Add your environment variables in the project settings. This includes:",[91,788,789,791,793],{},[94,790,277],{},[94,792,280],{},[94,794,795],{},"Third-party service credentials",[75,797,799],{"id":798},"step-4-test-with-preview-deployment","Step 4: Test with Preview Deployment",[80,801,802],{},"Before migrating traffic, create a preview deployment to test:",[91,804,805,808,811],{},[94,806,807],{},"Push a test branch",[94,809,810],{},"Verify the deployment works",[94,812,813],{},"Test all functionality",[75,815,817],{"id":816},"step-5-add-custom-domain","Step 5: Add Custom Domain",[80,819,820],{},"If you're migrating from another provider:",[361,822,823,826,829],{},[94,824,825],{},"Add your domain to DeployHub",[94,827,828],{},"Update DNS records (keep TTL low during migration)",[94,830,831],{},"Verify SSL certificate is provisioned",[75,833,835],{"id":834},"step-6-migrate-traffic","Step 6: Migrate Traffic",[80,837,838],{},"Once everything is tested:",[361,840,841,844,847],{},[94,842,843],{},"Update DNS records to point to DeployHub",[94,845,846],{},"Monitor traffic during migration",[94,848,849],{},"Keep old deployment running for a few days as backup",[75,851,853],{"id":852},"step-7-verify-and-optimize","Step 7: Verify and Optimize",[80,855,856],{},"After migration:",[91,858,859,862,865],{},[94,860,861],{},"Check analytics for any issues",[94,863,864],{},"Optimize performance settings",[94,866,867],{},"Set up monitoring alerts",[75,869,871],{"id":870},"framework-specific-tips","Framework Specific Tips",[383,873,598],{"id":597},[91,875,876,883],{},[94,877,878,879,882],{},"Ensure ",[564,880,881],{},"next.config.js"," has correct output settings",[94,884,885,886,889],{},"Use ",[564,887,888],{},"output: 'standalone'"," for optimal performance",[383,891,628],{"id":627},[91,893,894,900],{},[94,895,885,896,899],{},[564,897,898],{},"nuxt build"," as the build command",[94,901,902],{},"Configure runtimeConfig for environment variables",[383,904,906],{"id":905},"gatsby","Gatsby",[91,908,909,915],{},[94,910,911,912],{},"Build command: ",[564,913,914],{},"gatsby build",[94,916,917,918],{},"Output directory: ",[564,919,920],{},"public",[80,922,923],{},"Migrating to DeployHub is designed to be seamless. If you need help, our support team is available!",{"title":180,"searchDepth":181,"depth":181,"links":925},[926,927,928,929,930,931,932,933,934],{"id":736,"depth":181,"text":737},{"id":743,"depth":181,"text":744},{"id":761,"depth":181,"text":762},{"id":782,"depth":181,"text":783},{"id":798,"depth":181,"text":799},{"id":816,"depth":181,"text":817},{"id":834,"depth":181,"text":835},{"id":852,"depth":181,"text":853},{"id":870,"depth":181,"text":871,"children":935},[936,937,938],{"id":597,"depth":460,"text":598},{"id":627,"depth":460,"text":628},{"id":905,"depth":460,"text":906},"2024-05-05","How to migrate your existing applications to DeployHub",{"src":942},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F50\u002F640\u002F360",{},"\u002Fblog\u002Fanimals",{"title":725,"description":940},"3.blog\u002F5.animals","IQOuWSvDxbbY05FCQny_mWdswRLCb7mWTO9Xsj3zkxU",{"id":949,"title":950,"authors":951,"badge":955,"body":957,"date":1185,"description":1186,"extension":193,"image":1187,"meta":1189,"navigation":197,"path":1190,"seo":1191,"stem":1192,"__hash__":1193},"posts\u002F3.blog\u002F6.cryptocurrencies.md","Team Collaboration Best Practices",[952],{"name":66,"avatar":953},{"src":954},"https:\u002F\u002Fi.pravatar.cc\u002F128?u=5",{"label":956},"Team",{"type":72,"value":958,"toc":1164},[959,963,966,970,973,977,988,992,1002,1006,1017,1021,1032,1036,1040,1051,1055,1066,1070,1081,1085,1096,1100,1104,1112,1116,1127,1129,1140,1144,1147,1161],[75,960,962],{"id":961},"effective-team-collaboration-on-deployhub","Effective Team Collaboration on DeployHub",[80,964,965],{},"DeployHub is built for teams. Here's how to collaborate effectively.",[75,967,969],{"id":968},"role-based-access-control","Role-Based Access Control",[80,971,972],{},"Assign appropriate roles to team members:",[383,974,976],{"id":975},"owner","Owner",[91,978,979,982,985],{},[94,980,981],{},"Full access to all features",[94,983,984],{},"Billing management",[94,986,987],{},"Team management",[383,989,991],{"id":990},"admin","Admin",[91,993,994,997,999],{},[94,995,996],{},"Manage projects and settings",[94,998,172],{},[94,1000,1001],{},"Configure deployments",[383,1003,1005],{"id":1004},"developer","Developer",[91,1007,1008,1011,1014],{},[94,1009,1010],{},"Deploy applications",[94,1012,1013],{},"View logs and analytics",[94,1015,1016],{},"Manage environment variables",[383,1018,1020],{"id":1019},"viewer","Viewer",[91,1022,1023,1026,1029],{},[94,1024,1025],{},"View project status",[94,1027,1028],{},"Access documentation",[94,1030,1031],{},"Read-only access",[75,1033,1035],{"id":1034},"workflow-recommendations","Workflow Recommendations",[383,1037,1039],{"id":1038},"branch-protection","Branch Protection",[91,1041,1042,1045,1048],{},[94,1043,1044],{},"Protect main branch",[94,1046,1047],{},"Require pull request reviews",[94,1049,1050],{},"Enable status checks",[383,1052,1054],{"id":1053},"preview-deployments","Preview Deployments",[91,1056,1057,1060,1063],{},[94,1058,1059],{},"Review every pull request with preview deployments",[94,1061,1062],{},"Use preview comments for feedback",[94,1064,1065],{},"Test changes before merging",[383,1067,1069],{"id":1068},"deployment-strategy","Deployment Strategy",[91,1071,1072,1075,1078],{},[94,1073,1074],{},"Use feature branches for development",[94,1076,1077],{},"Deploy to staging before production",[94,1079,1080],{},"Use instant rollbacks if needed",[383,1082,1084],{"id":1083},"communication","Communication",[91,1086,1087,1090,1093],{},[94,1088,1089],{},"Use deployment comments for context",[94,1091,1092],{},"Link deployments to issues\u002Ftickets",[94,1094,1095],{},"Notify team of production deployments",[75,1097,1099],{"id":1098},"tips-for-remote-teams","Tips for Remote Teams",[383,1101,1103],{"id":1102},"standup-deployments","Standup Deployments",[91,1105,1106,1109],{},[94,1107,1108],{},"Share deployment status in daily standups",[94,1110,1111],{},"Highlight any issues or rollbacks",[383,1113,1115],{"id":1114},"documentation","Documentation",[91,1117,1118,1121,1124],{},[94,1119,1120],{},"Keep project README up to date",[94,1122,1123],{},"Document deployment procedures",[94,1125,1126],{},"Share runbooks for common issues",[383,1128,287],{"id":286},[91,1130,1131,1134,1137],{},[94,1132,1133],{},"Set up alerts for critical issues",[94,1135,1136],{},"Review analytics regularly as a team",[94,1138,1139],{},"Conduct performance reviews",[75,1141,1143],{"id":1142},"integrations","Integrations",[80,1145,1146],{},"Connect DeployHub with your existing tools:",[91,1148,1149,1152,1155,1158],{},[94,1150,1151],{},"Slack for deployment notifications",[94,1153,1154],{},"GitHub\u002FGitLab for PR integration",[94,1156,1157],{},"Jira for issue tracking",[94,1159,1160],{},"Datadog\u002FNew Relic for monitoring",[80,1162,1163],{},"By following these practices, your team will deploy faster and more reliably.",{"title":180,"searchDepth":181,"depth":181,"links":1165},[1166,1167,1173,1179,1184],{"id":961,"depth":181,"text":962},{"id":968,"depth":181,"text":969,"children":1168},[1169,1170,1171,1172],{"id":975,"depth":460,"text":976},{"id":990,"depth":460,"text":991},{"id":1004,"depth":460,"text":1005},{"id":1019,"depth":460,"text":1020},{"id":1034,"depth":181,"text":1035,"children":1174},[1175,1176,1177,1178],{"id":1038,"depth":460,"text":1039},{"id":1053,"depth":460,"text":1054},{"id":1068,"depth":460,"text":1069},{"id":1083,"depth":460,"text":1084},{"id":1098,"depth":181,"text":1099,"children":1180},[1181,1182,1183],{"id":1102,"depth":460,"text":1103},{"id":1114,"depth":460,"text":1115},{"id":286,"depth":460,"text":287},{"id":1142,"depth":181,"text":1143},"2024-05-10","How to work effectively with your team on DeployHub",{"src":1188},"https:\u002F\u002Fpicsum.photos\u002Fid\u002F60\u002F640\u002F360",{},"\u002Fblog\u002Fcryptocurrencies",{"title":950,"description":1186},"3.blog\u002F6.cryptocurrencies","lPJbYZz6cXAQbmhsdRf-_gZvVbFqdSRMckBsGxjdSo8",1777349420497]