We are renaming the core concepts in Speckle to be more widely understandable - in a backwards-compatible manner and with a graceful migration path forward.
Speckle started as a geeky product: as hackers in the AEC industry we wanted to scratch our own itches. Why did it have to be so complicated to share models with others, view them online, or query BIM data? Speckle was born as the answer: a fast by default object based data platform for AEC, where diffing just happens and each atom of your model is versioned and tracked. And, of course, open source - because, as developers, we want to be in control—and you do too.
Despite Speckle’s geekiness, we saw the community quickly grasp its complexity and put it to good use. Nevertheless, we have now reached a turning point: even Dim’s dad (in his late 60s), an architect refusing to retire and SketchUp modeller, is now using Speckle. Our audience is now much wider than at the start!
When we hit the ground with Speckle 2.0, “commits” felt like the way to indicate snapshots in time of models. Branches - geek alert - are, obviously, collections of commits. Naturally, they are grouped inside “Streams”, which in Speckle-land are the equivalent of a repository. Everybody gets it, right? Eh… right?
The feedback from our community, partners and customers was unanimous: you get it, but your colleagues don’t. It takes ages to explain Speckle, and the existing concepts do not stick. So here’s what we’re going to do:
- Streams will be renamed to Projects
- Branches will be renamed to Models
- Commits will be renamed to Versions
The structure stays the same. Projects contain multiple Models, and each model can contain multiple Versions.
Backwards Compatibility & Forward Future
For the more technical minds, we know what you’re thinking: will I have to change my scripts and code? Well, we’re developers too. We hate when APIs change without warning - so the answer is no. We simply flag endpoints as deprecated, but we will keep them around for a long time. Theoretically, we can keep them around forever, but we hope we won’t need to do that.
You also might be wondering if we are sneaking in other changes. The answer is yes—we are changing some ways things behave: models can now be infinitely nested, for example. Comments are now accessible throughout all the versions of a model. Nevertheless, all these changes live under new GraphQL API routes that do not conflict with the old ones.
We’re talking a lot about API changes, but how does that impact the Speckle that you see and use? Well, the renaming operation isn’t just a “find and replace” exercise throughout the codebase. It’s driven by product and user needs which manifest as two current initiatives: FE2 and DUI3.
FE2 stands for Frontend 2, and DUI3 stands for Desktop User Interface 3 (versioning is also hard, but that’s a different story). DUI3 is in early stages of development, but FE2 is now available on our testing server and is a complete paradigm shift from the old web app. It’s designed around the concepts of Projects, Models, and Versions and is much more approachable for old and new users alike.