Skip to content

v2.0.0 — anyplot.ai Relaunch

Choose a tag to compare

@MarkusNeusinger MarkusNeusinger released this 23 Apr 21:49

The project rebrands from pyplots.ai to anyplot.ai, ships a redesigned homepage, an Okabe-Ito color palette, and first-class dark mode for both the site and every plot preview. Major because URLs, schema, and the public domain all change.

⚠️ Breaking — bookmarks should switch to https://anyplot.ai. Spec URL structure changed (see below).

Highlights

  • 🎨 New homepage & visual identity: hero, libraries / palette / specifications sections, MonoLisa typography, Okabe-Ito colorblind-safe palette, theme-adaptive chrome.
  • 🌗 Dark mode (site + plots): backend renders dual-theme previews — every plot ships plot-light and plot-dark variants. Theme tokens drive all chrome; mandatory theme-readability check in the AI quality pipeline.
  • 🌍 Rebrand: domain migration from pyplots.ai to anyplot.ai with nginx redirect-loop fixes.
  • 🔗 URL restructure (breaking): canonical spec URL is now /{specId}/{language}/{library}. Hub view consolidated under /{specId} with optional ?language= filter. Catalog → Plots rename.
  • 🗄️ Schema (breaking): multi-language path restructure with new languages table. Implementations expose preview_url_light / preview_url_dark (legacy preview_url aliases the light variant).

CI / infrastructure

  • 6 workflows migrated from service-account keys to Workload Identity Federation.
  • Bulk-generate moved to paced sequential dispatch with a global mutex.
  • Daily cron regenerates the oldest not-recently-updated spec on a 4h cadence with a Berlin-evening blackout.

Quality

  • Mandatory dual-theme rendering and readability checks in impl-generate / review.
  • WCAG-AA contrast pass for dark-mode adaptive chrome.
  • MUI 7 → 9, Vite 7 → 8, FastMCP v3, FastAPI 0.136, anthropic 0.97, plus security bumps for cryptography / mako / authlib / python-multipart.

Migration notes

  • Bookmarks: use https://anyplot.ai.
  • Deep links: update /specs/{id}/{library}/{specId}/{language}/{library} (e.g. /scatter-basic/python/matplotlib).
  • MCP clients: point config at the new anyplot.ai endpoint.
  • API consumers: prefer preview_url_light / preview_url_dark; legacy preview_url keeps working as the light variant.

Full Changelog: v1.1.0...v2.0.0