Build log

Everything we've shipped.

A real, version-by-version record — not a highlight reel. This is what's actually being built behind the scenes.

Plugin v0.45.6
  • Fixed the signup form's submit button and disclaimer line rendering edge-to-edge on mobile, breaking past the page's normal side padding — both were implicitly depending on the theme's global box-sizing reset reaching them rather than being self-contained, unlike the input fields above them which already set this explicitly
Theme v2.9.33
  • Added the Google Search Console site verification tag to the head, and requested reindexing to fix Google's stale, incorrect search listing (which was showing "Untitled" and a leftover privacy-opt-out line instead of the real title and description)
Theme v2.9.32
  • Reverted the header.php-embedded landscape fix back to living solely in style.css at the 900px width threshold — the header.php workaround was ruled out as necessary once the remaining issue traced to one specific phone not reflecting updates at all, rather than a genuine caching problem with the CSS file itself
Theme v2.9.31
  • Found the actual reason the phone-landscape nav/pricing fix kept failing to reach a real device — style.css was being served from a host-level asset cache that ignores the ?ver= cache-busting number entirely, so it kept serving a version from several updates ago no matter how many times the cache was cleared. Moved the fix directly into header.php, which runs fresh on every request and isn't a static file that cache targets, guaranteeing it actually reaches every page regardless of that caching layer
Theme v2.9.30
  • Switched phone-landscape detection (hamburger menu and pricing table) from viewport height to viewport width — a real iPhone 16 Pro Max reported an unusually tall landscape height that no height-based threshold reliably caught, so width, which stays well under 900px for every phone turned sideways, replaces it as the more robust signal
Theme v2.9.29
  • Widened the phone-landscape detection threshold (used by both the hamburger menu and the pricing table) from 500px to 600px of viewport height — some larger phones run close enough to the original threshold in landscape that they were slipping through uncaught, still 200px+ below any real tablet's landscape height so the phone/tablet distinction stays safe
Plugin v0.45.5 · Theme (signup page)
  • Widened the signup and login forms from 420px to 520px — they were sitting narrow and small in the middle of a lot of unused space on desktop screens while the rest of the page correctly used the full width
Theme v2.9.28
  • Traced the persistent Help/Changelog mobile padding issue to a different cause than originally suspected — it worked correctly when shrinking a desktop browser window but failed on a real phone, which pointed at the viewport meta tag rather than caching or the padding rule itself. Added overflow-x:hidden as a safeguard against any element forcing the mobile viewport wider than the actual screen, which real phones react to but a shrunk desktop window never would
Theme v2.9.27
  • Extended the hamburger menu to also trigger in phone landscape orientation — a phone lying sideways is often wider than the 768px width breakpoint alone would catch, so it was falling through to the full desktop nav. Targeted by short viewport height specifically, so an actual tablet in landscape (much taller) correctly keeps the full nav
Theme v2.9.26
  • Widened the guaranteed padding fix on Help and Changelog from just phone-width to the full range below tablet (768px), matching the same breakpoint used site-wide for the hamburger menu — no gap left where it could silently revert to zero
Theme v2.9.25
  • The mobile padding fix on Help and Changelog still wasn't taking effect after two attempts at the shared stylesheet, despite the code itself checking out clean each time — added a guaranteed, page-level override directly in both files with !important so it can't be silently beaten by anything else in the cascade
Theme v2.9.24
  • Found the real cause of Help and Changelog still touching the screen edges on phones — a shared section class was using a padding shorthand that silently zeroed out the page wrapper's horizontal padding on every page combining the two, not just these two. Fixed at the source instead of patching each page individually, which also corrected the same latent issue on the signup page
  • Added a WordPress theme screenshot, so the theme no longer shows a blank thumbnail in Appearance → Themes
Plugin v0.45.4
  • Sent a real, branded HTML welcome email the moment a new account verifies its email
  • Caught and fixed a UTF-8 charset bug in that same email — em-dashes were rendering as garbled characters in real inboxes until a proper <meta charset> tag was added
  • Caught and fixed a second bug in the same code — a PHP filter added with an anonymous function couldn't be removed afterward using a string reference, which would have silently forced every subsequent email in the same request into HTML mode
Plugin v0.45.3
  • Added per-guide view tracking, shown on each dashboard card
  • Deliberately excluded the designer's own visits, and any visit that never got past a password gate, from the count
  • Deduplicated repeat views from the same visitor to once per day, so refreshing doesn't inflate the number
Plugin v0.45.2
  • Fixed the new Contact Us form so the sender's name and email show directly in the message title, not just buried in a field — visible at a glance in the admin list
  • Added proper author support to that post type so it also gets its own admin list column
Plugin v0.45.1
  • Added a Contact Us button to the builder, next to Version History and Settings
  • Submissions both email support directly and save as a permanent, searchable record in the admin
Plugin v0.45.0
  • Built a one-time welcome walkthrough for brand-new accounts with zero guides
  • Marked as seen the instant it's shown, server-side, so it can't reappear even if someone closes the tab without dismissing it
  • Fixed the homepage nav's anchor links (#how, #compare, #pricing) to use full URLs instead of relative ones, since they'd silently do nothing when clicked from any page other than the homepage
