I’m striking out as an Open Source Federated Network maintainer for what is:
The network is built with a growing range of tools and components perfected over my career and made to fit the dash framework within the modern agentic age.
This catalogue of packages and hooks can be found open sourced within a network of expanding projects and hooks hosted at:
The 2plot.ai - Give Away
5 events I’m hosting will win an individual either a $200 Claude code Max subscription or $300 credit into 2plot.ai.
Event 1: 31 day osrs challenge, whomever creates an Iron Man account and gets the furthest in the largest free MMORPG wins. Take a screenshot of a message sent in game 2plotai at the start of your journey and at the end with the skills tab open and a short message about what you learned from the game.
Event 3: Component Index, whomever builds the best dash app with one or more of the components in this catalogue wins
Event 4: Whomever creates the best video about anything in 2plot.ai related wins. You could re-upload a video clip and that could count as a winning submission if their are no other submissions
Event 5: Find a bug , which ever one of you nerds pokes and prods the hardest and finds the most nasty bug in the network wins.
Direct Message me directly.
Library
What it is
Docs
PyPI
dash-pannellum 2.0
360° panoramas, virtual tours, multi-res tiles and 360° video (WebGL, no plugins)
The best part? One single person can take home the entire competition. Tbh, competition looks pretty weak. Everything is going to take place over the next 31 days so mark your calendar for September 7th as the last day to submit an entery. Either message me directly, post in this thread or create a new topic or post in an existing outside thread. Just #2plotai anything from today - September 7th will qualify best of luck to the handful. I will announce the winner or winners on or before September 14th.
I was planning to try all your packages, or some of them, because I really like them. I would do it outside of the challenge, but if there is one, I will join.
Direct message me or post in this thread or an adjacent thread. Doesn’t need to be shared on the plotly forum, can be on any social media site.
Rules are pretty laid-back, best effort and quality projects submitted will qualify and each event will have a clear winner. But have fun, hopefully learn some stuff.
Each event will have a single winner and a single person can win multiple or all the events.
I’m excited to give back, have a war chest stacked up. Ideally id like to up that ante every month, more competition. More people sponsored for a more sustainable time.
I’ve decided to play in my own competition, specifically event #1 the osrs challenge. I’ll be live streaming my gameplay and will just be vibing and hosting some conversations over the next few weeks. Might find myself, winning back my $200 lol
We have our first entry in the Dash open-source competition — a big shout-out to @Ester for submitting first (and earning the hidden $50 first-submission bonus ). Remember it always pays to be first! Her app is a color picker component that changes colors as you click around the wheel.
The app is impressive, but there was a slight lag on click from the initial Plotly figure example, it was taking 3s to respond instead of an instant response.. The cause: the wheel was iterating through a JSON file of 200,000+ colors on every update. Within the scope of a color picker.. not a big deal but in a production project that has multiple Plotly charts with larger datasets it could be a real application functionality liability. That could lead to a bad user experiences within your dash applications and Plotly figures. The fix is a great teaching case for partial property updates: instead of returning an entirely new figure, wrap the change in Patch() so the callback only sends the properties that actually changed. I also added an OnHover interaction using a client-side callback to keep the wheel feeling instant. Two small inclusions mentioned changed the entire feel of the color wheel.
In the video I walk through the exact callback changes on the wheel figure. If you’re building anything with large figures or heavy payloads, Patch() is probably the highest-leverage optimization you can reach for.
@begininvoke spotted what might be an issue in package-lock.json around line 3135. Relating to a CVE-2026-1615 Node.js liability. Upon further inspection the the vulnerable code was unreachable in this project: this is a Python / Dash application, and the entire Node dependency tree turned out to be a build-toolchain vestige inherited from an upstream fork of dmc - no webpack config, no TS source, no CI step, and no served assets use it. No Node process serves traffic and nothing evaluates user-supplied JSONPath expressions, so neither the RCE nor the browser-XSS vector applied. It was however, being npm installed into production images as dead weight.
Current Leader Board
Event 1: @PipInstallPython
Event 2: @Ester + $50 Bonus for being first submission!
Event 3:
Event 4:
Event 5: @begininvoke
We have a new submission from @Ester for event #3 - Excalidraw KPI Mockup building from the https://excalidraw.2plot.dev component it looks like a nice introduction to understanding how to Pre-populate the canvas on mount with elements, appState overrides and library items.
Current Leader Board
Event 1: @PipInstallPython
Event 2: @Ester + $50 Bonus for being first submission!
Event 3: @Ester
Event 4:
Event 5: @begininvoke