Alex Dunmow c2fc45e7f7 fix(earthen): kill placeholder copy, enrich home, wire stock media, size all SVGs, full-bleed article header
- seed: real Rootline Trust content — no 'example figures' placeholder copy;
  home composed as split hero (hands-soil image) + stats + feature-grid +
  botanical divider + field note + newsletter; About gap filled with fern
  image + impact report between story and pull-quote; first article expanded
  to ~10 field-notes paragraphs with inline forest image; 6 Pixabay images
  seeded via seed/media (id+file+alt)
- article.ninjatpl: header slot now full-bleed (was max-w-3xl wrapped — the
  boxed-header artifact bracketing the nav with vertical rules)
- landing.ninjatpl: main slot full-bleed so composed sections span the page
- SVG geometry guard: every <use>-icon svg now carries explicit width/height
  matching its size class (18 files)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 16:24:31 +08:00

583 lines
24 KiB
JSON

{
"demo": true,
"settings": {
"merge": {
"companyName": "Rootline Trust",
"tagline": "We restore land with the people who live on it."
}
},
"media": [
{
"id": "41830fd8-442a-4255-bc96-9fb12e428ef1",
"file": "media/hands-soil.jpg",
"alt": "Hands lowering a young seedling into dark soil",
"folder": "earthen"
},
{
"id": "152f8386-ecf1-4f0c-899a-2c947766644d",
"file": "media/seedling.jpg",
"alt": "Cupped hands holding a seedling above turned earth",
"folder": "earthen"
},
{
"id": "c71264ea-0217-4826-a796-baffab1cf041",
"file": "media/forest.jpg",
"alt": "Sunlight through moss-covered trees in regrown forest",
"folder": "earthen"
},
{
"id": "603fdac3-2fa5-4511-8357-aa65550d9a31",
"file": "media/leaf-veins.jpg",
"alt": "Rain-washed leaf showing its veins in deep green",
"folder": "earthen"
},
{
"id": "02a30527-5464-45e2-a1f9-529fd9f46787",
"file": "media/terracotta.jpg",
"alt": "Terracotta pots of native tube stock ready for planting",
"folder": "earthen"
},
{
"id": "a8c164d1-5f0c-496d-bb77-d1e8ba769527",
"file": "media/botanical.jpg",
"alt": "Fern fronds unfurling on the forest floor",
"folder": "earthen"
}
],
"data_tables": [
{
"key": "contact_submissions",
"name": "Contact Enquiries",
"description": "Contact-form submissions for Rootline Trust. A submission becomes a row here and emails the site admins.",
"columns": [
{
"key": "name",
"label": "Name",
"type": "text",
"required": true
},
{
"key": "email",
"label": "Email",
"type": "email",
"required": true
},
{
"key": "region",
"label": "Region",
"type": "text",
"required": false
},
{
"key": "message",
"label": "Message",
"type": "text",
"required": true
}
]
}
],
"pages": [
{
"slug": "/",
"title": "Rootline Trust",
"template_key": "landing",
"blocks": [
{
"block_key": "hero",
"title": "Hero",
"slot": "hero",
"sort_order": 1,
"content": {
"template": "split",
"eyebrow": "Land restoration",
"headline": "Bring the land back to life.",
"subheadline": "We restore land with the people who live on it.",
"description": "Rootline Trust plants native cover, mends waterways and hands the care of the land back to local hands. Small work, done every season, in the places that need it most.",
"backgroundImage": "media:41830fd8-442a-4255-bc96-9fb12e428ef1",
"mediaPosition": "right",
"ctaPrimary": {
"text": "Donate",
"url": "/contact"
},
"ctaSecondary": {
"text": "See our work",
"url": "/about"
}
}
},
{
"block_key": "stats",
"title": "Season in numbers",
"slot": "main",
"sort_order": 1,
"content": {
"heading": "The last season, in the ground",
"intro": "Every figure here is an acre planted, a bank mended, or a day given by someone who lives beside the work.",
"columns": 4,
"countUp": false,
"items": [
{
"value": "840",
"suffix": " acres",
"label": "Native cover planted"
},
{
"value": "19",
"suffix": " km",
"label": "Creek bank mended"
},
{
"value": "1,200",
"label": "Volunteer days given"
},
{
"value": "12",
"label": "Restoration sites"
}
]
}
},
{
"block_key": "feature-grid",
"title": "How we work",
"slot": "main",
"sort_order": 2,
"content": {
"eyebrow": "How we work",
"heading": "Three steps, every site",
"intro": "Restoration is not one grand act. It is the same patient sequence, repeated season after season, with the people who live on the land.",
"columns": 3,
"layout": "card",
"items": [
{
"icon": "lucide:sprout",
"title": "Plant native cover",
"text": "We raise local tube stock and plant the species that belong on each site — the ones that hold soil, feed pollinators and come back on their own."
},
{
"icon": "lucide:waves",
"title": "Mend the waterways",
"text": "We fence stock out of the creek lines, stabilise the banks and let the water run clean again. A mended creek carries a whole valley with it."
},
{
"icon": "lucide:heart-handshake",
"title": "Hand the land back",
"text": "From the first day we work beside local carers. By the third season we step back, and the people who live there keep it going."
}
]
}
},
{
"block_key": "divider",
"title": "Botanical divider",
"slot": "main",
"sort_order": 3,
"content": {
"variant": "ornament",
"width": "wide",
"icon": "lucide:leaf"
}
},
{
"block_key": "earthen:field_note",
"title": "Field Note",
"slot": "main",
"sort_order": 4,
"content": {
"author": "Mara Ellison",
"location": "Wirra Creek",
"dateline": "March 2025",
"image": "media:152f8386-ecf1-4f0c-899a-2c947766644d",
"body": "<p>The first rain after planting is the one that tells you. We walked the creek line at dawn and the tube stock had held — thousands of small green points, holding the bank against the next flood.</p><p>You plant, you fence, you wait. Restoration keeps its own slow clock. Then one ordinary morning the land answers back, and you understand you were only ever helping it remember what it already knew how to do.</p>"
}
},
{
"block_key": "newsletter-signup",
"title": "Newsletter",
"slot": "main",
"sort_order": 5,
"content": {
"title": "Field notes in your inbox",
"description": "A short dispatch from the sites each season — what we planted, what held, and where we are headed next. No noise.",
"listSlug": "main",
"source": "home",
"submitText": "Subscribe",
"placeholder": "you@example.com",
"layout": "card"
}
}
]
},
{
"slug": "/about",
"title": "Our work",
"template_key": "default",
"blocks": [
{
"block_key": "heading",
"title": "Heading",
"slot": "main",
"sort_order": 1,
"content": {
"text": "Our work",
"level": 1
}
},
{
"block_key": "image",
"title": "Forest regrowth",
"slot": "main",
"sort_order": 3,
"content": {
"src": "media:a8c164d1-5f0c-496d-bb77-d1e8ba769527",
"alt": "Fern fronds unfurling on the forest floor",
"caption": "Ferns returning to the understorey at Wirra Creek, three seasons after fencing.",
"size": "lg",
"aspectRatio": "wide"
}
},
{
"block_key": "rich-text",
"title": "Story",
"slot": "main",
"sort_order": 2,
"content": {
"html": "<p>Rootline Trust began with one degraded paddock and a handful of neighbours who wanted it back. We plant native cover, mend waterways and fence stock out of the creek lines. Then we hand the care of the land to the people who live beside it.</p><p>We work slowly and in public. Every site is chosen with local carers, planted from local stock, and reported honestly to the people who fund it. Nothing here happens in a season — it happens over three, or five, or ten, and it lasts because the people who live there stay long after we have gone.</p><p>We are a small trust on purpose. It keeps us close to the ground, close to the water, and close to the people whose land we are helping to mend.</p>"
}
},
{
"block_key": "earthen:impact_report",
"title": "Impact Report",
"slot": "main",
"sort_order": 4,
"content": {
"period": "Season 2025",
"title": "What we grew together",
"summary": "<p>Every acre here began as a pledge from someone who wanted a piece of degraded land to come back. This is where those pledges went last season — twelve sites, one patient sequence, repeated until the ground took hold.</p>",
"outcomes": [
{
"value": "840 acres",
"label": "Native cover planted",
"detail": "Across twelve restoration sites, raised from local tube stock."
},
{
"value": "19 km",
"label": "Creek bank mended",
"detail": "Fenced, replanted and handed to the carers who live beside it."
},
{
"value": "1,200",
"label": "Volunteer days",
"detail": "Given by people who live within a day's drive of the work."
}
]
}
},
{
"block_key": "divider",
"title": "Divider",
"slot": "main",
"sort_order": 5,
"content": {
"variant": "line",
"weight": "thin",
"width": "wide"
}
},
{
"block_key": "quote",
"title": "Quote",
"slot": "main",
"sort_order": 6,
"content": {
"style": "pull",
"align": "left",
"quote": "You plant, you fence, you wait. Then the land answers back.",
"attribution": "Mara Ellison",
"role": "Field Lead, Wirra Creek"
}
}
]
},
{
"slug": "/blog",
"title": "Field Journal",
"template_key": "blog-index",
"blocks": [
{
"block_key": "card",
"title": "Post: First Rain",
"slot": "main",
"sort_order": 1,
"content": {
"layout": "vertical",
"media": "media:603fdac3-2fa5-4511-8357-aa65550d9a31",
"title": "The first rain after planting",
"text": "<p>What a dawn walk along Wirra Creek tells you about a whole season of restoration.</p>",
"link": "/blog/the-first-rain-after-planting",
"linkLabel": "Read the dispatch"
}
},
{
"block_key": "card",
"title": "Post: Fencing",
"slot": "main",
"sort_order": 2,
"content": {
"layout": "vertical",
"media": "media:c71264ea-0217-4826-a796-baffab1cf041",
"title": "Why we fence before we plant",
"text": "<p>The least glamorous work on any site is the thing that protects everything that comes after it.</p>",
"link": "/blog/why-we-fence-before-we-plant",
"linkLabel": "Read the dispatch"
}
},
{
"block_key": "card",
"title": "Post: Handover",
"slot": "main",
"sort_order": 3,
"content": {
"layout": "vertical",
"media": "media:02a30527-5464-45e2-a1f9-529fd9f46787",
"title": "Handing the land back",
"text": "<p>Restoration is not finished when we leave. It is finished when the local carers take it on.</p>",
"link": "/blog/handing-the-land-back",
"linkLabel": "Read the dispatch"
}
}
]
},
{
"slug": "/blog/the-first-rain-after-planting",
"title": "The first rain after planting",
"template_key": "article",
"parent_slug": "/blog",
"blocks": [
{
"block_key": "heading",
"title": "Title",
"slot": "main",
"sort_order": 1,
"content": {
"text": "The first rain after planting",
"level": 1
}
},
{
"block_key": "image",
"title": "Creek line at dawn",
"slot": "main",
"sort_order": 2,
"content": {
"src": "media:c71264ea-0217-4826-a796-baffab1cf041",
"alt": "Sunlight through moss-covered trees in regrown forest",
"caption": "The oldest reach at Wirra Creek, three seasons in — canopy closing, bank holding.",
"size": "lg",
"aspectRatio": "wide"
}
},
{
"block_key": "rich-text",
"title": "Body",
"slot": "main",
"sort_order": 3,
"content": {
"html": "<p>We walked the creek line at dawn, before the heat, the way we always do on the morning after the first real rain. The ground was dark and giving underfoot. Along the bank, where six weeks ago there had been bare clay and the stubble of old grazing, the tube stock had held — thousands of small green points, each one a native seedling with its roots now gripping the soil we had loosened for it.</p><p>The first rain after planting is the one that tells you. Everything before it is hope and hard work: you clear, you fence, you dig the holes on contour, you sink the tubes and firm the earth around each one. Then you wait, and you watch the sky, because a young planting that dries out in its first fortnight will not come back no matter how carefully it was put in. This rain came in the second week. It came slow and steady overnight, the kind that soaks in instead of running off, and by dawn the whole site had drunk it.</p><p>Restoration is slow, and it is meant to be. You cannot hurry a root system. You cannot argue a creek bank into stability. What you can do is give the land the conditions it needs and then get out of its way — fence the stock out, keep the weeds off the young growth, and let the seasons do the rest. We plant, we fence, we wait. It is the least heroic sequence imaginable, and it is the only one that works.</p><p>Wirra Creek was one of the worst sites we had taken on. Decades of stock had trodden the banks to bare earth; every flood carried another metre of topsoil downstream, and the water ran the colour of milky tea for days after any rain. When we first walked it with the carers who live along it, nobody pretended it would be quick. We agreed a ten-year horizon out loud, in the paddock, so that no one would mistake a single good season for the finish line.</p><p>The species matter more than people expect. We raise our tube stock from local seed — the sedges and wattles and paperbarks that already know this soil and this rainfall — because a plant that belongs on a site will hold on through the years we are not watching. The nursery work is unglamorous and it is where half the outcome is decided. A good seedling, hardened off properly, will take the first rain and run with it. A soft one, forced under lights and shipped in from far away, will sulk and die at the first hot week.</p><p>By mid-morning the sun was up and the carers had arrived to walk the line with us. There is a particular quiet that comes over people on a morning like that — nobody says much. You crouch by a tube, you feel the soil, you check that the guard has held and the stem is firm, and you move on to the next. Down the line someone laughs, because a seedling that was leaning last week has stood itself upright overnight, the way they do once the roots find water.</p><p>Not everything held. It never does. In the low corner where the flood sits longest we lost a run of tubes to waterlogging, and up on the dry western bank a few had been nosed out by something — a wallaby, most likely, testing the guards. We marked the gaps to replant in autumn. Losing some is part of the arithmetic; you plant knowing a portion will fail, and you plant enough that the survivors still close the canopy in time.</p><p>The fence is what makes all of it possible. Before a single tube goes in, we fence the stock out of the creek line and hold that line for years. It is the least glamorous work we do and it is the work that protects everything else. A good fence buys a young planting three quiet years to establish, and three years is usually all a native system needs to look after itself.</p><p>We finished the walk at the top of the reach, where the oldest planting — three seasons in now — has grown past head height and thrown enough shade that the bank beneath it stays damp and dark. Frogs have come back to that stretch. You can hear them after rain. It is the plainest possible proof that the work is working: you make a place liveable again, and the living things move back in without being asked.</p><p>That is the whole of it, really. You plant, you fence, you wait. Restoration keeps its own slow clock and there is no cheating it. Then one ordinary morning after rain the land answers back — a bank that holds, a creek that runs clear, a chorus of frogs where there was bare clay — and you understand that you were only ever helping the land remember what it already knew how to do.</p>"
}
}
]
},
{
"slug": "/blog/why-we-fence-before-we-plant",
"title": "Why we fence before we plant",
"template_key": "article",
"parent_slug": "/blog",
"blocks": [
{
"block_key": "heading",
"title": "Title",
"slot": "main",
"sort_order": 1,
"content": {
"text": "Why we fence before we plant",
"level": 1
}
},
{
"block_key": "rich-text",
"title": "Body",
"slot": "main",
"sort_order": 2,
"content": {
"html": "<p>Stock will find new growth before it has a chance to root. A single mob of cattle can undo a season's planting in an afternoon, and they always seem to know exactly where the softest new leaves are. So we fence first. Every time. It is the least glamorous work we do and it is the thing that protects everything that comes after.</p><p>A good fence buys a young planting three years of quiet — long enough for the roots to reach down, the canopy to start closing, and the site to stop needing us. Three years is usually all a native system asks for. Get the fence right and hold the line, and the rest of restoration is mostly patience.</p><p>People ask why we do not just plant more to make up for what gets eaten. The answer is that a fence is cheaper than a failure, and far cheaper than the heartbreak of walking a chewed-out site the morning after. We would rather spend the first budget on posts and wire than replant the same bank three times over.</p>"
}
}
]
},
{
"slug": "/blog/handing-the-land-back",
"title": "Handing the land back",
"template_key": "article",
"parent_slug": "/blog",
"blocks": [
{
"block_key": "heading",
"title": "Title",
"slot": "main",
"sort_order": 1,
"content": {
"text": "Handing the land back",
"level": 1
}
},
{
"block_key": "rich-text",
"title": "Body",
"slot": "main",
"sort_order": 2,
"content": {
"html": "<p>Restoration is not finished when we leave. It is finished when the local carers take it on. We plant with them from the first day — not as spectators, but with hands in the soil — so the knowledge stays on the land instead of leaving in the back of our ute.</p><p>By the third season we start to step back. The watering slows, the replanting tapers off, and the walks along the line become the carers' walks, not ours. The site keeps going because the people beside it keep going, and they keep going because it was theirs the whole way through.</p><p>We measure our success by how little we are needed at the end. A site we can walk away from is the goal. It sounds strange for an organisation to aim at its own irrelevance, but that is exactly the point: land that can look after itself, in the care of people who will be there long after the last of our fences has weathered grey.</p>"
}
}
]
},
{
"slug": "/contact",
"title": "Get in touch",
"template_key": "contact",
"blocks": [
{
"block_key": "contact-form",
"title": "Contact Enquiry",
"slot": "main",
"sort_order": 1,
"content": {
"heading": "Work with us",
"description": "Tell us about your land, your region or how you would like to help. We read every message.",
"submitLabel": "Send message",
"successMessage": "Thank you. Your message has been received. We will reply by email.",
"fields": [
{
"name": "name",
"label": "Your name",
"type": "text",
"required": true,
"width": "half"
},
{
"name": "email",
"label": "Email",
"type": "email",
"required": true,
"width": "half"
},
{
"name": "region",
"label": "Region",
"type": "text",
"required": false,
"width": "half"
},
{
"name": "message",
"label": "How can we help?",
"type": "textarea",
"required": true,
"width": "full"
}
],
"formConfig": {
"enabled": true,
"captchaEnabled": false,
"targetTable": "contact_submissions"
}
}
},
{
"block_key": "hours-location",
"title": "Where to find us",
"slot": "aside",
"sort_order": 1,
"content": {
"heading": "Office hours",
"hours": [
{
"day": "Monday to Thursday",
"hours": "9am to 5pm"
},
{
"day": "Friday",
"hours": "9am to 3pm"
},
{
"day": "Saturday",
"hours": "Field days only"
},
{
"day": "Sunday",
"closed": true
}
],
"specialHoursNote": "Planting days run most weekends in autumn. Check the field journal.",
"address": "3 Wattle Road\nWirra Creek",
"phone": "+1 555 0142"
}
}
]
},
{
"slug": "/login",
"title": "Members",
"template_key": "auth",
"blocks": [
{
"block_key": "auth-form",
"title": "Sign in",
"slot": "main",
"sort_order": 1,
"content": {
"default_tab": "login",
"show_social": false
}
},
{
"block_key": "text",
"title": "Foot",
"slot": "footer",
"sort_order": 1,
"content": {
"text": "<p>Members track pledges and see each site's season report first.</p>"
}
}
]
}
],
"menu_items": [
{
"menu": "main",
"label": "Home",
"page_slug": "/",
"sort_order": 1
},
{
"menu": "main",
"label": "Our work",
"page_slug": "/about",
"sort_order": 2
},
{
"menu": "main",
"label": "Field Journal",
"page_slug": "/blog",
"sort_order": 3
},
{
"menu": "main",
"label": "Get in touch",
"page_slug": "/contact",
"sort_order": 4
}
]
}