Plugin v0.44.6 · Theme v2.9.18–v2.9.19
  • Added page-specific meta descriptions and Open Graph/Twitter tags across every public page
  • Designed a real share-preview image using the actual brand font, not a placeholder
  • Built a minimal sitemap covering only true public pages — deliberately excluding published brand guides, which stay private-by-link on purpose
  • Added a real favicon (a bold monogram, since full logo text doesn't read at that size) and made it reach every page — including the standalone dashboard, builder, and billing screens that skip the normal header entirely
Plugin v0.44.5
  • Ran a real accessibility pass: fixed signup and login form labels that were never actually associated with their inputs
  • Found and fixed a genuine WCAG AA contrast failure in one of the site's grays (3.6:1, below the 4.5:1 minimum), and traced it into four separate stylesheets where it was independently defined
  • Verified image alt text, keyboard focus visibility, and confirmed a couple of other labels flagged as risky were actually already valid
Plugin v0.44.4
  • Fixed the "Made with Gydlyne" watermark to re-check the guide's current owner every time it renders, instead of trusting a saved preference — closing a loophole where a transferred guide could permanently keep a paid feature nobody was paying for anymore
  • Added a new FAQ entry explaining exactly what happens to a client's guide if a designer's subscription lapses
Plugin v0.44.3
  • Fixed the post-checkout success message showing the wrong (pre-purchase) plan — Stripe's webhook that updates the account can lag a second or two behind the redirect, so the tier is now read from the checkout URL itself instead
Plugin v0.44.0–v0.44.2
  • Added real monthly/yearly billing, wired to separate Stripe price IDs for each tier rather than a cosmetic price swap
  • Built a dedicated post-checkout success page in place of just redirecting back to the plain pricing grid
  • Added the same yearly billing disclaimer already used on the homepage
Plugin v0.42.0–v0.43.6
  • Rebuilt the billing page's pricing cards from scratch to structurally match the homepage exactly, after tracing a stubborn rendering issue down to the billing page's own background color accidentally matching one of the button colors it was supposed to contrast against
  • Added all four tiers with real, working Upgrade actions
Plugin v0.41.0
  • Added rate-limiting to designer login — same protection the guide password gate already had, 5 failed attempts locks out for 15 minutes
  • Built a themed 404 page in place of WordPress's bare default
Plugin v0.40.0
  • Added a dismissible warning when the builder loads on a phone-sized screen, since the builder genuinely isn't designed for that width
  • Fixed the published guide's search bar and footer alignment on phone portrait view
Plugin v0.39.0–v0.39.2
  • Renamed the "Solo/Pro" tier to "Pro" everywhere it appeared — homepage, builder, billing, admin settings
  • Fixed the billing page's tier cards, which had never been updated to match the real, current feature set for each plan
  • Updated Starter's guide limit from 3 to 5 across every place it's enforced or displayed
  • Fixed a signup page centering bug caused by its wrapper being a different width than login's
Plugin v0.36.0–v0.38.0
  • Built deliberate guide transfer — a designer can hand a guide to a client's email from the builder; existing accounts receive it instantly, new ones get an invite that creates their account and claims the guide in one step
  • Built the automatic lapse/freeze system: a 7-day warning period, then oldest-guides-first freezing (read-only for the designer, still live for the client), then fully offline after 6 months of no action — content is never deleted
  • Resubscribing automatically restores everything, no manual steps required
  • Caught and fixed a serious, session-spanning bug while building this: every tier-check added earlier (custom fonts, watermark, version history) was reading from the wrong place in the config object, meaning real paying subscribers would never see their own paid features
  • Added rate-limiting to the guide password gate
Plugin v0.34.0–v0.35.0
  • Introduced password-protected guides as a real, paid-tier feature — starting at Starter, enforced server-side, not just hidden in the builder UI
  • Optimized version history's storage — checkpoints only at meaningful save milestones instead of every single save, and skipped entirely when nothing had actually changed
Plugin v0.33.0
  • Built version history and one-click rollback for Pro and above — every save kept as a restorable snapshot, with restoring itself snapshotted first so even a restore can be undone
Earlier foundation
  • Designer signup, login, and email verification, with publishing blocked until an account is verified
  • The core four-tier pricing structure and free-tier content limits (5 photos, 6 brand assets)
  • Trash and restore for guides, with a 30-day countdown before permanent deletion
  • The full guide builder across all three templates — Editorial, Bold Blocks, Photo-Led
Theme v2.8.0–v2.9.21
  • Rebuilt the homepage template preview scrolling to calculate its own depth dynamically at runtime, replacing a guessed fixed percentage that broke on real devices
  • Built a real hamburger menu below 768px, with everything else tucked inside it — animated open/close, proper aria attributes, closes automatically when a link inside it is used
  • Fixed pricing tables to correctly stack on both portrait and landscape phone views
  • Fixed several genuine cross-device bugs found through real device testing on iPad and iPhone — footer alignment, form field stacking, a flexbox centering quirk specific to iOS Safari's scroll behavior
  • Built the Help docs page, the Changelog page you're reading now, and added both to the site's nav and footer