{"id":6460,"date":"2026-07-09T18:05:37","date_gmt":"2026-07-09T17:05:37","guid":{"rendered":"https:\/\/www.mondogrowkits.com\/?page_id=6460"},"modified":"2026-07-09T18:07:28","modified_gmt":"2026-07-09T17:07:28","slug":"wachstums-tracker","status":"publish","type":"page","link":"https:\/\/www.mondogrowkits.com\/de\/grow-tracker\/","title":{"rendered":"Wachstums-Tracker"},"content":{"rendered":"<div class=\"row\"  id=\"row-1814797277\">\t<div id=\"col-1727761312\" class=\"col small-12 large-12\"  >\t\t\t\t<div class=\"col-inner\"  >\t\t\t\t\t\t<!-- Mondo grow tracker template. Place this file in the root of your Flatsome child theme. Fully stateless (no database) -- all state lives in the tt_start \/ tt_type URL parameters, tracking is fire-and-forget via mondoTrack(). --><style>\n:root{\n  --paper:#FAF8F3; --surface:#FFFFFF; --ink:#1A1714; --ink-soft:#5B544C;\n  --line:#E7E1D6; --accent:#6E4B8E; --accent-soft:#F0E9F5;\n  --safe:#5B7A4B; --safe-soft:#E7F0E6; --mid:#C98A2E; --mid-soft:#F6EBD8;\n  --hot:#C2562F; --hot-soft:#FBEDE2;\n  --radius:14px; --shadow:0 1px 2px rgba(26,23,20,.04),0 8px 24px rgba(26,23,20,.06);\n}\n*{box-sizing:border-box} html,body{margin:0}\nbody{background:var(--paper);color:var(--ink);font-family:\"Outfit\",system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}\n.mono{font-family:\"IBM Plex Mono\",ui-monospace,monospace}\n\n.wrap button, .wrap input, .wrap select{border-radius:0!important;text-transform:none!important;box-shadow:none!important;letter-spacing:normal!important;font-family:inherit!important}\n\n.wrap{max-width:560px;margin:0 auto;padding:28px 18px 64px}\n.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 8px}\nh1{font-size:26px;line-height:1.15;font-weight:700;margin:0 0 8px;letter-spacing:-.01em}\n.lede{color:var(--ink-soft);font-size:15px;margin:0 0 22px}\n\n.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;margin-bottom:16px}\n.card h3{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:600}\n\n.field{margin-bottom:14px}\n.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px}\n.field input, .field select{width:100%;padding:11px 40px 11px 12px;border:1px solid var(--line);border-radius:8px!important;font-size:14px;background:var(--surface)}\n.field select{-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;height:auto!important;min-height:46px;line-height:1.4!important;cursor:pointer;background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%236E4B8E' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'\/%3E%3C\/svg%3E\");background-repeat:no-repeat;background-position:right 14px center;box-sizing:border-box!important}\n.field input[type=date]{cursor:pointer}\n.setup-btn{width:100%;background:var(--ink);color:#fff;border:none;padding:13px;border-radius:11px!important;font-size:14px;cursor:pointer;font-family:inherit;margin-top:4px}\n.setup-btn:hover{opacity:.9}\n\n.now-card{border-left:4px solid var(--mid);background:var(--mid-soft)}\n.now-card.is-done{border-left-color:var(--safe);background:var(--safe-soft)}\n.now-card .day{font-family:\"Outfit\";font-size:12px;font-weight:700;margin-bottom:6px;letter-spacing:.02em}\n.now-card.is-current .day{color:var(--mid)}\n.now-card.is-done .day{color:var(--safe)}\n.now-card p{margin:0;font-size:15px;line-height:1.55}\n\n.timeline{position:relative;padding-left:24px;margin-top:4px}\n.timeline::before{content:'';position:absolute;left:6px;top:4px;bottom:4px;width:2px;background:var(--line)}\n.tl-item{position:relative;padding-bottom:20px}\n.tl-item:last-child{padding-bottom:0}\n.tl-item::before{content:'';position:absolute;left:-24px;top:3px;width:11px;height:11px;border-radius:50%;background:var(--line);border:2px solid var(--surface)}\n.tl-item.done::before{background:var(--safe)}\n.tl-item.active::before{background:var(--mid);box-shadow:0 0 0 4px var(--mid-soft)}\n.tl-day{font-family:\"Outfit\";font-size:11px;font-weight:600;color:var(--ink-soft)}\n.tl-title{font-size:14px;font-weight:600;margin:2px 0}\n.tl-desc{font-size:13px;color:var(--ink-soft)}\n\n.link-box{display:flex;gap:8px;align-items:center}\n.link-box input{flex:1;font-family:\"IBM Plex Mono\";font-size:12px;padding:9px 10px;border:1px solid var(--line);border-radius:8px!important;background:var(--paper);color:var(--ink-soft)}\n.link-box button{white-space:nowrap;background:var(--accent-soft);color:var(--accent);border:none;padding:9px 14px;border-radius:8px!important;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}\n.link-hint{font-size:12px;color:var(--ink-soft);margin:8px 0 0}\n\n.reset-link{font-size:13px;color:var(--ink-soft);text-decoration:underline;background:none;border:none;cursor:pointer;padding:0;font-family:inherit;margin-bottom:16px;display:inline-block}\n\n.disclaimer{font-size:12px;color:var(--ink-soft);margin-top:4px}\n<\/style><div class=\"wrap\">  <p class=\"eyebrow\">Grow Tracker<\/p>  <h1 id=\"page-title\">Know exactly where your grow is<\/h1>  <p class=\"lede\" id=\"page-lede\">Set your start date once, then bookmark your personal tracker link \u2014 it'll always show you the current stage without having to work it out yourself.<\/p>  <div id=\"stage\"><\/div><\/div><script>\nvar MONDO_TOOLS_AJAX_URL = \"https:\/\/www.mondogrowkits.com\/wp-admin\/admin-ajax.php\";\nvar MONDO_TOOLS_NONCE = \"d66d6efe44\";\nfunction mondoTrack(tool, event) {\n  try {\n    var body = new URLSearchParams();\n    body.append('action', 'mondo_tools_track');\n    body.append('nonce', MONDO_TOOLS_NONCE);\n    body.append('tool', tool);\n    body.append('event', event);\n    fetch(MONDO_TOOLS_AJAX_URL, { method: 'POST', body: body }).catch(function(){});\n  } catch (e) { \/* no-op *\/ }\n}\n<\/script><script>\n(function(){\n\n  \/\/ Approximate ranges \u2014 actual timing varies with temperature, strain and\n  \/\/ conditions. These are typical windows, not guarantees, and the copy\n  \/\/ says so explicitly wherever a range is shown.\n  var MILESTONES = {\n    kit: [\n      { min: 0,  max: 0,  title: \"Birth day\",              desc: \"You've just scratched\/opened the substrate. Fruiting conditions start now: 90%+ humidity, 18\\u201324\\u00b0C, fan 3\\u20134x a day.\" },\n      { min: 1,  max: 5,  title: \"Early colonization response\", desc: \"The substrate is recovering from birth. No pins yet is completely normal at this stage.\" },\n      { min: 5,  max: 14, title: \"First pins expected\",     desc: \"Keep humidity and fresh air exchange up. If nothing shows by day 14, check the troubleshooter.\" },\n      { min: 14, max: 21, title: \"First flush harvest\",     desc: \"Watch for veils under the caps starting to tear \\u2014 that's the sign it's time to pick.\" },\n      { min: 21, max: 23, title: \"Dunk-and-rest for flush #2\", desc: \"12\\u201324h cold water soak, then 24h rest without misting. This often triggers a second, sometimes bigger, flush.\" },\n      { min: 23, max: 32, title: \"Second flush\",            desc: \"Resume your normal misting schedule after the rest period. Yields can vary more on the second flush.\" }\n    ],\n    bag: [\n      { min: 0,  max: 20, title: \"Colonization in progress\", desc: \"Bulk substrate takes longer to colonize than a smaller grow kit \\u2014 typically 2\\u20134 weeks at 21\\u201327\\u00b0C. No pins yet, nothing to do but wait and monitor temperature.\" },\n      { min: 20, max: 28, title: \"Ready to birth\",           desc: \"Check for fully white substrate with no yellow patches. Once it looks fully colonized, open the bag and move it into your fruiting setup.\" },\n      { min: 28, max: 33, title: \"First pins expected\",      desc: \"Keep humidity at 90%+ and fan 3\\u20134x a day, same as a colonized substrate at this stage.\" },\n      { min: 33, max: 40, title: \"First flush harvest\",      desc: \"Watch for veils under the caps starting to tear \\u2014 that's the sign it's time to pick.\" },\n      { min: 40, max: 42, title: \"Dunk-and-rest for flush #2\", desc: \"12\\u201324h cold water soak, then 24h rest without misting, to trigger a second flush.\" },\n      { min: 42, max: 50, title: \"Second flush\",             desc: \"Resume your normal misting schedule after the rest period.\" }\n    ]\n  };\n\n  var TYPE_LABEL = { kit: \"Grow kit\", bag: \"Grow bag\" };\n\n  var stage = document.getElementById('stage');\n\n  function getParams() {\n    var p = new URLSearchParams(window.location.search);\n    return { start: p.get('tt_start'), type: p.get('tt_type') };\n  }\n\n  function daysBetween(startStr) {\n    var start = new Date(startStr + 'T00:00:00');\n    var today = new Date();\n    today.setHours(0,0,0,0);\n    return Math.floor((today - start) \/ 86400000);\n  }\n\n  function buildTrackerUrl(start, type) {\n    var url = new URL(window.location.href);\n    url.searchParams.set('tt_start', start);\n    url.searchParams.set('tt_type', type);\n    return url.toString();\n  }\n\n  function render() {\n    var params = getParams();\n    if (params.start && params.type && MILESTONES[params.type]) {\n      renderTracker(params.start, params.type);\n    } else {\n      renderSetup();\n    }\n  }\n\n  function renderSetup() {\n    var today = new Date().toISOString().slice(0,10);\n    var html = ''+\n      '<div class=\"card\">'+\n        '<h3>One-time setup<\/h3>'+\n        '<div class=\"field\">'+\n          '<label>What did you start?<\/label>'+\n          '<select id=\"in-type\">'+\n            '<option value=\"kit\">Grow kit<\/option>'+\n            '<option value=\"bag\">Grow bag<\/option>'+\n          '<\/select>'+\n        '<\/div>'+\n        '<div class=\"field\">'+\n          '<label>Start date<\/label>'+\n          '<input type=\"date\" id=\"in-start\" value=\"'+today+'\" max=\"'+today+'\">'+\n        '<\/div>'+\n        '<button type=\"button\" class=\"setup-btn\" onclick=\"GT.start()\">Show my tracker<\/button>'+\n      '<\/div>';\n    stage.innerHTML = html;\n  }\n\n  function renderTracker(startStr, type) {\n    var days = daysBetween(startStr);\n    var milestones = MILESTONES[type];\n    var current = milestones[milestones.length - 1];\n    for (var i = 0; i < milestones.length; i++) {\n      if (days <= milestones[i].max) { current = milestones[i]; break; }\n    }\n    var isPastAll = days > milestones[milestones.length - 1].max;\n\n    var html = '<button type=\"button\" class=\"reset-link\" onclick=\"GT.reset()\">&larr; Start over with a different date<\/button>';\n\n    html += '<div class=\"card now-card '+(isPastAll ? 'is-done' : 'is-current')+'\">'+\n      '<h3>'+TYPE_LABEL[type]+' \\u2014 where you are now<\/h3>'+\n      '<div class=\"day\">Day '+Math.max(days,0)+' since start<\/div>'+\n      '<p>'+(isPastAll ? 'You\\'re past the typical two-flush window. Later flushes are possible but less predictable \\u2014 check the troubleshooter if growth has clearly stopped.' : current.desc)+'<\/p>'+\n    '<\/div>';\n\n    html += '<div class=\"card\"><h3>Full timeline<\/h3><div class=\"timeline\">';\n    milestones.forEach(function(m){\n      var cls = days > m.max ? 'done' : (m === current ? 'active' : '');\n      html += '<div class=\"tl-item '+cls+'\">'+\n        '<div class=\"tl-day\">Day '+m.min+(m.max !== m.min ? '\\u2013'+m.max : '')+'<\/div>'+\n        '<div class=\"tl-title\">'+m.title+'<\/div>'+\n        '<div class=\"tl-desc\">'+m.desc+'<\/div>'+\n      '<\/div>';\n    });\n    html += '<\/div><\/div>';\n\n    var url = buildTrackerUrl(startStr, type);\n    html += '<div class=\"card\">'+\n      '<h3>Your personal tracker link<\/h3>'+\n      '<div class=\"link-box\">'+\n        '<input type=\"text\" readonly id=\"tracker-url\" value=\"'+url+'\">'+\n        '<button type=\"button\" onclick=\"GT.copyLink()\">Copy<\/button>'+\n      '<\/div>'+\n      '<p class=\"link-hint\">Bookmark this link or save it \\u2014 it always shows your current stage, no login needed.<\/p>'+\n    '<\/div>';\n\n    html += '<p class=\"disclaimer\">Timings are typical ranges, not guarantees \\u2014 temperature, strain and conditions all affect actual speed. If something looks off rather than just early or late, check the troubleshooter.<\/p>';\n\n    stage.innerHTML = html;\n  }\n\n  window.GT = {\n    start: function() {\n      var type = document.getElementById('in-type').value;\n      var start = document.getElementById('in-start').value;\n      if (!start) return;\n      if (window.mondoTrack) mondoTrack('tracker', type);\n      window.location.search = new URLSearchParams({ tt_start: start, tt_type: type }).toString();\n    },\n    reset: function() {\n      window.location.search = '';\n    },\n    copyLink: function() {\n      var input = document.getElementById('tracker-url');\n      input.select();\n      input.setSelectionRange(0, 99999);\n      try {\n        navigator.clipboard.writeText(input.value);\n      } catch (e) {\n        document.execCommand('copy');\n      }\n    }\n  };\n\n  render();\n})();\n<\/script>\t\t<\/div>\t\t\t\t<style>\n#col-1727761312 > .col-inner {\n  margin: -50px 0px 0px 0px;\n}\n<\/style>\t<\/div>\t<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6460","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/pages\/6460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/comments?post=6460"}],"version-history":[{"count":2,"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/pages\/6460\/revisions"}],"predecessor-version":[{"id":6463,"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/pages\/6460\/revisions\/6463"}],"wp:attachment":[{"href":"https:\/\/www.mondogrowkits.com\/de\/wp-json\/wp\/v2\/media?parent=6460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}