Dolt + Threekit: Add Version Control to Your Application
Dolt is a version controlled SQL database. How would you use such a thing?
Are you building a data curation application for your customers? Are your customers asking for version control features like branches, merges, and diffs on the data being curated? Are you looking for a tool to add those features to your application easily?
Threekit chose Dolt to add version control features to their 3D modeling application. Dolt's diffs, branches, and merges integrate seamlessly into their application providing powerful version control features for their customers.
Threekit
Threekit builds three-dimensional (3D) modeling software. Threekit takes your product catalog, CAD files, bill of materials, ad-hoc spreadsheets, etc and combines these inputs to produce beautiful, customizable 3D models that can be used in a number of business applications.
Need pictures of all the possible fabric and logo combinations on a hoodie to display in a customizable widget on your website? Threekit can build those pictures. Want to stick a virtual sofa in a live camera iPhone app so people can see if it fits in their living room? Threekit can build the sofa model. With the proliferation of visual e-commerce experiences, Threekit is a must-have partner to aid your transition from physical, in-store presentation to digital experiences.
How Threekit Uses Dolt
As you can imagine, building 3D models takes a lot of configuration. You have a number of different, parallel evolving inputs. For instance, items are being added to the product catalog while CAD files are being reworked for other products. All this change can make settling on a single, authoritative version of configuration difficult.
Threekit's relatively technical user base was familiar with a solution to the "multiple, parallel-evolving input problem": branches. When Threekit's engineering team decided to add branches to their application, they started by searching "git database" and quickly found Dolt. Ben Houston, Founder and CTO of Threekit, said "When thinking about the design of a branch and merge workflow for our product, we thought a Git-like SQL database would be a perfect fit. So, we searched git database and were pleasantly surprised one existed."
Dolt was a perfect fit for Threekit because they were already running a SQL database to back their application. Dolt was exactly what they needed to quickly and easily add branches to their application for their customers.
After a few months of implementation, Threekit's branching product is live.
The product allows merges using Dolt's three-way diff and merge functionality.
Carl Steiger, Threekit's VP of Engineering, said “Without Dolt, the concept of version controlled data would have taken more time and engineers to implement, hijacking the roadmap at a critical time for the company.”
Knex
Threekit integrated Dolt into their application using Knex, a popular Javascript SQL Query Builder. Dolt just works with all your favorite tools in all your favorite languages. Knex just works with Dolt.
Threekit used Knex to access Dolt's version control functionality through system tables, functions and procedures. This interface worked well with Knex and allowed for quick development of Threekit's branching and merging functionality.
David Phillips from Threekit says, "If you know SQL and Git, the Dolt SQL interface is really intuitive. It just worked with Knex. No issues."
Enterprise Support
Threekit opted for Enterprise Support early in their development cycle.
During development, Threekit particularly leveraged a private Discord channel to talk directly to Dolt developers. David Phillips from Threekit says, "A Dolt engineer was always available to answer any of my questions when they came up."
Additionally, Threekit self-hosts Dolt and wanted the peace-of-mind offered by the Dolt's team 24/7 coverage. Though they have never needed to engage a Dolt engineer off hours, their team has access to the Hosted Dolt paging system to get a Dolt engineer engaged off hours.
Conclusion
Threekit uses Dolt to add branch and merge to their 3D modeling application. Have a similar use case? We'd love to chat about it. Come by our Discord and we'll help you figure out how Dolt can help you.