Bayan Flow 0.5.0: Tree Traversals, Graph Algorithms, and Turning a Visualizer Into a Platform
Bayan Flow 0.5.0: Tree Traversals, Graph Algorithms, and Turning a Visualizer Into a Platform
Version 0.5.0 of Bayan Flow has shipped, and it's the biggest one so far. I'd promised tree traversals and graph algorithms a while back. They're finally in, plus Google sign-in, saved favorites, study notes, a Pro waitlist, and a full infra move.
Tree Traversals
Six new algorithms have been added: Inorder, Preorder, Postorder on the DFS side, and Level-order and Zigzag for BFS. Additionally, Morris Traversal, which I'm a little obsessed with, has been implemented. It visits every node in O(1) extra space by temporarily rewiring right pointers instead of using a stack or recursion. The first time you trace through it by hand, it genuinely feels like a trick. The tree generates as a real BST with in-order values, so it's never a random blob that means nothing. You can size it from 3 to 31 nodes, step manually or autoplay, and every algorithm has a full Python implementation sitting in the code panel.
Graph Algorithms
Seven graph algorithms have been added: Topological Sort, Kahn's, Kruskal's, Prim's, Tarjan's, Kosaraju's, and Floyd-Warshall. Most render as a node-link graph, while Floyd-Warshall gets a matrix view. An 18-scenario dropdown has also been added, so you get something resembling a real graph instead of random noise every time.
Turning a Visualizer into a Platform
This is the release where Bayan Flow got accounts. You can sign in with Google and get all 45 algorithms, manual stepping, every speed preset, fullscreen, sound, video export, code and insight panels. You can also favorite up to 20 algorithms, write notes on any of them, and all synced through Supabase. Auth runs behind Supabase RLS, and deleting your account is self-service: an edge function clears your profile, favorites, and notes for you.
Free Tier
I want to be upfront about the free tier. No account still gets you 18 algorithms across all five categories and 12 visualizations a session, then a prompt to sign in. Nothing that used to be free got taken away. I just couldn't keep everything unlimited forever and pretend that was a sustainable plan. There's also a /pro waitlist now. Nothing's built yet, but early sign-ups get 50% off the lifetime price whenever it ships.
Infrastructure
The boring infra stuff has been moved off Netlify onto Cloudflare Workers. The actual domain has been bought, so production is bayanflow.com and staging is dev.bayanflow.com. Umami has been swapped for PostHog. SEO has gotten the full treatment: hreflang for English, French, Arabic, real Open Graph and dynamic meta tags, a 404 page, sitemap, robots.txt, and an llms.txt and API catalog so AI agents crawling the site have something structured to parse.
Testing and Completeness Checks
Tests have increased from 65 files to 173. Roughly 925 tests at 0.3.0 to over 1,800 now. Completeness checks have been added to make sure the algorithm registries stay in sync across categories, Python code, pseudocode, and sound descriptions. This ensures that if an algorithm is added and forgets to wire up one layer, CI catches it instead of it shipping quietly broken.
Smaller Stuff
Settings collapse into a bottom sheet on mobile, reduced-motion support has been added, sound controls have been moved into the main control panel (should've been there from day one), and video export got a share modal with captions.
The Hard Part: Graphs
A node-link layout isn't something you render like an array. You need an actual layout pass that keeps edges legible while nodes are in motion, and I underestimated how long that would take to not look like spaghetti. Floyd-Warshall needed its own separate matrix substrate, basically a second rendering path for one algorithm. Localizing step descriptions for 13 new algorithms across three languages, with Arabic running right-to-left, was slow in a way that never shows up in a changelog but quietly eats a week.
What Kept Paying Off
The registry-driven architecture kept paying off. Adding two entire categories was mostly config, barely any new component logic. The boring architecture work I did months ago is the only reason this release didn't take twice as long.
What's Next?
0.6.0 is Dynamic Programming and String Algorithms. Then the Pro plan features (after hopefully getting enough waitlist signups)
Comments
No comments yet. Start the discussion.