Make Ecozen Yours In 30 Minutes
Skill level: Beginner · Time: 30 minutes · You need: the site running with npm run dev (Installation)
This page walks through the ten changes almost every site needs, in order. Each step names one file and the exact lines to edit. Save the file and the browser shows the change, config.toml included. In the Tina and Sanity editions, most of these values have a form: see Editable In Tina and Editable In Sanity.
-
Name your site and set its address
Open
src/config/config.tomland edit the[site]block:[site]title = "Acme Solar"description = "Solar panels, batteries, and EV chargers for homes and businesses."tagline = "Solar installer"baseUrl = "https://www.your-domain.com"A
taglineordescriptionset here is used for every language. Leave them empty to use each language’s own, insrc/i18n/<lang>.json.baseUrlis your live address. The theme ships with the placeholderhttps://example.com, andnpm run buildprints a[site]warning until you change it. Canonical URLs, the sitemap,robots.txt, the RSS feed,llms.txt, structured data, and social previews all use it, so set it before you launch. -
Decide on languages
Ecozen ships every page in English, French, and Arabic. If you only need English, set
enable = falseunder[settings.multilingual]in the same file. The other language files stay on disk but are no longer built. See Internationalization to add or remove languages for good. -
Add your logo
Put your logo files in
src/assets/images/and point the[site]keys at them:[site]logo = "/images/my-logo.svg" # dark logo, for light backgroundslogoAlternate = "/images/my-logo-light.svg" # light logo, for the footer and the homepage herologoText = "" # text next to the logo, if your logo has no name in itlogoWidth = "132px"logoHeight = "32px"Then set
[site.favicon] imageto a square version of your logo and runnpm run generate-favicons. Details: Site Identity & Logo. -
Set your brand colors
Open
src/styles/theme.cssand change the brand colors at the top:--color-primary: #DDEB3B; /* accent: buttons on photos, icons, highlights */--color-primary-deep: #4F5A0A; /* the accent as text on light backgrounds */--color-secondary: #1E4A44; /* deep green */--color-accent: #EFF3EC; /* soft surface behind cards and bands */Every button, icon, and highlight in the theme updates. Details: Colors & Fonts.
-
Add your contact details
The phone number, email, address, and opening hours are set once in
config.tomland used in the header’s contact row, the mobile menu, the footers, the contact page, and the structured data search engines read:[settings.contactInfo]address = "12 Example Road, Your Town"phone = "+1 555 000 0000"hours = "Mon–Fri, 8:00–18:00"Also replace the sample towns in
[seo.localBusiness] areaServedwith the places you install in. -
Pick your homepage and write its hero
Ecozen has four homepages: residential solar (
/), commercial and farm (/home-two/), renewable energy developer (/home-three/), and EV charging and batteries (/home-four/). Open each one and keep the one that fits your business. If it isn’t/, follow Use another homepage as your main one. Then delete the other routes insrc/pages/[...lang]/and their files insrc/content/homepage/, in every language folder.For the main homepage, open
src/content/sections/english/hero-section.md. Its hero showsslides: change each slide’slabel(the tab under the photo),title,description,image, andimageAlt, or setslides: []to show one still photo from the top-leveltitle,description,image, andimageAlt. Then change the button inbuttons, theratingline (valueandlabel;avatarstakes real customer portraits, or stays empty), and thefactsalong the bottom. Do the same in thefrench/andarabic/copies of the file if you kept those languages. -
Point the header button and menus at your pages
The header button is in
config.toml:[settings.navigationButton]enable = truelabel = "" # empty uses "Get a free quote" from src/i18n/en.jsonurl = "/contact/"The menu links are in
src/config/menu.en.json(and the file for each other language). Set"enable": falseon anything you don’t need. The Pages menu (with the four homepages and the Components page inside it) exists to show off the demo, so most sites turn it off. Details: Menus. -
Connect the quote form
The quote form on
/contact/posts to a placeholder address until you change it inconfig.toml. Until you do,npm run devandnpm run buildprint a yellow[forms]line, and on the dev server a “Dev only · form not connected” note appears inside the form after you submit it:[settings]contactFormProvider = "formsubmit.co" # formsubmit.co | formspree | netlifyIf you use the
newsletterfooter, setactionandproviderunder[settings.newsletter]the same way. Details: Forms. -
Set your prices and calculator figures
Packages and prices are in
src/content/sections/english/pricing-section.md. The savings calculator’s tariff, sun hours, installed cost, and currency are insrc/content/sections/english/calculator-section.md. Use figures that are true for your region. Details: Pricing and Savings Calculator. -
Change the footer text, then check and build
The footer text is in
src/i18n/en.jsonunderfooter(and the file for each other language):statementfor the defaultwordmarkfooter,bandfor the call-to-action band of thenewsletterandctafooters,description, andcopyright. Incopyright,{{ year }}becomes the year of the build. Social links are insrc/config/social.json. Details: Footer.Then stop the dev server and run:
Terminal window npm run astro-checknpm run buildFix anything
astro-checkreports. Read the yellow lines in the build output:[site]meansbaseUrlis still the placeholder (step 1), and[forms]means a form still posts to a placeholder address (step 8). Then follow the Deployment guide.
What Next?
- Replace the demo content page by page: Pages lists every page and its file.
- Replace the demo photos with your own: Icons & Images.
- Try the other layouts of your sections: Section Layouts.
- Let an AI assistant do the repetitive work: Prompt Library.