Milanote Unleashes Creativity at Scale with Neo4j

10x

initial app load time improvement with Neo4j graph database

400%

faster search speed for better user experiences

670 Million

relationships across 340 million nodes

Ideas are messy. Creative teams at companies like Uber and Chanel generate thousands of ideas daily, with thousands more sketches, notes, and comments that need to be organized and shared. Milanote’s visual collaboration platform turns this chaos into clarity, serving as the central nervous system for over five million creative professionals worldwide.

But Milanote faced a painful irony: their most valuable users suffered the worst experience juggling across these hundreds of thousands of assets. As creative teams scaled their usage, Milanote’s relational document database struggled to navigate folder hierarchies and permissions, causing load times to stretch into 20+ seconds. These system-wide slowdowns meant collaborators couldn’t access shared assets, view updates, or contribute to ongoing projects – effectively freezing creative workflows across entire teams.

“Our heaviest users were having the worst experience. We needed our power users to be our best advocates, not victims of our success.”

Glenn Allen

Founding Engineer, Milanote

The solution came from rethinking how Milanote’s data was structured. By implementing Neo4j’s graph database alongside their existing systems, Milanote slashed load times by 10x and eliminated system instability‚ transforming their most active users from their biggest challenge into their strongest champions.

Milanote Power Users Deserve Great Experiences

Milanote’s front end is powered by a sophisticated file system. Folders, aliases, and hierarchies in a database tree structure enable users to organize and share creative assets as they see fit. To control what content appears on each board, Milanote verifies permissions for all collaborators by navigating the database records. 

“A single user can generate hundreds of thousands of elements over time,” explains Allen. “Our document database had to traverse every relationship to determine what content to display. As our power users scaled, these database operations went from taking milliseconds to taking seconds – then dozens of seconds.” The result set off alarm bells for Allen.

“Customers needed to be able to log in without waiting on long application initialization times,” says Allen. We aimed to make it so they could instantly start using our app, even prior to all their data loading.”

The situation also impacted Milanote’s operating budget. “Large database traversals were using significant amounts of memory in our MongoDB database. We were continually hitting limits and needed to upgrade tiers every few months. We also had to highly provision each of those instances. This came at a significant cost,” Allen says.

The solution required fundamentally rethinking how Milanote handled relationships in their data. While document databases excel at storing content, they struggle with complex traversals. Graph databases, by contrast, are purpose-built for navigating relationships — exactly what Milanote needed. Allen made the business case for introducing Neo4j graph database as a microservice to support traversals, while retaining MongoDB as a content store.

“We compared Neo4j to other databases in terms of performance, and were even willing to train the team to use new technology,” Allen says. “Neo4j came out ahead for performance; it has a mature community; and we were impressed by the product documentation.”

Milanote deployed Neo4j AuraDB, a fully managed graph database that gives the company pay-as-you-grow flexibility. Milanote oversees a multi-cloud environment, with AuraDB running on Google Cloud Platform. A dozen developers on Milanote’s team found it easy to learn Neo4j Cypher Query Language to optimize database query processes.

“Because of the expressiveness of the Cypher query language we use with Neo4j, we can write a single query that is much more efficient, avoiding memory issues,” Allen says.


Above: Milanote data model example demonstrates the relationships between nodes in its Neo4j graph database.

From Performance Bottleneck to Innovation Engine: Neo4j’s Impact

Implementing Neo4j drove immediate improvements in three areas:

Performance Breakthroughs:

  • Initial implementation: 2-3x faster app launch times
  • After optimization: 10x overall performance improvement
  • Power user load times: from 20+ seconds to milliseconds
  • Search speed: 400% faster experience
  • Real-time collaboration:
    • 3x quicker board export
    • 5x quicker notifications & user activity load times
    • 97% faster loading of trash with 200+ items
    • 79% faster loading of columns with 100 items

Infrastructure Optimization:

  • Eliminated MongoDB tier upgrades for over 12 months
  • Reduced storage provisioning and CPU requirements
  • Maintained performance while scaling to 340 million nodes and 670 million relationships
  • Freed engineering resources from maintenance to innovation

Business Impact:

  • Transformed power users from friction point to platform advocates
  • Enabled new features previously impossible due to performance constraints
  • Accelerated mobile experience development
  • Enhanced search and filtering capabilities
  • Unlocked real-time collaboration at scale

“Neo4j didn’t just solve our performance challenges – it changed how we think about building features,” says Allen. “We’ve gone from spending our time managing database problems to focusing on what matters: helping our users collaborate and create.”

The introduction of Neo4j also allowed Milanote to reduce its investment with MongoDB. “We were able to lower our storage provisioning and go into a low CPU mode. We had been on the brink of having to move to the next MongoDB tier, but were able to avoid that. We haven’t had to upgrade tiers for a year now since adding Neo4j,” says Allen.

That shift has resonated across Milanote’s customer base. “Milanote has become our digital way to look at inspiration, see process, and critique work,” says a brand design manager at Uber. A photographer at Chanel puts it more personally: “Milanote is a visual extension of my brain.”

Looking ahead, Milanote plans to use their enhanced performance to push creative collaboration further:

  • Developing advanced tagging systems for better content discovery
  • Building aggregated task lists that span multiple project boards
  • Expanding mobile capabilities for creation on the go
  • Exploring new ways to visualize and navigate creative workflows

“Neo4j enables Milanote to be what we always envisioned: an essential tool for creative professionals that spurs innovation in how new ideas and products come to life,” concludes Allen. “We’re not just managing data anymore – we’re enabling creativity at scale.”

Get in Touch

Curious about what insights you could unlock for your business with graph-powered solutions? Let’s talk — reach out, and we’ll get in touch.

Partners

  • Amazon Web Services (AWS)

Use Cases

  • Product

Industry

  • Software

Products Used

  • Neo4j AuraDB Professional
  • Asia Pacific

Explore More