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

Customize Veltro With AI

Skill level: Beginner · Works with: Claude, Cursor, GitHub Copilot, Gemini, Windsurf, Codex, ChatGPT, and any other assistant

Veltro is built so that an AI assistant can change it safely. Three things make that work:

  1. Content is separate from code. Almost every change is an edit to a Markdown, TOML, or JSON file: your company details in src/config/config.toml, services in src/content/services/, case studies in src/content/case-studies/, open roles in src/content/careers/. AI tools do this kind of task well.
  2. Content files explain themselves. Section files list their options and allowed values in comments next to each key, and the card layout values are collected in src/enum.ts, so the assistant can see what is possible without guessing.
  3. The theme ships instruction files for AI tools. They describe the folder structure and the rules for changing it. Most AI coding tools load them when you open the project folder.

The AI Instruction Files In Veltro

Veltro ships four instruction files at the top of the theme folder and three in hidden folders. Folders that start with a dot (.github/, .cursor/, .windsurf/) are hidden by default in Finder and File Explorer; your code editor shows them. You don’t need to edit any of these files. They are there for your assistant. Each edition ships its own copy, written for that edition.

FileRead byWhat it contains
AGENTS.mdOpenAI Codex, Cursor, Windsurf, GitHub Copilot, and other tools that follow the AGENTS.md conventionThe full rules: project map, content model, sections and page blocks, card layouts, header options, menus, styling, RTL, languages, motion, forms, editions, and the limits of the checks
SKILLS.mdAny assistant you point to itStep-by-step recipes: add a section or page, switch a card layout, edit menus, add or remove a language, make something work right to left, rebrand, add an icon, verify
CLAUDE.mdClaude CodeImports AGENTS.md (the @AGENTS.md line), then a short list of the most important rules
GEMINI.mdGemini CLIThe same as CLAUDE.md, for Gemini
.github/copilot-instructions.mdGitHub Copilot (coding agent, VS Code, CLI)A short summary that points to AGENTS.md and SKILLS.md
.cursor/rules/theme-architecture.mdcCursor (always on)The architecture rules, with a pointer to AGENTS.md
.windsurf/rules/theme-architecture.mdWindsurf (always on)The same rules for Windsurf

The .vscode/ folder holds editor settings and recommended extensions, not AI rules.

Chat assistants in a browser (ChatGPT, Claude, Gemini) can’t read your folder. You paste AGENTS.md into the conversation yourself: see AI Workflow.

These files tell an assistant to:

  • keep editable text, links, images, buttons, and options in src/content/, not in components
  • make every change in every language: each language folder under src/content/, src/i18n/<language>.json, and src/config/menu.<language>.json
  • edit a section’s own file when the change should apply everywhere, and pass content from a route only for one page
  • change a card’s look with options.layout, using the values in src/enum.ts rather than the comment beside the option, which is sometimes out of date
  • set the header per page with the Base.astro props headerPosition, headerBorderOnScroll, hideOffcanvas, and hideHeader
  • reuse Veltro’s Button.astro, Icons.astro, DynamicIcon.astro, and OptimizedImage.astro and the color tokens in src/styles/theme.css
  • use logical CSS classes (ms, pe, start, text-start) so every page still works right to left in Arabic
  • read languages through src/config/language.json, never from a hard-coded language code
  • never invent client names, testimonials, case-study results, awards, metrics, or prices
  • check changed pages at about 375 px and 1280 px wide, and at /ar/
  • run npm run astro-check when they finish

Two Ways To Work With AI

AI that can open your files

Cursor, Windsurf, Claude Code, GitHub Copilot in VS Code, Gemini CLI, Codex. Open the Veltro project folder in the tool and describe the change. It reads the instruction files, edits the files, and can run the checks. This is the best way to work.

Chat assistants

ChatGPT, Claude, or Gemini in the browser. They can’t see your project, so you paste AGENTS.md and the file you want changed, and copy the answer back. Fine for rewriting text, one file at a time.

What AI Is Great At In Veltro

  • Rewriting the sample copy for your company, in every language
  • Filling collections: services, industries, portfolio, case studies, blog posts, team, open roles, awards, FAQ, legal pages
  • Setting your prices and what each package includes
  • Picking one of the two homepages and reordering its sections
  • Choosing card layouts for services, blog, portfolio, testimonials, and industries
  • Changing menus, including the mega menu, the deep dropdowns, and the footer groups
  • Translating the site, adding a language, or turning one off
  • Explaining an error message and fixing it

What To Check Yourself

  • Case-study and portfolio results. Every client name, figure, and outcome in src/content/case-studies/ and src/content/portfolio/ is made up. Replace them with work you actually did, and make sure you are allowed to name the client.
  • Awards. The entries in src/content/awards/ are invented. Only list awards you really won.
  • Facts. AI writes convincing copy, and it can invent testimonials, team sizes, certifications, and partner badges you never gave it. Check every quote, number, and claim before you publish.
  • Prices. The packages in src/content/sections/<language>/pricing-section.md are samples. Give the assistant your real figures, and read the result back.
  • Longer names and labels. A company name, button label, or menu item longer than the sample can wrap or crowd the layout. Check the header, the side menu, the mega menu, and the hero at about 375 px.
  • Arabic and French. Both are machine translated in the sample content. Open /ar/ after any layout change and have the text reviewed by a native speaker.
  • The result in the browser. npm run astro-check validates the collections that have a schema in src/content.config.ts. The sections, about, awards, faq, pricing, and author collections have none, so a wrong option value there passes the check, and a frontmatter key that no schema declares is dropped without an error.
  • Forms. contactFormAction and the Mailchimp formAction ship empty: with no endpoint the contact form shows a message and sends nothing. Set them, then send one of each on the live site and check that they arrive.

Ready? Go to the Prompt Library for copy-paste prompts.

Type something to search...