{"id":140945,"date":"2026-11-04T03:02:39","date_gmt":"2026-11-04T03:02:39","guid":{"rendered":"\/in\/tutorials\/how-to-deploy-a-website-from-claude-code"},"modified":"2026-11-04T03:22:14","modified_gmt":"2026-11-04T03:22:14","slug":"how-to-deploy-a-website-from-claude-code","status":"publish","type":"post","link":"\/in\/tutorials\/how-to-deploy-a-website-from-claude-code\/","title":{"rendered":"How to deploy a website from Claude Code in 8 steps"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p class=\"wp-block-paragraph\">To deploy a website from Claude Code, <strong>review and test the project on your computer, prepare the files, connect them to a hosting provider, and publish the site<\/strong> to a public address that anyone can open in a browser.<\/p><p class=\"wp-block-paragraph\">Claude Code, Anthropic&rsquo;s artificial intelligence (AI) coding assistant, builds and edits websites inside your project folder, but it doesn&rsquo;t host them. Until you deploy the project, other people can&rsquo;t reach it through a public website address. Deployment puts the required site files or application on a hosting service that keeps it available online.<\/p><p class=\"wp-block-paragraph\">Before you start, you need access to Claude Code through a paid Claude plan or a Claude Console account, Anthropic&rsquo;s pay-as-you-go option for developers, plus a hosting plan that fits your project. Then there are eight steps to deploy a Claude Code website:<\/p><ol class=\"wp-block-list\">\n<li>Check the code Claude Code wrote for leftover files and exposed keys.<\/li>\n\n\n\n<li>Preview every page in your browser before going live.<\/li>\n\n\n\n<li>Find out whether the site needs extra preparation or a server to run.<\/li>\n\n\n\n<li>Send the code to GitHub or package it as a ZIP file.<\/li>\n\n\n\n<li>Link the project to your host through GitHub, a ZIP upload, or a connection tool.<\/li>\n\n\n\n<li>Enter the passwords, keys, and settings the server needs.<\/li>\n\n\n\n<li>Start the deployment from your host or from Claude Code.<\/li>\n\n\n\n<li>Open the live address and confirm everything works.<\/li>\n<\/ol><p class=\"wp-block-paragraph\">Hostinger Connector, included with Hostinger plans, shortens this process by linking Claude Code to your Hostinger account. After a one-time setup, Claude Code creates the website, uploads the files, and returns the live web address from a single request. In our test, that took about 3 minutes.<\/p><p class=\"wp-block-paragraph\">Failed deployments trace back to specific problems, such as missing environment variables, incorrect server settings, or missing private keys, and each has a fix. Once the site is live, add a custom domain and a note telling Claude Code which site to deploy to, making every later update simpler.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-what-you-need-before-deploying-a-claude-code-website\">What you need before deploying a Claude Code website<\/h2><p class=\"wp-block-paragraph\">You need four things to deploy a Claude Code website, plus two that depend on your project:<\/p><ul class=\"wp-block-list\">\n<li><strong>Your project folder.<\/strong> The folder where Claude Code saved your site. A plain HTML site&rsquo;s core files are HyperText Markup Language (HTML), Cascading Style Sheets (CSS), and JavaScript files, with <strong>index.html<\/strong> as the homepage. A framework project also has a <strong>package.json<\/strong> file that lists its tools and commands.<\/li>\n\n\n\n<li><strong>Claude Code in a terminal.<\/strong> The terminal is the app where you type text commands, like Terminal on macOS. You start Claude Code there by typing <strong>claude<\/strong>. Claude Code also runs as an extension in code editors like Visual Studio Code (an integrated development environment, or IDE), and <a data-click-id=\"hgr-post-content-link-deploying-from-an-ide\" data-wpel-link=\"internal\" href=\"\/in\/tutorials\/how-to-deploy-a-website-from-your-ide\/\" rel=\"follow\">deploying from an IDE<\/a> follows the same eight steps.<\/li>\n\n\n\n<li><strong>Claude Code access.<\/strong> Claude Code <a data-click-id=\"hgr-post-content-link-requires-a-pro-max-team-or-enterprise-plan\" data-wpel-link=\"external\" href=\"https:\/\/support.claude.com\/en\/articles\/11145838-using-claude-code-with-your-claude-subscription\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">requires a Pro, Max, Team, or Enterprise plan<\/a>, or a Claude Console account with pay-as-you-go credits. The free Claude plan doesn&rsquo;t include Claude Code.<\/li>\n\n\n\n<li><strong>A hosting plan.<\/strong> To<a data-click-id=\"hgr-post-content-link-in-tutorials-how-to-host-a-website\" aria-label=\"How to host a website\" href=\"\/in\/tutorials\/how-to-host-a-website\/\" data-wpel-link=\"internal\" rel=\"follow\"> <\/a><a data-click-id=\"hgr-post-content-link-host-a-website\" href=\"\/in\/tutorials\/how-to-host-a-website\/\" data-wpel-link=\"internal\" rel=\"follow\">host a website<\/a>, you need a plan that matches its type. Static sites need a service that can serve HTML, CSS, and JavaScript files, while sites that run code on the server need support for their language, like Node.js for JavaScript server apps or PHP (Hypertext Preprocessor) for PHP apps.<\/li>\n\n\n\n<li><strong>Node.js for framework projects.<\/strong> JavaScript framework projects need Node.js to preview and prepare the site on your computer, while plain HTML sites don&rsquo;t. Run <strong>node &ndash;version<\/strong> in the terminal to check whether it&rsquo;s installed.<\/li>\n\n\n\n<li><strong>A GitHub account (optional).<\/strong> GitHub stores an online copy of your code, which some hosting providers use to automatically publish and update your site.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Use Anthropic&rsquo;s <a data-click-id=\"hgr-post-content-link-official-install-command\" data-wpel-link=\"external\" href=\"https:\/\/code.claude.com\/docs\/en\/setup\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">official install command<\/a> for your system if Claude Code isn&rsquo;t installed yet. On macOS or Linux, run this in the terminal:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl -fsSL https:\/\/claude.ai\/install.sh | bash<\/pre><p class=\"wp-block-paragraph\">On Windows, run this command in PowerShell, the Windows app for typing commands:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">irm https:\/\/claude.ai\/install.ps1 | iex<\/pre><p class=\"wp-block-paragraph\">Then open a new terminal window and run <strong>claude &ndash;version<\/strong>. A working installation prints a version number. Type <strong>claude<\/strong> to start Claude Code and sign in with your Claude account.<\/p><p class=\"wp-block-paragraph\"><div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                On some Macs, the installer warns that <strong>~\/.local\/bin<\/strong> isn&rsquo;t in your PATH. That folder holds Claude Code, and PATH is the list of folders the terminal searches for commands. Until you fix it, typing <strong>claude<\/strong> returns a &ldquo;command not found&rdquo; error. Run the one-line fix the installer prints, then check <strong>claude &ndash;version<\/strong> again.\n            <\/p><\/div><\/p><p class=\"wp-block-paragraph\">Claude Code&rsquo;s permission mode controls which actions need your approval. Current terminal versions can start in auto mode, which reviews actions automatically.<\/p><p class=\"wp-block-paragraph\">For your first deployment, press <strong>Shift+Tab<\/strong> until the bottom line reads &ldquo;manual mode on,&rdquo; so Claude Code asks before most actions that change files, run commands, or use external services.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-1-review-the-project-claude-code-generated\">1. Review the project Claude Code generated<\/h2><p class=\"wp-block-paragraph\">Review the project by checking four things: the file your site opens first, leftover test files, addresses that only work on your computer, and secret keys that shouldn&rsquo;t be public.<\/p><p class=\"wp-block-paragraph\">A plain static HTML site typically needs an <strong>index.html <\/strong>in the directory published as the document root. Framework projects instead use the entry points and build\/start scripts specified in their configuration files, such as <strong>package.json<\/strong>.<\/p><p class=\"wp-block-paragraph\">Leftover test files, like sample pages or unused drafts, make the live site look unfinished and sometimes expose work you didn&rsquo;t mean to publish.<\/p><p class=\"wp-block-paragraph\">Addresses that start with <strong>localhost<\/strong>, like <strong>http:\/\/localhost:3000<\/strong>, point to your own computer. Visitors can&rsquo;t open them.<\/p><p class=\"wp-block-paragraph\">Secret keys include application programming interface (API) keys and the passwords that connect your site to external services like payment or email tools. Secret keys must stay out of the files you publish.<\/p><p class=\"wp-block-paragraph\">This review matters most when you&rsquo;re <a data-click-id=\"hgr-post-content-link-vibe-coding-a-website\" data-wpel-link=\"internal\" href=\"\/in\/tutorials\/how-to-vibe-code-website\/\" rel=\"follow\">vibe coding a website<\/a>: you describe what you want in plain language, and Claude Code writes code you won&rsquo;t read line by line. Leftover test files or exposed keys then go unnoticed.<\/p><p class=\"wp-block-paragraph\">Hand the whole review to Claude Code with a prompt or request like this:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Review this project before I deploy it. Check that it has the right entry point, list any leftover test or temporary files, and look for localhost addresses or secrets like API keys. Don't change anything yet.<\/pre><p class=\"wp-block-paragraph\">We ran this prompt on a two-file coffee shop site. Claude Code confirmed that <strong>index.html<\/strong> was at the top of the folder and that it loaded the design file, <strong>style.css<\/strong>, via a relative link. The review found no leftover files, local addresses, or keys.<\/p><p class=\"wp-block-paragraph\">A relative link finds files by their position in the project folder, so it keeps working after upload as long as the folder structure stays the same.<\/p><p class=\"wp-block-paragraph\">The review also flagged two things to consider before going live: the contact email would be visible to spam bots, and the copyright year in the footer was entered by hand, so it won&rsquo;t update automatically.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aeadc2d5ba1c\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aeadc2d5ba1c\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/11\/claude-code-pre-deployment-review.png\/public\" alt=\"Claude Code reviewing a coffee shop site before deployment and finding no leftover files, local addresses, or exposed keys\" class=\"wp-image-161198\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Claude Code fixes what it finds when you ask it to. Read each proposed change before you approve it, because every fix is a new edit to test in the next step.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-2-test-the-website-locally\">2. Test the website locally<\/h2><p class=\"wp-block-paragraph\">To test the website locally, open its homepage file in a browser, or start the local development server required by its framework, then check the pages and key functions before deployment.<\/p><p class=\"wp-block-paragraph\">For a plain HTML site, open the <strong>index.html<\/strong> file in your browser, or ask Claude Code to open it for you:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Open index.html in my browser so I can preview the site.<\/pre><p class=\"wp-block-paragraph\">Sites that load JavaScript modules or fetch local files often need a local development server because browsers restrict some requests from pages opened directly with a file:\/\/ address.<\/p><p class=\"wp-block-paragraph\">A framework project often needs a development server, which provides a preview while you edit. In the project folder, run the following commands separately: the first installs required packages, and the second starts the development server.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npm install \n\nnpm run dev<\/pre><p class=\"wp-block-paragraph\">The terminal then prints a local address to open in your browser. Projects made with Vite, a tool for creating React and Vue sites, use <strong>http:\/\/localhost:5173<\/strong> by default.<\/p><p class=\"wp-block-paragraph\">Check these parts of the site before moving on:<\/p><ul class=\"wp-block-list\">\n<li>Every page opens from the navigation menu.<\/li>\n\n\n\n<li>Images, fonts, and styles load correctly.<\/li>\n\n\n\n<li>Forms and buttons respond the way they should.<\/li>\n\n\n\n<li>The layout works in a narrow browser window, which shows how the site looks on phones.<\/li>\n\n\n\n<li>No red errors appear in the browser console, the panel that lists problems on the page. Open it with <strong>Cmd+Option+J<\/strong> in Chrome on macOS or <strong>Ctrl+Shift+J<\/strong> on Windows.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Describe the problem to Claude Code or paste the error message if something breaks, then test again until the site works.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-3-check-the-framework-and-build-requirements\">3. Check the framework and build requirements<\/h2><p class=\"wp-block-paragraph\">Check which framework your project uses, because it decides whether the site needs a build step, which turns your code into the final files browsers load, and whether it needs a server that keeps running.<\/p><p class=\"wp-block-paragraph\">Static sites send the same ready-made files to every visitor. Server apps run code on the server, for example, to log users in. Static sites built with a framework still need a build before they go online.<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td colspan=\"1\" rowspan=\"1\"><p><strong>Project type<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Examples<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Build step<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Hosting it needs<\/strong><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Plain HTML site<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>A homepage file with its style and script files<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>None<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>A service that accepts and serves uploaded static files<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Static framework site<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>React or Vue sites made with Vite, Astro, or Next.js configured for static export<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>npm run build<\/strong><span>&nbsp;creates the final files<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Static-file hosting for the built output, or a host that runs the build<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Server app<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Express apps, Next.js apps with server features<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Depends on the framework; plain Express apps need none<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>A plan that supports the app&rsquo;s language, like Node.js<\/span><\/p><\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">To find out which type you have, ask Claude Code:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Is this project static, or does it need a server to run? Tell me the build command and the output folder.<\/pre><p class=\"wp-block-paragraph\">For projects with a build step, run the build command and check that it finishes without errors:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npm run build<\/pre><p class=\"wp-block-paragraph\">The build saves the final files to an output folder. These are the typical default folders, which a project&rsquo;s settings can change:<\/p><ul class=\"wp-block-list\">\n<li>React, Vue, and other Vite projects use <strong>dist<\/strong>, and so does Astro.<\/li>\n\n\n\n<li>Next.js uses <strong>.next<\/strong> for server apps and <strong>out<\/strong> for static exports.<\/li>\n\n\n\n<li>Create React App uses <strong>build<\/strong>.<\/li>\n\n\n\n<li>Angular uses <strong>dist\/your-project-name\/browser<\/strong> in recent versions.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">Choose a Node.js version supported by the project and the hosting provider. Different versions can cause dependencies to build locally but fail online. Add a compatible version range to the engines.node field in package.json when appropriate, and verify the version actually selected by the host.<\/p><p class=\"wp-block-paragraph\">Hostinger supports Node.js 18, 20, 22, and 24, and uses 22 by default. Hostinger installs the packages and runs the build on the server for Node.js apps. Plain HTML sites skip the build entirely.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-4-prepare-your-project-files-for-upload\">4. Prepare your project files for upload<\/h2><p class=\"wp-block-paragraph\">To prepare your project files for upload, send them to a GitHub repository, an online folder for your code, or package them as a ZIP file for a one-time upload.<\/p><p class=\"wp-block-paragraph\">A repository keeps the history of every change. With automatic deployment enabled, the host rebuilds or republishes your site when you push changes to the connected branch.<\/p><p class=\"wp-block-paragraph\">Claude Code sets up Git and pushes the project for you. Git is the tool that saves snapshots of your code, called commits, and sends them to GitHub. Try a prompt like this:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Set up Git for this project, create a .gitignore file that excludes node_modules and .env, commit all files, and push the project to a new private GitHub repository called your-repository-name.<\/pre><p class=\"wp-block-paragraph\">The <strong>.gitignore<\/strong> file lists files Git should skip. Leave out <strong>node_modules<\/strong>, the folder of downloaded packages, because the host reinstalls them. Leave out <strong>.env<\/strong> too, because it holds your secret keys.<\/p><p class=\"wp-block-paragraph\">Your first push prompts you to sign in to GitHub if Git isn&rsquo;t already connected to your account. Run <strong>gh auth login<\/strong>, then approve the sign-in in your browser if Claude Code prompts you to use GitHub&rsquo;s terminal tool.<\/p><p class=\"wp-block-paragraph\">To push the project manually, create an empty repository on GitHub. Check that <strong>.gitignore<\/strong> excludes <strong>node_modules<\/strong> and every file with real keys, like <strong>.env<\/strong> or <strong>.env.local<\/strong>, then run these commands in the project folder:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git init \n\ngit add . \n\ngit status \n\ngit commit -m \"Initial commit\" \n\ngit branch -M main \n\ngit remote add origin https:\/\/github.com\/your-username\/your-repository.git \n\ngit push -u origin main<\/pre><p class=\"wp-block-paragraph\">Replace <strong>your-username<\/strong> and <strong>your-repository<\/strong> with your GitHub username and the repository name. The <strong>git status<\/strong> command lists the files about to be saved, so stop and fix <strong>.gitignore<\/strong> if a secret file shows up.<\/p><p class=\"wp-block-paragraph\">To deploy without Git, ask Claude Code to package the project as a ZIP file instead. Hosts that build the project for you need your original code without <strong>node_modules<\/strong>, while hosts that only store and display files need the contents of the output folder.<\/p><p class=\"wp-block-paragraph\">    <div class=\"announcement-block announcement-block--warning\">\n        <span class=\"announcement-block__heading\">\n            <svg width=\"24\" height=\"26\" viewBox=\"0 0 24 26\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                d=\"M12 23.5C17.799 23.5 22.5 18.799 22.5 13C22.5 7.20101 17.799 2.5 12 2.5C6.20101 2.5 1.5 7.20101 1.5 13C1.5 18.799 6.20101 23.5 12 23.5ZM13.637 8.65198C13.637 7.74791 12.9041 7.01501 12 7.01501C11.0959 7.01501 10.363 7.74791 10.363 8.65198C10.5335 10.5375 10.875 14.383 10.875 14.383C10.875 15.0043 11.3787 15.508 12 15.508C12.6213 15.508 13.125 15.0043 13.125 14.383V14.38L13.637 8.65198ZM11.9927 16.714C11.3714 16.714 10.8677 17.2177 10.8677 17.839C10.8677 18.4603 11.3714 18.964 11.9927 18.964H12.0073C12.6286 18.964 13.1323 18.4603 13.1323 17.839C13.1323 17.2177 12.6286 16.714 12.0073 16.714H11.9927Z\"\n                fill=\"#BE1025\"\/>\n            <\/svg>\n            Warning        <\/span>\n        <p class=\"announcement-block__content\">\n            Don't upload your .env file or add it to your repository. Anyone with access to the repository or the ZIP file can read the keys stored in it. Deleting the file doesn't make an already committed key safe, so replace that key with a new one.        <\/p>\n    <\/div>\n\n    <\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-5-connect-the-project-to-a-hosting-provider\">5. Connect the project to a hosting provider<\/h2><p class=\"wp-block-paragraph\">Connect your project to a hosting provider in one of three ways: from a linked GitHub repository, as a ZIP file uploaded to the provider&rsquo;s dashboard, or directly from Claude Code via the provider&rsquo;s connection tool.<\/p><p class=\"wp-block-paragraph\">Some cloud hosting services can be controlled from Claude Code through provider command-line tools, integrations, or Model Context Protocol (MCP) servers. MCP is a standard that helps AI coding assistants access external tools through defined interfaces; availability and permissions depend on the provider.<\/p><p class=\"wp-block-paragraph\">This table compares these methods, with Hostinger&rsquo;s connection tool listed separately:<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td colspan=\"1\" rowspan=\"1\"><p><strong>Method<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>How it works<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Best for<\/strong><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><strong>Cost<\/strong><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>GitHub-connected hosting<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>The host pulls code from the connected GitHub branch and publishes updates when automatic deployment is enabled<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Projects you&rsquo;ll keep updating<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Depends on the host<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>ZIP upload<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>You upload a ZIP file in the host&rsquo;s dashboard<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>One-time launches without Git<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Depends on the host<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Cloud platform terminal tool or MCP server<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Claude Code runs the platform&rsquo;s tools to deploy for you<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Developers who already use that platform<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Depends on the platform and its usage <\/span><span>limits<\/span><\/p><\/td><\/tr><tr><td colspan=\"1\" rowspan=\"1\"><p><span>Hostinger Connector<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Claude Code uses Hostinger&rsquo;s add-on, or plugin, to create the site and upload the files<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Hostinger users who want to deploy from the chat<\/span><\/p><\/td><td colspan=\"1\" rowspan=\"1\"><p><span>Connector is free; deployment needs compatible active hosting<\/span><\/p><\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">Hostinger users skip most of this manual work when they <a data-click-id=\"hgr-post-content-link-connect-claude-code-to-hostinger\" data-wpel-link=\"internal\" href=\"\/in\/connector\" rel=\"follow\">connect Claude Code to Hostinger<\/a> with Hostinger Connector, which packages, uploads, and publishes the site from the chat. To connect a project manually instead, use the Hostinger dashboard.<\/p><p class=\"wp-block-paragraph\">On Hostinger, framework projects like React, Vue, or Next.js apps run on <a data-click-id=\"hgr-post-content-link-hosting-for-web-apps\" data-wpel-link=\"internal\" href=\"\/in\/web-apps-hosting\" rel=\"follow\">hosting for web apps<\/a>, which recognizes the framework and fills in the setup details for you. The dashboard calls these projects Web Apps.<\/p><p class=\"wp-block-paragraph\">To deploy a framework project from GitHub in the Hostinger dashboard:<\/p><ol class=\"wp-block-list\">\n<li>Go to <strong>Websites<\/strong> &rarr; <strong>Create site<\/strong> &rarr; <strong>Web App<\/strong>.<\/li>\n\n\n\n<li>Enter your domain, or click <strong>Use temporary domain<\/strong> to start with a free address ending in hostingersite.com.<\/li>\n\n\n\n<li>Click <strong>Connect with GitHub<\/strong>, then sign in to grant Hostinger access to your repositories, including private ones.<\/li>\n\n\n\n<li>Select your repository, review the settings Hostinger detected, and click <strong>Deploy<\/strong>.<\/li>\n<\/ol><div class=\"wp-block-image wp-block-image aligncenter size-large\"><figure class=\"wp-lightbox-container\" data-wp-context='{\"imageId\":\"6aeadc2d5cff8\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aeadc2d5cff8\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/11\/1793759560029-0.png\/public\" alt=\"Deploy Your Web App screen in the Hostinger dashboard with options to connect GitHub or GitLab, or upload files\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">To upload a ZIP file instead, click <strong>Upload your files<\/strong> &rarr; <strong>Continue<\/strong> on the same screen. The uploader also accepts two other compressed formats: .tar.gz and .tgz.<\/p><p class=\"wp-block-paragraph\">Plain HTML sites use <strong>Websites<\/strong> &rarr; <strong>Create site<\/strong> &rarr; <strong>PHP\/HTML website<\/strong> instead. The PHP\/HTML website option covers sites made of ready-made files or written in PHP, a programming language for websites.<\/p><p class=\"wp-block-paragraph\">After you choose a domain for a PHP\/HTML website, open <strong>Manage site<\/strong> &rarr; <strong>Advanced<\/strong> &rarr; <strong>GIT<\/strong> to connect a repository, or <strong>Files<\/strong> &rarr; <strong>File Manager<\/strong> to upload the files.<\/p><figure class=\"wp-block-image size-full\"><a data-click-id=\"hgr-post-content-link-in-web-hosting\" href=\"\/in\/web-hosting\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2023\/11\/Web-hosting_in-text-banner.png\/public\" alt=\"Hostinger web hosting banner\" class=\"wp-image-98604\" srcset=\"https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/11\/Web-hosting_in-text-banner.png 1024w, https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/11\/Web-hosting_in-text-banner-300x88.png 300w, https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/11\/Web-hosting_in-text-banner-150x44.png 150w, https:\/\/www.hostinger.com\/in\/tutorials\/wp-content\/uploads\/sites\/52\/2023\/11\/Web-hosting_in-text-banner-768x225.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-6-configure-environment-variables-and-deployment-settings\">6. Configure environment variables and deployment settings<\/h2><p class=\"wp-block-paragraph\">Add required environment variables in the hosting provider&rsquo;s deployment settings, and confirm the build command, output directory, runtime version, and entry file where applicable. Plain HTML sites with no secrets or build steps may not need these settings.<\/p><p class=\"wp-block-paragraph\">Local environment values often live in a <strong>.env<\/strong> file, which should stay out of Git and uploaded static assets. Define server secrets in your hosting environment instead. Remember that environment variables embedded into a browser build can be public even if you did not commit the <strong>.env<\/strong> file.<\/p><p class=\"wp-block-paragraph\">Ask Claude Code which variables the project expects, so none are missing on the live site:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">List every environment variable this project uses, what each one is for, and whether it's needed while building or while the site runs. Don't show their values.<\/pre><p class=\"wp-block-paragraph\">Add each variable in your host&rsquo;s settings. On Hostinger, the Web App deploy settings screen has a <strong>Set environment variables<\/strong> section, where you add values one by one or upload your <strong>.env<\/strong> file with <strong>Import .env<\/strong>. Hostinger stores the values encrypted.<\/p><p><div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                Don&rsquo;t put secrets in variables that start with <strong>VITE_<\/strong> or <strong>NEXT_PUBLIC_<\/strong>, because those values end up in the code visitors&rsquo; browsers download. Keep secrets in server-only variables, and ask Claude Code to check that no secret reaches browser code.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\">Deployment settings are often referred to as build settings. On Hostinger, they&rsquo;re on the same screen as the environment variables:<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td><strong>Setting<\/strong><\/td><td><strong>What it does<\/strong><\/td><td><strong>Example<\/strong><\/td><\/tr><tr><td>Build command<\/td><td>Runs the build<\/td><td><strong>npm run build<\/strong><\/td><\/tr><tr><td>Output directory<\/td><td>Holds the final files from the build<\/td><td><strong>dist<\/strong><\/td><\/tr><tr><td>Node.js version<\/td><td>Builds and runs the project<\/td><td><strong>22<\/strong><\/td><\/tr><tr><td>Entry file<\/td><td>The file that starts a server app<\/td><td><strong>server.js<\/strong><\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">Hostinger attempts to detect the framework, build settings, and Node.js version from the project. Always review the result. If the framework is not recognized, select <strong>Other<\/strong> and supply the needed build command, output directory, or server entry file based on the project.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-7-publish-the-website\">7. Publish the website<\/h2><p class=\"wp-block-paragraph\">To publish the website, click the host&rsquo;s <strong>Deploy<\/strong> button, push your latest changes to GitHub, or ask Claude Code to deploy, depending on the method you chose.<\/p><p class=\"wp-block-paragraph\">For a source-based framework deployment, the host installs dependencies, runs the configured build, and publishes the result. The build log records progress and errors. Uploading ready-made static files skips dependency installation and the build.<\/p><p class=\"wp-block-paragraph\">On Hostinger, the site&rsquo;s <strong>Deployments<\/strong> section displays logs for the last 10 builds. Installing packages and running the build each have a 15-minute limit.<\/p><p class=\"wp-block-paragraph\">The site goes live on a free address ending in <strong>hostingersite.com<\/strong> if you chose a temporary domain, and it stays there until you connect your own domain.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-8-verify-the-live-site\">8. Verify the live site<\/h2><p class=\"wp-block-paragraph\">To verify the live site, open its public URL in a browser and check that everything works as it did on your computer.<\/p><p class=\"wp-block-paragraph\">Go through this checklist on the live site:<\/p><ul class=\"wp-block-list\">\n<li>Every page opens, and links point to the live address instead of localhost.<\/li>\n\n\n\n<li>Images, fonts, and styles load.<\/li>\n\n\n\n<li>Forms submit, and features that depend on API keys respond.<\/li>\n\n\n\n<li>The site loads over HTTPS (Hypertext Transfer Protocol Secure), the encrypted connection, with no security warnings. Click the icon next to the address to see the connection details.<\/li>\n\n\n\n<li>The layout works on a real phone, since a narrow browser window doesn&rsquo;t show every mobile issue.<\/li>\n<\/ul><p class=\"wp-block-paragraph\">On our test site, HTTPS worked from the moment the site went live, and the mobile layout looked right on an Android phone.<\/p><p class=\"wp-block-paragraph\">Paste the error message or a screenshot into Claude Code if something doesn&rsquo;t work, then approve the fix and redeploy.<\/p><p class=\"wp-block-paragraph\">Hard-refresh the page with <strong>Cmd+Shift+R<\/strong> on macOS or <strong>Ctrl+Shift+R<\/strong> on Windows after each redeploy to ensure the browser loads the new version instead of a cached copy.<\/p><p class=\"wp-block-paragraph\">Each subsequent update repeats this cycle: edit the site in Claude Code, push the changes or upload a new ZIP file, wait for the build to complete in the hosting dashboard, and check the live site again.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-how-to-deploy-a-website-from-claude-code-with-hostinger-connector\">How to deploy a website from Claude Code with Hostinger Connector<\/h2><p class=\"wp-block-paragraph\">To deploy a website from Claude Code with Hostinger Connector, <strong>install Hostinger&rsquo;s plugin, sign in to your Hostinger account, and ask Claude Code to deploy the project<\/strong>. Claude Code then creates the site, uploads the files, and returns the live web address.<\/p><p class=\"wp-block-paragraph\">With Connector, the edit, upload, and publish cycle happens in the Claude Code chat, without switching between Claude Code, GitHub, the terminal, and the Hostinger dashboard.<\/p><p class=\"wp-block-paragraph\">You can request deployment in plain language while Claude Code runs the supported tools. You still need to review the target website, requested permissions, and deployment settings.<\/p><p class=\"wp-block-paragraph\">Connector is built on MCP, and Hostinger lists Claude Code as an officially supported way to deploy websites and Node.js apps.<\/p><p class=\"wp-block-paragraph\">Where the site runs depends on the project. Node.js apps deploy as Web Apps, available on the Unlimited and Cloud hosting plans. Static sites, including the built files of React, Vue, or Astro projects, deploy as regular websites.<\/p><p><div class=\"announcement-block announcement-block--important\">\n            <span class=\"announcement-block__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                          d=\"M12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5C6.20101 1.5 1.5 6.20101 1.5 12C1.5 17.799 6.20101 22.5 12 22.5ZM13.637 7.65198C13.637 6.74791 12.9041 6.01501 12 6.01501C11.0959 6.01501 10.363 6.74791 10.363 7.65198C10.5335 9.53749 10.875 13.383 10.875 13.383C10.875 14.0043 11.3787 14.508 12 14.508C12.6213 14.508 13.125 14.0043 13.125 13.383V13.38L13.637 7.65198ZM11.9927 15.714C11.3714 15.714 10.8677 16.2177 10.8677 16.839C10.8677 17.4603 11.3714 17.964 11.9927 17.964H12.0073C12.6286 17.964 13.1323 17.4603 13.1323 16.839C13.1323 16.2177 12.6286 15.714 12.0073 15.714H11.9927Z\"\n                          fill=\"#FEA419\"\/>\n                <\/svg>\n                Important\n            <\/span>\n            <p class=\"announcement-block__content\">\n                Connector uploads static sites as ready-made files, with no build step on the server. For Node.js apps, the uploaded ZIP file can&rsquo;t exceed 50 megabytes (MB) and should exclude <strong>node_modules<\/strong> and build folders, as Hostinger installs packages and runs the build itself.\n            <\/p><\/div>\n\n\n\n<\/p><p class=\"wp-block-paragraph\">We tested this flow in October 2026 using Claude Code v2.1.304 on macOS, the official Hostinger plugin, and a two-file site. Connector set it up as a PHP\/HTML website because the site was plain HTML.<\/p><p class=\"wp-block-paragraph\">Our test didn&rsquo;t cover framework projects, GitHub-based deployment, or Windows. The steps for those follow Anthropic&rsquo;s and Hostinger&rsquo;s official documentation instead.<\/p><p>        <div class=\"protip\">\n            <div class=\"protip__heading\">\n                <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                    <path d=\"M1.49234 23.5024C1.23229 23.5024 0.972242 23.4024 0.782206 23.2123C0.562165 22.9923 0.452144 22.6822 0.502153 22.3722C0.562165 21.9221 1.14227 17.9113 3.00262 16.351C3.63274 15.8209 4.43289 15.5509 5.26305 15.5609C6.09321 15.5909 6.87335 15.9109 7.47347 16.4911C8.6937 17.6913 8.76371 19.6717 7.6435 20.9919C6.0832 22.8523 2.08245 23.4324 1.63237 23.4924C1.59236 23.4924 1.54235 23.4924 1.50234 23.4924L1.49234 23.5024ZM5.16303 17.5613C4.84297 17.5613 4.53291 17.6713 4.29287 17.8813C3.60274 18.4614 3.07264 19.9317 2.75258 21.242C4.06282 20.9219 5.5331 20.3918 6.11321 19.7017C6.55329 19.1716 6.54329 18.3814 6.0832 17.9213C5.85316 17.7013 5.5431 17.5713 5.20304 17.5613C5.19304 17.5613 5.17303 17.5613 5.16303 17.5613ZM11.7243 21.8821C11.4942 21.8821 11.2642 21.8021 11.0841 21.652C10.8541 21.462 10.7241 21.1819 10.7241 20.8819V15.9109L8.08358 13.2705H3.11264C2.81259 13.2705 2.53254 13.1404 2.3425 12.9104C2.15246 12.6803 2.07245 12.3803 2.12246 12.0902C2.19247 11.7102 2.84259 8.36953 4.70294 7.12929C6.33325 6.04909 8.96375 6.49918 10.244 6.80923C11.5442 4.96889 13.2546 3.4286 15.2349 2.33839C17.4553 1.11816 19.9858 0.518051 22.4963 0.498047C23.0464 0.498047 23.4865 0.948132 23.4865 1.49824C23.4865 5.0389 22.3763 9.97983 17.1753 13.7605C17.4853 15.0408 17.9354 17.6613 16.8552 19.2816C15.615 21.1419 12.2744 21.7921 11.8943 21.8621C11.8343 21.8721 11.7743 21.8821 11.7143 21.8821H11.7243ZM12.7245 16.181V19.6016C13.7146 19.2916 14.7948 18.7915 15.2049 18.1814C15.675 17.4812 15.605 16.091 15.385 14.9008C14.5248 15.3808 13.6346 15.8109 12.7245 16.181ZM9.66388 12.0302L11.9643 14.3307C13.1845 13.8306 14.3648 13.2204 15.485 12.5103C19.9358 9.51974 21.2361 5.60901 21.4561 2.53843C19.6157 2.67846 17.8254 3.20856 16.2051 4.09872C14.2847 5.14892 12.6544 6.68921 11.4942 8.54956C10.7841 9.65977 10.174 10.82 9.66388 12.0302ZM4.39289 11.2701H7.81353C8.1936 10.3599 8.63368 9.46974 9.11377 8.60957C7.92355 8.38953 6.51329 8.31952 5.81315 8.78961C5.19304 9.19968 4.70294 10.3099 4.39289 11.2701Z\" fill=\"#673DE6\"\/>\n                <\/svg>\n                <p class=\"protip__title\">\n                    Pro tip                <\/p>\n            <\/div>\n            <p class=\"protip__content\">Slash commands like <strong>\/plugin<\/strong> and <strong>\/mcp<\/strong> only work when the slash is the first character you type. Claude Code treats the command as a normal chat message if there's a space before it.<\/p>\n                    <\/div>\n        \n\n\n\n<\/p><p class=\"wp-block-paragraph\">To set up Hostinger Connector and deploy your site:<\/p><ol class=\"wp-block-list\">\n<li><strong>Install the official Hostinger plugin.<\/strong> Type this command in Claude Code, then choose <strong>Install for you (user scope)<\/strong> so the plugin works in every project:<br><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">\/plugin install hostinger@claude-plugins-official<\/code><br>Alternatively, type <strong>\/plugin<\/strong> and search for hostinger in the <strong>Discover<\/strong> tab, or run <strong>claude plugin install hostinger@claude-plugins-official<\/strong> in the terminal, outside Claude Code. With user scope, the plugin also works in the Claude desktop app&rsquo;s <strong>Code<\/strong> tab and in VS Code, since all three share the same settings on your computer.<\/li>\n\n\n\n<li><strong>Load the plugin.<\/strong> Run <strong>\/reload-plugins<\/strong> if the install summary asks you to. Claude Code confirms that it loaded one plugin and one MCP server. That server is what connects Claude Code to Hostinger.<\/li>\n\n\n\n<li><strong>Sign in to your Hostinger account.<\/strong> Run <strong>\/mcp<\/strong>, select <strong>plugin:hostinger:hostinger<\/strong>, and press <strong>Enter<\/strong>. Sign in to Hostinger in the browser window that opens. Once the connection works, the status shows a green check.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aeadc2d6386a\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aeadc2d6386a\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/11\/image-1.png\/public\" alt=\"Claude Code MCP menu showing the Hostinger plugin server connected with a green check mark\" class=\"wp-image-161201\" style=\"aspect-ratio:1.8407079646017699\" title=\"3-claude-code-mcp-hostinger-connected\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"4\" class=\"wp-block-list\">\n<li><strong>Confirm the connected account.<\/strong> Ask Claude Code to show what it can see:<br><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Which Hostinger account are you connected to? List my active hosting plans and websites. Don't change anything.<\/code><br>When we tried this, the plugin listed the account&rsquo;s plans and websites but not its email address. Compare the list with your Hostinger dashboard to be sure.<\/li>\n\n\n\n<li><strong>Ask Claude Code to deploy.<\/strong> Name a new website or a specific domain in the prompt, and ask for a plan first:<br><code data-enlighter-language=\"generic\" class=\"EnlighterJSRAW\">Deploy this site to Hostinger as a brand-new website on a free temporary subdomain. Don't deploy to or modify any of my existing websites. Before you create or upload anything, tell me your plan step by step and wait for my OK.<\/code><\/li>\n\n\n\n<li><strong>Review the plan and approve each action.<\/strong> Our plan had seven stages: reserve a free address, create an empty website, wait for setup, zip the files, upload them through a one-time link, unpack them into the site&rsquo;s <strong>public_html<\/strong> folder, and verify the live page. The <strong>public_html<\/strong> folder holds the files visitors see.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aeadc2d670b3\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aeadc2d670b3\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/11\/image-2.png\/public\" alt=\"Claude Code listing a seven-step plan to deploy a site to a new Hostinger temporary address\" class=\"wp-image-161202\" style=\"aspect-ratio:1.4181818181818182\" title=\"4-claude-code-hostinger-deployment-plan\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">This is the rule we recommend for every deployment: <strong>plan first, approve second<\/strong>. Ask Claude Code for its deployment plan before it touches your hosting, then check the target domain in the plan before you approve anything. In our test, the plan named the new address up front.<\/p><p class=\"wp-block-paragraph\">About 3 minutes after we approved the plan, the site was live on its new <strong>hostingersite.com<\/strong> address, and HTTPS already worked.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aeadc2d6a44d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aeadc2d6a44d\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/11\/claude-code-website-live-on-hostinger.png\/public\" alt=\"Porto Beans test site live on a Hostinger temporary domain over HTTPS, showing its header, about, menu, and contact sections\" class=\"wp-image-161200\" style=\"aspect-ratio:1.1223021582733812\" title=\"claude-code-website-live-on-hostinger\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Claude Code then checked the live page, removed the uploaded ZIP file from the server, and reported that the account&rsquo;s 12 existing websites were untouched.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"6aeadc2d6d946\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6aeadc2d6d946\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on--pointerdown=\"actions.preloadImage\" data-wp-on--pointerenter=\"actions.preloadImageWithDelay\" data-wp-on--pointerleave=\"actions.cancelPreload\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2026\/11\/image-3.png\/public\" alt=\"Claude Code confirming the site is live on Hostinger over HTTPS, with the uploaded ZIP file removed\" class=\"wp-image-161203\" style=\"aspect-ratio:2.1591695501730106\" title=\"5-claude-code-hostinger-deployment-result\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" data-wp-bind--aria-label=\"state.thisImage.triggerButtonAriaLabel\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.thisImage.buttonRight\" data-wp-style--top=\"state.thisImage.buttonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p class=\"wp-block-paragraph\">Expect several approval prompts along the way. In our test, manual mode asked before each Hostinger action and terminal command, including the zip and upload steps. Manual mode takes a few extra clicks, but you see every change before it reaches your hosting account.<\/p><p class=\"wp-block-paragraph\">    <div class=\"announcement-block announcement-block--warning\">\n        <span class=\"announcement-block__heading\">\n            <svg width=\"24\" height=\"26\" viewBox=\"0 0 24 26\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n                d=\"M12 23.5C17.799 23.5 22.5 18.799 22.5 13C22.5 7.20101 17.799 2.5 12 2.5C6.20101 2.5 1.5 7.20101 1.5 13C1.5 18.799 6.20101 23.5 12 23.5ZM13.637 8.65198C13.637 7.74791 12.9041 7.01501 12 7.01501C11.0959 7.01501 10.363 7.74791 10.363 8.65198C10.5335 10.5375 10.875 14.383 10.875 14.383C10.875 15.0043 11.3787 15.508 12 15.508C12.6213 15.508 13.125 15.0043 13.125 14.383V14.38L13.637 8.65198ZM11.9927 16.714C11.3714 16.714 10.8677 17.2177 10.8677 17.839C10.8677 18.4603 11.3714 18.964 11.9927 18.964H12.0073C12.6286 18.964 13.1323 18.4603 13.1323 17.839C13.1323 17.2177 12.6286 16.714 12.0073 16.714H11.9927Z\"\n                fill=\"#BE1025\"\/>\n            <\/svg>\n            Warning        <\/span>\n        <p class=\"announcement-block__content\">\n            Claude Code sometimes suggests your next prompt in gray text, which you accept by pressing Tab. In our test, the suggestion was to deploy the site to one of the account's existing websites, thereby replacing that site's files. Don't accept suggestions like this. Type your own prompt with a new website or the exact domain you want.        <\/p>\n    <\/div>\n\n    <\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-how-to-fix-common-claude-code-deployment-errors\">How to fix common Claude Code deployment errors<\/h2><p class=\"wp-block-paragraph\">To fix common Claude Code deployment errors, <strong>identify differences between your computer<\/strong> <strong>and the server and correct them<\/strong>, such as a missing file, an incorrect setting, or a different software version.<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td><strong>Error<\/strong><\/td><td><strong>Likely cause<\/strong><\/td><td><strong>How to fix it<\/strong><\/td><\/tr><tr><td>The build works on your computer but fails on the server<\/td><td>A different Node.js version, or a package missing from <strong>package.json<\/strong><\/td><td>Match the Node.js version in the <strong>engines.node<\/strong> field and ask Claude Code to add missing packages to <strong>package.json<\/strong><\/td><\/tr><tr><td>The build stops before finishing<\/td><td>Installing packages or running the build takes longer than the host allows, which is 15 minutes each on Hostinger<\/td><td>Remove unused packages and check the build log for the slow stage<\/td><\/tr><tr><td>A static site shows a 404 (page not found) error or a blank page<\/td><td>Files missing or uploaded to the wrong folder<\/td><td>Check that <strong>index.html<\/strong> or the build output sits at the top of the site folder, which is <strong>public_html<\/strong> on Hostinger<\/td><\/tr><tr><td>Pages other than the homepage show a 404 error when refreshed<\/td><td>A single-page app, a site that loads every page through <strong>index.html<\/strong>, without a fallback rule<\/td><td>Ask Claude Code to add a rule that sends unknown addresses to <strong>index.html<\/strong>, for example, in the site&rsquo;s <strong>.htaccess<\/strong> settings file<\/td><\/tr><tr><td>A server app shows an error page<\/td><td>Wrong deployment settings or a crash when the app starts<\/td><td>Check the build settings and the app&rsquo;s logs, then share the error with Claude Code<\/td><\/tr><tr><td>The page loads without styles or images<\/td><td>A wrong output folder, or file paths that only work on your computer<\/td><td>Set the output directory to the framework&rsquo;s output folder, and ask Claude Code to switch to file paths that work on any server<\/td><\/tr><tr><td>Features that use API keys fail only on the live site<\/td><td>Missing environment variables, or code that still points to localhost<\/td><td>Add every variable in the host&rsquo;s settings and replace local addresses with live web addresses<\/td><\/tr><tr><td>The Hostinger plugin shows that it needs authentication in <strong>\/mcp<\/strong><\/td><td>An expired or missing Hostinger sign-in<\/td><td>Select <strong>plugin:hostinger:hostinger<\/strong> in <strong>\/mcp<\/strong> and sign in again<\/td><\/tr><tr><td>A Connector upload of a Node.js app fails<\/td><td>The ZIP file is over 50 MB, for example, because it includes <strong>node_modules<\/strong> or build folders<\/td><td>Exclude <strong>node_modules<\/strong> and build folders from the ZIP file<\/td><\/tr><\/tbody><\/table><\/figure><p class=\"wp-block-paragraph\">For any failed build, copy the build log into Claude Code and ask what went wrong. Claude Code reads the error and suggests a fix to test on your computer before redeploying. Web Apps on Hostinger also have an AI troubleshooter for failed builds.<\/p><h2 class=\"wp-block-heading h-t-title-2\" id=\"h-what-to-do-after-deploying-your-claude-code-website\">What to do after deploying your Claude Code website<\/h2><p class=\"wp-block-paragraph\">After your Claude Code website goes live, connect a custom domain, redeploy as the project changes, save which site Claude Code should deploy to, and monitor each new deployment.<\/p><p class=\"wp-block-paragraph\">Connect a custom domain to replace the temporary address, either in the Hostinger dashboard or through a supported Connector action. Point the domain to the correct site and allow its free Secure Sockets Layer (SSL) certificate to finish issuing before checking HTTPS on the new address.<\/p><p class=\"wp-block-paragraph\">Redeploy whenever you change the site by asking Claude Code to update the same address. In our test, this prompt changed the site&rsquo;s tagline and redeployed it in under a minute:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Change the tagline to \"Small-batch coffee, roasted in Porto.\" and redeploy the site to domain.tld only. <\/pre><p class=\"wp-block-paragraph\">Pushes to the connected branch automatically start a new deployment if your project is connected to GitHub and automatic deployment is enabled.<\/p><p class=\"wp-block-paragraph\">Save the site Claude Code should deploy to in a <a data-click-id=\"hgr-post-content-link-claude-md-file\" href=\"https:\/\/code.claude.com\/docs\/en\/memory\" target=\"_blank\" rel=\"noopener\">CLAUDE.md file<\/a> in the project folder, so future sessions have that context. Claude Code reads the file at the start of every session, which reduces the chance of deploying to the wrong site. A short rule is enough:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">Deploy this project to domain.tld only. Don't deploy to or modify any other website in the Hostinger account.<\/pre><p class=\"wp-block-paragraph\">The rule guides Claude Code, but doesn&rsquo;t block other sites, so still check the domain in the deployment plan before you approve it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>To deploy a website from Claude Code, review and test the project on your computer, prepare the files, connect them to a hosting provider, and publish the site to a public address that anyone can open in a browser. Claude Code, Anthropic&rsquo;s artificial intelligence (AI) coding assistant, builds and edits websites inside your project folder, [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/in\/tutorials\/how-to-deploy-a-website-from-claude-code\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":356,"featured_media":140946,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to deploy a website from Claude Code in 8 steps","rank_math_description":"How to deploy a website from Claude Code with GitHub, a ZIP upload, or Hostinger Connector, including the settings to check and errors to avoid.","rank_math_focus_keyword":"how to deploy a website from claude code","footnotes":""},"categories":[22661],"tags":[],"class_list":["post-140945","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hosting"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0},{"locale":"en-GB","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-deploy-a-website-from-claude-code\/","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts\/140945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/users\/356"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/comments?post=140945"}],"version-history":[{"count":1,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts\/140945\/revisions"}],"predecessor-version":[{"id":140949,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/posts\/140945\/revisions\/140949"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/media\/140946"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/media?parent=140945"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/categories?post=140945"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/in\/tutorials\/wp-json\/wp\/v2\/tags?post=140945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}