Getting started
Set up your website hosting
Take your website from download to live domain. Preview it, publish it, and keep it up to date with your own host.
This guide covers the No hosting option. The $500 payment covers the website code. There is no monthly Webrenew fee. Hosting and domain costs depend on the providers you choose.
01
Get your website files
The download contains the website source, page content, local images, and this guide. Keep a backup of the original ZIP.
- Sign in to Webrenew with the email address used at checkout.
- Open Downloads and select Download code beside the website order.
- Extract the ZIP into a folder on the computer. Open the folder that contains package.json and site-content.json.
If the download is not ready yet, wait for the download email. Contact Webrenew if a paid order does not appear.
02
Install the tools
Use Node.js 22 or a newer LTS release. The Node.js installer includes npm, which installs the website packages.
- Install an LTS version of Node.js from the official download page.
- Open the website folder in a code editor such as Visual Studio Code. Select Terminal → New Terminal.
- Run these commands in that terminal, one line at a time. Keep an internet connection for package and font downloads.
node --version
npm --version
npm installKeep the package-lock.json file that npm creates. It records the package versions for future installs.
03
Preview on your computer
Run the command below. Open the Local address shown in the terminal, usually http://localhost:3000. Keep the terminal open during the preview.
npm run devCheck every page, photo, phone link, and contact detail. Press Ctrl+C in the terminal to stop the preview.
04
Build the files for your host
Stop the preview, then run the build command in the same website folder.
npm run buildA successful build creates out/ with index.html, page folders, and assets. Upload this output to a static host. Keep the source folder for future edits.
05
Publish with Cloudflare Pages
Use this option to upload the built files from the computer without Git. Check Cloudflare plan limits before launch.
- Sign in to Cloudflare and open Workers & Pages.
- Select Create application, then the Pages Get started option and Drag and drop your files.
- Name the project. Upload the out folder from the successful build, then select Deploy site.
- Open the pages.dev address shown for the project. Check every page before domain setup.
Upload the built out folder, not the original download ZIP. Direct Upload projects need a new project to switch to Git-based deployments later.
06
Or publish with Vercel
Use this option if a Git repository is part of the workflow. Vercel can rebuild the site after each push. Choose a plan that permits the intended use.
- Create a private Git repository for the extracted source. Include package-lock.json and the supplied .gitignore file.
- In Vercel, create a project and import that repository. Set the root to the folder that contains package.json.
- Set Framework Preset to Other. Set Install Command to npm ci.
- Set Build Command to npm run build. Set Output Directory to out.
- Select Node.js 22 or a newer supported LTS release. Leave Webrenew environment variables unset.
- Deploy the project. Open its vercel.app address and check every page.
Keep node_modules, .next, and local environment files out of Git. The supplied .gitignore covers these paths.
07
Connect your domain
Start after the host-provided address works. DNS records tell browsers which host serves the domain.
- Add the domain in the hosting project first. For Cloudflare Pages, open Custom domains. For Vercel, open Settings → Domains.
- Follow the host's instructions at the domain's DNS provider. Copy the records shown for that project.
- For a Cloudflare Pages root domain such as example.com, use Cloudflare nameservers. A subdomain can use a CNAME at another DNS provider.
- Preserve email records when DNS providers change. Copy the MX records and email-related TXT records before the nameserver change.
- Wait for the host to confirm the domain and HTTPS certificate. Open the HTTPS address and test every page.
Add both the root domain and www to support both addresses. Choose the main address in the host's settings and redirect the other address to it.
08
Edit and publish updates
Edit text and page content in site-content.json. Each entry in pages has its own path, title, and config. Keep the JSON quotes and commas intact.
Store local photos in public/. Reference public/photo.jpg as /photo.jpg in the content. Keep image paths the same unless the files change.
Update each page's config.seo.siteUrl to the final website address. Components live in kits/ and shared styles live in app/globals.css.
- Make a backup or Git commit before edits. Preview the changes with npm run dev.
- Run npm run build after the changes pass the preview check.
- For Cloudflare Direct Upload, create a new production deployment in the same project and upload the new out folder.
- For Vercel Git deployments, commit and push the source changes to the production branch. Check the finished deployment.
External photo and map URLs still depend on their providers. Local images travel with the download. Review package updates periodically and test before each release.
09
Understand the contact form
The exported contact form opens the visitor's email app with a prepared message. The visitor must send that email. It does not send email from a server or store leads in Webrenew.
For automatic delivery, connect a form service in kits/home-services/contact-form.tsx. Follow that service's setup guide. Keep private API keys out of browser code and the static files.
Test the form on a phone and a computer. Confirm the destination email address in site-content.json before launch.
10
Fix common setup problems
Node or npm not found: install Node.js, then close and reopen the terminal.
package.json not found: open the terminal in the extracted website folder that contains that file.
Build fails after an edit: read the first error. Check JSON syntax, image paths, and the file named in the error.
Font download fails: check the internet connection and retry the build. The build downloads fonts.
404 after upload: confirm that index.html is at the host's output root. Upload all of out/ with _next and page folders.
Images do not load: preserve filename case and upload every asset folder. Check whether an external image provider is available.
Domain does not work: first check the host-provided address. Then compare DNS records with the hosting project's domain instructions.
Form does not send automatically: the default form opens an email app. See the contact form section to add a form service.