Loading...
New features, fixes, and improvements to Hortus.
The "Community gaps" filter in Bloom Finder now correctly shows plant recommendations even when your neighbourhood has strong overall bloom coverage.
The "How to attract" plant list in Wildlife Spotting now shows just the plant name and photo without extra action buttons.
Partners now have a dedicated Volunteers tab with location-based search (pick a site, enter a custom address, or search across all sites), radius filtering, interest and distance breakdowns, and broadcast outreach messaging. When sending outreach for a specific event, the message auto-populates with event details and a link to the site page so volunteers can RSVP directly.
URLs in direct messages are now clickable links instead of plain text.
The Community dropdown is now organized into three sections (Your Garden, Connect, Progress) so it is easier to find what you need as we add more features.
Site popups no longer clip under map filter pills. Community site labels now say "Open to visitors" for clarity. You can toggle your volunteer status directly from the Volunteering modal, and partners can see nearby volunteers from the Partner Hub dashboard.
New Bloom Finder combines the Bloom Calendar and Plant Finder into one tool. See your bloom coverage side by side with your neighbourhood, find gaps, and get smart plant recommendations based on your yard conditions, wildlife goals, and what your community needs most.
Sort your garden plants by name or date added. Filter by native, non-native, or edible to quickly find what you need.
When you reduce a plant quantity, the feedback dialog now uses friendlier, more natural language.
Wildlife attraction plant suggestions now show all recommended plants in a scrollable list instead of truncating with a "+N more" label.
Plants and impact stats are now shown at the top of community site pages for a better first impression.
Redesigned Partner Hub with tab-based layout (Overview, Campaigns, Events, Sites), unfolded event insights with attendance charts and category breakdowns, pastel-colored site list, and support for events at non-owned locations.
Upcoming community events are now shown on site pages and map popups. Click to see details and RSVP inline without leaving the page.
New FAQ page with answers to common questions about Hortus features, community sites, and privacy.
Event organizers can now view attendance stats, RSVP trends, and attendee lists for their events.
Moved plants grown and bloom sections to the top of community site pages for better visibility.
New internal reporting tools for tracking platform growth metrics across users, plants, and engagement.
The heatmap now scales each garden's support zone to a ~2 km radius matching native bee foraging ranges, adjusting dynamically as you zoom. A new Pollinator Corridors toggle on the map lets you turn it on from any tab, and an info tooltip explains the science. Smooth continuous zoom replaces the old step-based scrolling.
The plant density heatmap now rounds coordinates to ~500m precision and fades into a broad glow at street level, so it shows neighbourhood-level density without ever pinpointing a specific house.
Plants logged at community stewardship sites (rain gardens, restoration plots, etc.) now contribute to the bloom heatmap. Previously only home-garden plants were plotted.
The small calendar badge that appears on community site markers with upcoming events is no longer cut off or squished inside the circular icon.
The pollinator corridors endpoint used to load every user with a location plus their plants and bloom data, then filter by distance in memory. It now uses a SQL bounding-box pre-filter so the database does the geographic narrowing first. Same results, much less work at scale.
The activity feed used to load every user with a location and then filter by distance in memory. It now uses a SQL bounding-box pre-filter so the database does the geographic narrowing first. Same results, much less work at scale.
The map page used to poll for unread messages every 30 seconds even when the tab was in the background. It now polls every 60 seconds, only when the tab is visible, and fires an immediate refresh when you return to the tab. Reduces background server work without changing what you see.
Plant Finder, Bloom Calendar, Wildlife Spotting, and every other dialog on the map now center with proper breathing room below the header instead of pressing against the top. If you open a new dialog while another is already open, the first one closes automatically so the two never stack on top of each other.
An earlier change today that code-split modals on the map caused the modal backdrop to render incorrectly on some views. The change has been rolled back while the underlying cause is investigated. No data affected.
The map now caches community data (gardener pins and site pins) for 60 seconds on the server, so most visits render without re-querying the database. New plants and gardens still appear within a minute. The map itself still shows every Canadian gardener at every zoom level.
Map loads and catalog lookups now benefit from CDN and browser caching, so repeat visits and tab switches return instantly instead of re-querying the database. No visible behaviour change, just faster.
Every public garden now has a public page at joinhortus.com/s/[slug] with a click-to-zoom cover photo, a welcome paragraph the site owner can edit, upcoming events up top, a "What this garden supports" wildlife-impact summary (bees, butterflies, hummingbirds, songbirds, larval hosts, nectar sources, native-species %) rolled up from the plants logged there, and a steward listing. The Plants section leads with a bloom calendar showing how many species are in bloom each month, a featured card for "In bloom this [month]" or "Blooming next in [month]" with photo cards that include the bloom window and a short description, and a filterable roster grouped by plant type (Wildflower / Shrub / Tree / Grass / Fern) with chip filters for wildlife focus (Pollinators / Birds / Caterpillars). Visitors can tap Get involved to DM the site owner with a pre-filled intro, or tap Directions for turn-by-turn navigation. Events can be scoped to a specific site via a new "At site" dropdown on the event form; those events render at the site coords on the map with a calendar badge on the pin, and a "With events" filter on /map lets gardeners find sites with any upcoming events. Same-day event creation is now allowed, and the map pin popup shows the total number of upcoming events at each site. Each garden card on /properties now links straight to its public page so partners can share it.
Owners and admins can now open a full audit log for any garden they manage. Lists every plant added, photo uploaded, and team change (invites sent, roles changed, members revoked, ownership transferred) in a single timeline with actor and timestamp. Useful for partners with multiple teammates logging activity, or anyone who wants a paper trail of who did what at a site. Accessible from the "View audit log" link on the garden card.
Partner accounts can now add teammates by work email from a new Team button on the partner dashboard. Owners and admins send an invite, the teammate gets a branded email, they set up their work Hortus account via a one-step signup (email pre-filled, no home address), and they land inside the org with the full partner view: dashboards, gardens, campaigns, map workspace. Owners can transfer ownership, change roles, or revoke access at any time. Personal Hortus accounts stay fully separate, so a gardener using Hortus at home can join their employer as a teammate with a different work email.
Partners managing large gardens (rain gardens with 50+ species, school gardens after a planting event) can now bulk-import plants from a CSV. Drag a file into the new modal on any garden card, preview each row with a green or red badge, and commit the valid ones in one tap. Up to 500 rows per import. Each row is fuzzy-matched against the plant catalog, and duplicates already at the garden bump the quantity instead of creating a second entry.
Partners and community stewards can now build a small team around each garden. Open a garden from Your Gardens, click Manage members, and send an invite to a teammate by email. They accept from a banner on the Your Gardens page and can start logging plants there with owner, admin, or member permissions. Owners can change roles, transfer ownership, and remove members; admins can invite new teammates and manage non-owner roles.
The multi-location feature for partners now reads as "Gardens" wherever you see it in the app. "Add a site" is now "Add a garden", "Your Sites (N)" is now "Your Gardens (N)", and the modals, empty states, and card actions all use the friendlier word. The backend terminology is unchanged. This is a copy-only fix to avoid the word "site" reading as "website" for partners who don't think in tech terms.
Every Hortus garden is on the map, matching how home gardens already work: exact coordinates for admin-approved public infrastructure (like a conservation-authority rain garden), approximate coordinates (400 to 600m jitter) with an "Approx." badge for everything else. Nobody is invisible. Plants at non-public gardens contribute to the heatmap and the pollinator corridor at their approximate location, so the ecological work always counts while sensitive addresses stay protected.
The Overview tab's third stat card now shows the average number of plants each active customer has logged (e.g. "~6"), a signal partners can act on: a low number suggests nudging dormant sign-ups to add more, a high number shows the cohort is planting deeply. Replaces the old Neighbourhoods count, which wasn't informative and was showing 0 on some campaigns. Regional breakdown is still available on the Reach tab.
When a partner is inside one of their own site workspaces (e.g., a TRCA rain garden), the Add Plants modal no longer shows the "Add the plants you got from [partner] — they'll be linked to the campaign" banner. Partner stewardship sites are separate infrastructure from public plant-giveaway campaigns, so plants added to a Property now skip campaign attribution entirely. Normal campaign attribution still works for gardeners logging plants into their home gardens.
Follow-up to the Playwright MCP Compose service — the entrypoint override pointed at the wrong cli.js path and the container exited immediately on start. The service now relies on the image's default entrypoint and only passes the HTTP server flags.
Added an opt-in Docker Compose service that runs Microsoft's Playwright MCP server (headless Chromium), letting Claude drive a real browser during development without requiring Node.js on the host. Separate from the existing Playwright regression test suite, which keeps running as before. Disabled by default — only starts when explicitly requested via the `mcp` compose profile.
Fixed a hydration mismatch on your own profile page that caused the invite section to flicker or briefly re-render on page load. Your referral link now resolves cleanly from the first paint — no more console errors, and the page settles in instantly.
Partners who manage multiple sites can now click "View site map" on any site card to open the /map view scoped to that location — a top banner shows "Logging to: [site]" and any plant added lands at the site's coordinates with one tap back to the dashboard when done. Each Property can carry a custom pin logo (TRCA demo sites now render with the TRCA mark, not a generic pin), and a new filter chip at the top of the map lets anyone show just residential gardens, just community sites, or both. Corridor entries for community sites drop the @ prefix (they aren't user handles), and the public heatmap now counts plants at their true site coordinates instead of attributing them to whichever partner account created them. Small copy polish across the Sites nav ("Your Sites (N)" instead of "Sites (N)", "Add a site" without the +) and a tighter partner-only empty state for gardener accounts.
Plants logged to a public Property (like a conservation-authority rain garden) now render at that site's exact coordinates on the map instead of the account owner's home address. Each site appears as its own distinct pin; when a partner uploads an approved logo, that logo shows as the map marker so their sites are instantly recognisable. Public Property pins skip the usual 400-600m location obfuscation because public infrastructure is meant to be found. Pollinator corridor calculations now include these sites as nodes too, giving a more accurate view of habitat connectivity across a region. Zero-property users see identical behavior to before.
Once you have more than one property, a switcher appears in the /properties page header so you can tell at a glance which site is the current context, and your selection carries over to the Add Plants modal. The Add Plants modal also shows a prominent "Adding to: [site name]" banner for anyone with a property, with an inline switcher right there so a plant can't silently land on the wrong site. Your active site persists across refreshes in the same browser. If you don't have any properties, nothing changes.
Organizations that steward multiple sites (rain gardens, meadows, community gardens, school plots) now have a Properties page at /properties where they can add and manage each location separately. Each Property has its own address and type so plants logged there render at the correct site on the public map rather than the account holder's personal address. Privacy-first: regular properties stay obfuscated on the public map; public infrastructure (like conservation-authority rain gardens) can be marked as publicly visible by Hortus admins, with custom map pin branding. The next PR adds a site switcher so you can tell which property you're adding plants to. Built for TRCA and other civic stewardship partners.
Groundwork for upcoming community account support (for example, conservation authorities stewarding multiple rain gardens across their region). Adds Property and PropertyMember tables with role-based access (owner, admin, member), an optional Property link on Plants, an audit trail column for tracking which staff member added each plant, and admin-approved custom map marker columns on User. No user-facing changes yet; UI, API routes, map integration, and staff invites ship in follow-up PRs.
Fixed a mismatch where the campaign landing page and partner dashboard showed different numbers for plants and participants. Both now count plants by quantity (not just entries) and include all customers who signed up through the campaign. The partner Overview tab now shows a clear at-a-glance flow: signed up, logging plants, plants tracked.
Admins can now access all partner program dashboards and the researcher dashboard directly from a new dropdown in the header. A small navigation bar also appears at the top of partner and researcher pages so admins can jump between views without getting stranded. No changes for regular users.
New internal tooling that renders branded 1080x1920 animated reel compositions via Remotion and exports them as Instagram-ready MP4s. The first reel ("Zero vs 534") uses peer-reviewed data (Tallamy & Shropshire, 2009) to make the case for native plants in 8.5 seconds. Five more hero reels and a daily automated plant spotlight will follow.
The "My Plants" panel in the map sidebar was only showing a single line ("80 plants, 24 species") and missing the rich chip breakdown. It now shows the same four colourful chips you see on your profile — native, non-native, vegetables, herbs — so you can see at a glance what your garden looks like without leaving the map.
Hortus now supports vegetables and herbs alongside native flowers. The Add Plants modal has three tabs (Flowers, Vegetables, Herbs) and we seeded the catalog with 37 common species (tomato, kale, pepper, basil, thyme, and friends). Vegetables and herbs skip the pollinator framing (a tomato isn't grown for the bees) and are never counted against your native percentage, so growing food alongside flowers doesn't cost you the Wildlife Hero badge. Your profile now shows a breakdown of native plants, vegetables, and herbs below the stats strip, and there's a new Kitchen Gardener badge for your first vegetable or herb. More varieties and categories are coming soon, shaped by conversations with gardening experts.
The Wildlife panel — supported wildlife types and food sources — used to be hidden behind a tab most people never clicked. It's now permanently visible inside your profile hero card, right between your stats and your achievements. A 4-segment progress bar shows how many of the 4 main wildlife types your garden supports (Bees, Butterflies, Hummingbirds, Songbirds), with each row showing the species count and a "Also feeds" line for nectar / larval host plants. Empty wildlife types are dimmed so you can see what to add next. The dedicated Wildlife tab is gone, so the tab bar is also cleaner: Garden, Achievements, Photos, Activity.
The Messages icon in the top bar now turns red and shows a count when you have unread DMs — same style as the Admin badge — so you'll never miss a neighbour reaching out. Inside Messages, every conversation now has a small menu (••• on the right of each row) with two new options: Delete chat removes a conversation from your view without affecting the other person's copy, and Report user lets you flag harassment or spam with a quick reason. Reports go straight to the Hortus team for review.
A handful of cleanups based on user feedback. (1) Wildlife chips on plant cards now sit cleanly under the scientific name instead of breaking up the title row. (2) Removed the gray count badges next to the Garden / Achievements / Wildlife / Activity tabs on profile pages — they looked like unread-notification reminders even though they were just inventory totals. (3) Merged the duplicate Cutleaf Coneflower / Green Headed Coneflower entries (same species, Rudbeckia laciniata) — Cutleaf Coneflower is now the canonical name with Green Headed Coneflower searchable as an alias. (4) Fixed the Map sidebar Community badge that kept showing 10 unread items even after you opened the tab — race condition between localStorage and the first activity fetch.
The wildlife support chips on plant cards now use distinct, labelled icons (🐝 Bees, 🦋 Butterflies, 🌺 Hummingbirds, 🐦 Songbirds, 🦌 Deer-free, 🐛 Larval host, 🌼 Nectar) instead of look-alike silhouettes — so you can actually tell at a glance what each plant supports. Invasive species like Norway Maple no longer display wildlife benefits at all (we don't want to encourage planting them). The Wildlife tab on your profile now separates the four wildlife types it counts toward your score (bees, butterflies, hummingbirds, songbirds) from the bonus food sources (nectar, larval host) so the "X of 4" total finally matches what's shown below. Behind the scenes: every wildlife claim in our plant catalog is now backed by a citable source (Lady Bird Johnson Wildflower Center, NWF Garden for Wildlife Keystone Plants, Rutgers E271 deer-resistance ratings, GloBI, VASCAN). We re-audited 8 species, corrected over-claims, and merged the duplicate Anise Hyssop / Giant Hyssop catalog entries.
Refreshed the pricing page around what we're actually doing: bootstrapping Canada's first residential biodiversity dataset, with simple "get in touch" cards for plant catalog API access and custom research setups. Combined the old Nurseries and Landscapers footer links into one Partner Organizations page that now features Yardsticks Nurseries (our first official partner) with their logo and socials front and centre.
The "why did you remove this plant?" popup now has an optional photo upload — snap a quick shot of the pest damage, the new container garden, or whatever's going on. Photos help campaign partners see what's actually happening in the field (if the plant was tagged to their program), and admins get a dedicated Removals tab to browse every submission.
Fixed an issue where signing up with an accidental trailing space in your username would silently break your /@username profile link and username login. Usernames are now trimmed and validated when your account is created, so what you see is what gets saved.
Your profile page is now organized around a hero card with key stats above the fold (Plants, Native %, Species, Badges) and tabs for Garden, Achievements, Wildlife, Photos, and Activity — no more scrolling past 9 stacked cards to find your plants. Click a badge in the achievements strip to see what it's for right inline, no navigation needed. The referral box now shows your live referral count and lets you customize your code with a friendly name like GREENGARDEN — checks availability as you type, just like usernames at signup. Plus: every new account now gets a referral code automatically (this was silently broken since launch).
Your level, garden score, and badges have moved from a separate modal to your profile page — everything in one place. The level chip in the top bar now takes you straight to your profile, where you can see your progress toward the next level, all the badges you've earned, and the ones still waiting to be unlocked.
Previously, only badges earned by adding plants showed a celebration toast — badges from check-ins, building corridors, or having a plant submission approved were silent or used a different look. Now every badge you earn (no matter how) shows the same big celebration so your contributions never go unnoticed.
Earn the Hortus Helper badge the first time you submit feedback. We've also given badge celebrations a fresh look — when you earn a new badge, you'll see a more prominent celebration so you know your contribution counts.
When users submit feedback, admins can now reply inline from the Feedback tab. The user gets a personalized email letting them know their feedback was reviewed, and the reply also appears in their messages inbox. The Admin button now shows a notification badge when there's pending work to check.
Clicking on an already-selected plant in search results no longer removes it from your selection. Previously, this could silently drop plants you had added.
The "gardeners joined" count on campaign landing pages now includes everyone who signed up or logged in through the campaign — not just those who have logged a plant yet.
We now track how gardeners interact with every feature on the map page — from opening modals to switching tabs to logging wildlife spottings. This helps us understand which features are most valuable so we can keep improving the experience.
The campaign plant logger button now reads "Select from our favourites above or search" to match the province favourites section.
QR code scans from print materials (business cards, flyers) now carry full campaign context through every action in the session — so sign-ups and partner inquiries are automatically attributed to the campaign that brought the visitor.
The Add Plants modal now shows curated native plant picks for your province with "nearby" badges showing how many local gardeners grow each species. Partner dashboards no longer expose street addresses in geographic data. Modals now stay open until you close them with the X button — no more accidental dismissals.
Plant search now finds results even when you use extra words (e.g. "common evening primrose" finds Evening Primrose), hyphens vs spaces (e.g. "black eyed" finds Black-Eyed Susan), or run words together (e.g. "blanketflower" finds Blanket Flower). Results are ranked by relevance so the best match appears first.
Fixed search results showing quantity 1 instead of 0 for unselected plants, and the +/- buttons now add and remove plants directly. Fixed a bug where selecting multiple plants only saved the last one. Renamed the Tree Guardian badge to Plant Guardian to accurately reflect that any plant from a community program earns it.
Campaign landing pages now show a warm background glow, proper Hortus branding, transparent partner logos, and branded social follow buttons (Instagram, Facebook) that promote the partner. Co-branded business card QR codes now redirect straight to the campaign page.
Added a printable one-pager for gardeners showcasing four key features: the neighbourhood map, wildlife insights, community-powered plant recommendations, and local seed swaps. Both gardener and nursery flyers now use standardized QR tracking codes.
Corrected the phone number on the Yard Sticks co-branded business card and fixed logo transparency so the PDF imports cleanly into Canva without a white background appearing.
Co-branded partner business cards can now be exported as print-ready PDFs. The Yard Sticks Nurseries card is the first to ship with a clean transparent logo and a one-command PDF export script.
Partner campaign pages now feature a prominent partnership banner with both logos, a warm welcome message, and a streamlined conversion flow. Screenshots walk new users through the signup process. The design adapts to each partner's brand color.
The add-plant modal now supports selecting multiple plants at once with quantity controls, whether you came from a campaign link or the regular homepage. Pick your plants, adjust quantities, and log them all in one go.
Plants from a campaign link now skip onboarding modals and open a dedicated logging flow. You can select multiple plants at once with quantity controls, all attributed to the campaign. The flow uses the partner name and clear messaging about what gets linked.
Password reset emails now correctly link to the reset page. Also updated the reset email with branded Hortus styling.
Added analytics tracking to the "Contact sales" links on the registration page to measure partner and researcher leads from in-person flyer QR codes.
Refreshed the partner value-prop page to better reflect the plant lifecycle feedback partners get from Hortus.
Added a printable nursery partner flyer with dashboard screenshots and QR code, linked from the partners page.
The homepage now shows a visual tour through every feature with real screenshots — so you can see exactly what Hortus looks like before signing up. Also added a dedicated partners page at /partners with a nursery-focused walkthrough.
The researcher heatmap now shows all of Canada when "All Canada" is selected, not just the GTA. Dormant season months are now consistent across gardener and researcher views for all regions.
Species with no platform-wide data no longer show a misleading "100% (0 plants)" Hortus average — they now show "No data" instead.
Switching between Clusters and Heatmap on the partner dashboard is now instant — no more jarring position jump. The time slider animation glides smoothly instead of stepping, and a new waveform sparkline under the scrub bar shows weekly sign-up volume at a glance.
When a user submits a new plant for catalog review, the admin now receives an email with the plant name and submitter — no more checking the queue manually.
Removed the oversized social media banner from the weekly garden update — the email now opens with a clean, compact header. Also fixed colors appearing washed out for users reading emails in dark mode.
Added privacy-respecting product analytics to understand how people use Hortus. Tracks key moments like signing up, logging plants, and reading Learn articles — with a reverse proxy to ensure reliable data collection. Person profiles are only created for logged-in users.
The Map tab on the partner dashboard now offers a heatmap view that instantly shows where your customers are concentrated. A new time slider lets you watch how your campaign spread geographically week by week — hit play to see the story unfold. Partners can also see conversion rates per traffic source, drop-off tips, species survival compared to the Hortus platform average, and what other plants their customers are growing.
Learn articles now include structured data for Google rich results, social preview images for sharing on Twitter and LinkedIn, and proper sitemap entries so search engines can discover every article.
When you scan a QR code or click a campaign link, logging your plant is now seamless — even if you haven't set up your garden type yet. The app also now shows which campaign you're logging for instead of asking you to pick one.
Partners can now share a campaign link or QR code with customers. When someone scans the QR code on a plant tag, they land on a branded landing page showing live stats and a one-click CTA to join. Each partner can customize their landing page with their own logo, website link, and brand color. The Reach tab on the partner dashboard shows the full picture at a glance: visitor count, plants tracked, survival rate, top species, geographic reach, traffic sources (QR vs social vs direct), conversion rates, and week-over-week growth. A direct link to the landing page is now in the dashboard header so partners can preview what customers see.
The "Fill Your Gaps" section in the Bloom Calendar was recommending invasive species like Norway Maple. It now uses province-aware nativity checks so you only see plants native to your region.
Garden score now factors in badges earned (+10 per badge), making diverse engagement count toward your level. Expanded from 4 tiers to 6: Seedling → Sprout → Gardener → Naturalist → Steward → Ecosystem Builder, with higher thresholds that make progression feel meaningful. The badges page got a full redesign — expandable cards with full descriptions, a level roadmap, and score breakdown.
Badges are now awarded automatically when you add plants — no more waiting. A toast notification slides in to celebrate when you earn a badge or reach a new achievement tier. All existing users have been backfilled with their earned badges.
Submitted plants now go through a curation workflow. Admins can enrich catalog entries with photos, descriptions, and wildlife tags before approving. Approved submissions earn the submitter a Field Scout badge and a notification email. Rejected submissions are cleanly removed from the garden. Pending plants are no longer visible on profiles to other users.
Native plants now show a green "Native" badge in search results. Quantity selector lets you add multiple at once. The info popup no longer duplicates content, and light requirements display properly. Sugar Maple and 48 other species now have full catalog descriptions.
Email template cards in the admin dashboard now show color-coded left borders matching their send schedule — amber for instant, blue for daily, green for weekly.
Removed the demo "Partner Spotlight: Sample Nursery" article from the Learn page. Remaining articles are real editorial content by the Hortus team.
Cleaned up the homepage — removed redundant sections and renamed "Government & Conservation" to "Partner Organizations" to better represent nurseries and other partners. Updated the About page with current data source attributions and added nurseries to The Bigger Picture.
The "Who Stopped By" wildlife cards now show a "Supported by your garden" badge. Tap it to see exactly which of your plants attract that species. Your Field Journal also shows how many species your garden supports.
The Learn section now feels like part of the app instead of a separate blog. Consistent header, cover images, compact layout, and easier to navigate.
All Hortus emails now feature the Sol Invictus logo, brand colors, and a cleaner layout. Weekly digest emails include the brand banner.
When browsing plants to add, tap the (i) icon to see details — bloom period, height, soil preference, and habitat — without leaving the search.
Added PostHog for product analytics — pageviews, session recordings, funnels, and drop-off analysis to better understand how people use Hortus.
The Mining Bee in "Who stopped by?" got a glow-up — swapped the intense macro shot for a fluffy tawny bee hanging from flowers. Much less threatening.
Cumulative users chart now shows daily granularity over 90 days instead of monthly buckets, making it easier to see the impact of specific events and campaigns.
A floating feedback button now appears in the lower right corner of every page. Tap it to report a bug, suggest a feature, or share any thought — it goes straight to the team.
Removed the "Introduced" badge from plant search results. Nativity is now shown only as "Native" (based on your province) or "Invasive" — clearer and more accurate.
When browsing plants to add, you can now filter by "Pots & containers" under Good For to see only plants that'll thrive without ground soil. Auto-enabled for balcony growers.
Hortus now asks where you grow — in a garden or on a balcony — so we can recommend plants that'll actually thrive in your space. You can update this anytime in Settings.
Plants in the catalog are now tagged as container-suitable or ground-only, based on root type, height, and growth habit. This will power smarter recommendations for balcony growers.
You now see real-time feedback as you type your username — whether it's available, taken, or invalid. No more surprises after hitting Create Account.
The "popular plants from nearby gardens" count no longer includes your own garden, so the number accurately reflects your actual neighbors.
Your province is now automatically detected from your address when you sign up, improving regional plant recommendations and community features.
New users are now logged in instantly — no more email confirmation step. The plant quickstart now asks "Want to add any popular plants?" instead of feeling like a required step, and you can always get back to it from your empty garden.
Added geography view to internal admin dashboards with a Canada map showing user distribution, metro leaderboards, and expansion opportunity detection.
When you search by a regional name like "Mayflower", the result now shows why it matched — e.g. "Trailing Arbutus — Also known as Mayflower". No more confusion when the official name differs from the name you know.
Message emails are now less noisy. You get an instant email only when someone messages you for the first time. For ongoing conversations, a daily digest tells you how many unread messages you have. Toggle in Settings > Notifications.
Anna's Hummingbird, Steller's Jay, Western Tiger Swallowtail, Cedar Waxwing, and 7 more species added to the wildlife roster. BC and Alberta users now see locally relevant wildlife in "Who stopped by?" Total roster: 39 species.
Hortus now supports neighbourhood-level stats for five major metros: GTA, Ottawa–Gatineau, Metro Vancouver, Greater Montreal, and Calgary. Each metro has sub-region definitions for local breakdowns. Growing seasons are calibrated per city.
Added 54 new native plant species for BC, Alberta, and Quebec — including Western Sword Fern, Salal, Red Flowering Currant, Blanket Flower, Bunchberry, and more. Every province now has 100+ species in the catalog. Plant nativity is now resolved per province using VASCAN data.
The wildlife spotting feature now shows every species active in your area this month — not just the ones your plants attract. A "Your garden" badge highlights species your native plants specifically support. Added 5 new birds: White-breasted Nuthatch, Downy Woodpecker, Dark-eyed Junco, Red-winged Blackbird, and Mourning Dove.
All 236 native plant wildlife tags cross-referenced against NC State Extension, Illinois Wildflowers, Xerces Society, and other authoritative databases. 70 new tags added and verified, including deer resistance for toxic/aromatic species and songbird tags for seed-producing plants.
All native plant descriptions, soil preferences, and habitat info have been rewritten for clarity. Photos updated with fresh Wikimedia Commons images. UI labels now show "Bloom Time" and "Preferred Soil Type" for better readability.
Nursery partners can now see their campaign participants segmented by experience level (Seedlings, Growers, Cultivators) and native commitment. Includes auto-generated actionable insights for cross-sell opportunities, mortality risk alerts, geographic hotspots, and demand concentration — plus species pairing analysis for bundling.
All 262 plants in the catalog now display a Wikipedia-sourced photo. No more blank placeholders — browse, search, and identify species at a glance.
Hostas, hydrangeas, peonies, and 22 more common non-native plants are now in the catalog so you can log your full garden and see an honest native percentage. Native plants in your garden list now sport a green left border — no label needed.
All 237 plant wildlife tags audited against GloBI, VASCAN, and Rutgers E271. 371 new tags added, 448 confirmed as verified, 13 misspelled scientific names corrected, 232 VASCAN taxonomy IDs populated, and deer resistance expanded from 58 to 106 plants using peer-reviewed data.
API pricing simplified to Free, Starter ($39/mo), and Pro (contact sales). Researcher and Partner accounts are now sales-led — contact us for access to the analytics dashboard and biodiversity data exports.
See which bees, butterflies, hummingbirds, and songbirds should be visiting based on what's blooming in your garden. Mark species as spotted to build your personal field journal. Community stats show what your neighbours are seeing.
Wildlife & Habitat cards are now clickable — drill down into any wildlife type to see a searchable species table with native badges, garden counts, and total quantities. Trends & Growth charts now use interactive recharts with proper Y-axis numbers and hover tooltips instead of basic SVG.
Get notified when someone sends you a message, is interested in your seed offers, or before events you RSVP to. Weekly digest emails summarize nearby garden activity every Monday. All notifications are opt-in with per-type toggles in Settings.
New /learn section with curated articles about native plant gardening in the GTA. Browse by category (guides, stories, research, partner spotlights), read featured articles, and discover plants mentioned in each piece. Built for SEO and designed to welcome guest bloggers.
New /brand page with downloadable logos, app icons, color palette, typography, and usage guidelines. Footer tagline standardized to "Every garden counts." across all pages, and Brand link added to every footer.
Paid API tiers now include live community data — not just the plant catalog. Starter gets community stats and top species. Pro adds monthly growth and native adoption trends. Business unlocks regional breakdown by GTA municipality.
The Research Portal now has 6 tabs: Overview with 8 KPI cards, sparklines, and quick insights; Species Explorer with a sortable, filterable, exportable species table; Heatmap Analytics with react-leaflet integration and full HeatmapControl (density + bloom modes); Wildlife & Habitat with community-wide pollinator coverage analysis and bloom gap detection; Trends & Growth with cumulative line charts and native adoption tracking; and enhanced Data Export. A geo-filter bar lets researchers focus on any GTA sub-region across all tabs.
The research portal now formally supports four use cases: academic researchers, ecologists, landscape architects, and urban planners. Updated pricing, about, and guide pages describe what each sub-persona gets from the dashboard. Internal persona definitions live in docs/PERSONAS.md.
Plant density and bloom density heatmaps are now exclusive to researcher accounts. Free gardeners still see a heatmap overlay when viewing pollinator corridor analysis. This change makes advanced spatial analytics a key value add for our research partners.
Garden Score is now simpler: each native plant earns 3 points, non-native plants earn 1 point. Everyone earns points for any plant they grow, but native plants are worth 3x more.
Category filter chips (Wildflower, Shrub, Tree, Grass/Sedge/Rush, Fern) are now available in Seed Exchange, Add Plant, and Wishlist — matching the map filter for a consistent experience.
The guide now covers all three roles: Gardener, Researcher / Analyst, and Campaign Partner. Partners get 8 dedicated sections covering onboarding, impact dashboard, exports, and program management. Gardener sections now include plant removal feedback, wildlife browsing, PWA install, and bug reporting.
Partners managing multiple programs can now switch between them from a dropdown in the dashboard header — no more navigating back to the list. Partners can also create new programs directly from the dashboard.
The partner dashboard logging timeline is now a proper interactive chart with hover tooltips, clean axis labels, and responsive sizing. Daily registration data is easier to read at a glance.
Participant markers on the partner dashboard map now link to gardener profiles — click any marker to view their public profile in a new tab.
Removing a plant now asks a quick question — did it not make it? Your feedback helps partner organizations track survival rates. Plants that stick around earn milestone badges at 6 months, 1 year, and 2 years. Health check-ins have been replaced with this lighter approach.
Program organizers can now view aggregated impact data for their planting programs — total plants, survival rates, species breakdown, and geographic spread. Includes a CSV export with no individual user data exposed.
Hortus now supports community planting programs. When you join a program like Take Root 2026, you can tag any plant as a program plant — your garden journal becomes an impact tracker for the organization behind it. Look for the green toggle when adding plants.
Tap a status on any plant to log how it's doing — thriving, growing, struggling, or didn't make it. Each check-in gives you a care tip tailored to your plant type. Track your plant's health over time with a mini timeline, and earn the Plant Parent badge on your first check-in.
Tap "See All Activity" at the bottom of the Nearby Activity widget to open a full filterable view. Filter by type (plants, photos, events, offers, badges, new gardeners), adjust the search radius, and scroll to load older activity.
The Garden Photos empty state now shows your plants with one-tap camera buttons — no more hunting through menus to add your first photo. Photo captions are always visible.
Nearby Activity items are now fully clickable to view that gardener's profile. Every profile page shows a Recent Activity section with plants added, photos, badges, and seed offers.
Filter plants by what they attract — bees, butterflies, hummingbirds, or songbirds — when adding plants or browsing your wishlist. No search query needed.
The plant density heatmap now covers every garden on the map (previously missing ~78% due to a data limit). Expanding the corridor card auto-enables it.
Private garden pins are now offset 400-600m (was 100-150m) from your real address — several blocks away instead of next door. Violet pins distinguish approximate locations.
Manage your account from /settings: update your password, toggle location privacy, export all your data as JSON, and delete your account.
When something goes wrong, you can now report the issue directly from the error page. Reports go to the admin dashboard for triage.
Hortus can now be added to your home screen on mobile. Shared links on Twitter/X now show a large preview image.
Upload photos of your plants and garden. Browse a community feed of recent garden photos from nearby gardeners.
Resolved issues with email confirmation links and password reset flows not completing correctly.
New sign-up flow asks for your garden address upfront so your location is set from day one.
See which pollinators, songbirds, and butterflies your plants support. Get recommendations for what to plant next to fill wildlife gaps.
Private gardens no longer appear as phantom clusters on the neighbourhood map.
Refreshed all homepage and onboarding copy around the three pillars: grow with purpose, connect with neighbours, discover your landscape.
Added UUID validation, input sanitization, and generic error messages across every API route.
Resolved a bug where new users could not complete sign-up when email confirmation was turned on.
Researchers can now purchase export licenses to download anonymized biodiversity datasets via Stripe checkout.
See your garden's bloom coverage month by month and identify gaps where adding a new species would extend pollinator support. Now part of Bloom Finder.
A public REST API for accessing aggregated, anonymized plant data. Interactive docs at /data/docs.
Researchers and developers can generate and manage API keys from their settings page.
Updated typography to Fraunces display font and refreshed call-to-action buttons with warm amber accents.
Plants are now automatically classified as native or non-native. Admins can review and approve community-submitted catalog entries.
Introduced a structured catalog with bloom periods, height ranges, soil preferences, and wildlife tags for every species.
Initial public launch with secure authentication, username-based login, polished UI, and core plant tracking features.