Skip to content
New: Customize your theme with an AI assistant. Read the guide

Deployment & Launch

Taskly builds a static site into dist/, so it runs on any static host. It ships ready-made settings for Netlify, Vercel, and Cloudflare Pages.

SettingValue
Build commandnpm run build
Output directorydist
Node.js version22.12.0 or later
Package managernpm (package-lock.json)

Before You Launch

Go through this list once. Each item links to the page that explains it.

  • [site] baseUrl is your real address, not the shipped https://example.com placeholder, and npm run build shows no [site] warning (SEO & AI Visibility)
  • Site name, tagline (config.toml and site.tagline in the i18n files), logo (and logoDark for the dark footer if your logo is dark), favicon, social image, and colors are yours (Quick Start)
  • The homepage metaTitle and metaDescription are yours (they name the theme as shipped)
  • The contact, demo request, and newsletter forms post to your own accounts (Forms)
  • The emails, booking slots, and support details on the contact page are yours (contact-cards-section.md and contact-message-section.md)
  • The log-in and sign-up screens post to your app (form.action in src/content/auth/), or are deleted
  • PUBLIC_DEMO_MODE is not set in your host’s environment variables or a .env file
  • The Home and Pages demo menus and the Homepages footer column are hidden or replaced (Menus)
  • Your homepage uses the footer you want (footerLayout: wordmark on / as shipped) and the wordmark footer shows your name (Footer & CTA)
  • Demo pages you don’t need are deleted, for example the extra homepages, /elements/, and /status/ if you don’t run a status page (Pages)
  • Sample content is replaced: reviews and ratings, customer logos, people, prices, numbers, the dashboard sample data, blog posts, changelog, integrations, templates, solutions, and help links (# placeholders). The sample job roles are deleted or replaced with real openings (Collections)
  • The status page data is yours, or the page is a draft
  • The announcement bar has your message, or is turned off
  • The privacy policy, terms, and cookie policy are reviewed for your business, and their sample notice removed
  • Social links in src/config/social.json are yours
  • Analytics scripts are in [head], gated on consent if the cookie banner is on (Cookies & Analytics)
  • npm run astro-check and npm run build finish without errors, and you have opened every page you changed

Deploy

  1. Push your project to GitHub, GitLab, or Bitbucket.
  2. In Netlify, choose Add new site → Import an existing project and pick the repository.
  3. Netlify reads netlify.toml: build command npm run build, publish folder dist, Node.js 22. Click Deploy.

The build uses baseUrl from config.toml unless you add a SITE_URL environment variable in the Netlify site settings.

netlify.toml also sets long-term caching for /_astro/* and /images/*, and sends missing /fr/... URLs to the French 404 page. Add a block for each extra language.

Using Netlify Forms? Set contactFormProvider = "netlify" and contactFormAction = "/", enable form detection under Forms, and redeploy.

After You Launch

  1. Open the live site and click through the main pages, on a computer and on a phone, in every language.
  2. Send a test message through the contact form, and sign up for the newsletter once.
  3. Test search (⌘K or Ctrl+K).
  4. Submit https://your-domain/sitemap-index.xml in Google Search Console and Bing Webmaster Tools.
  5. Optional: set [seo.ai] indexNowKey, deploy, and run npm run indexnow -- --all. After later deploys, run npm run indexnow.
  6. Share a link in a chat app to check the preview image.

Updating The Live Site

With a git-connected host, every push to your main branch deploys automatically. Build locally first (npm run build) to catch errors before they reach your visitors.

Type something to search...