Slice machine clarity

Hi,

I'd like to request some clear and honest communication about slice machine and what you can and can't do with it, and what is and isn't recommended at this stage.

There are many, many questions on this forum about slice machine and I would even say mixed messages about when to use it, when not to use it, migration, etc.

As a developer, I've found the communication about slice machine really confusing. Especially when it comes to existing repositories and what is/isn't supported (integration fields for example).

As an example, on What Is Slice Machine? - Documentation - Prismic and Set up Prismic with Next.js - Documentation - Prismic, I can't seem to find any clear communication that you should not use Slice Machine for existing repositories, only for new production repositories, as there is no migration path at present.

Is it just me, or would that be super helpful to have on that page? I know that our development team has attempted to follow that guide on an existing repository and got half way there before realising things like integration fields aren't supported.

This post Migrating a large site - #21 by dan.parker comes to mind as a clear example of all of the confusing surrounding it. I totally agree with the point in this post about documentation - if I go to Next.js and Prismic - Documentation - Prismic, everything is about Slice Machine. For those of us with existing repositories that can't migrate to slice machine, all of the previous documentation has disappeared and we no longer seem to have a reference about how to build things with the legacy builder and slices.

Can I suggest those pages be updated with clear communication about when to follow those guides and when not to follow those guides. Also, perhaps a page with a matrix or something explaining exactly when/where to use slice machine and what isn't/isn't supported (integration fields, etc) at the moment and some clear guidance about when we can expect a migration path.

I'd be really happy to take some feedback here from the Prismic team, and also understand the experience from other developers about slice machine for existing repositories.

cheers,
Scott.

3 Likes

Hi Scott,

Thanks so much for this question! Prismic has always been product-led, so we prioritize clear communication. We want developers to benefit from Prismic, and we also want developers to understand the limitations of Prismic.

It's good to know that you are looking for more clarity about Slice Machine, and we're grateful for the specific examples that you've mentioned.

For documentation, our technologies guides (like /docs/nextjs) explain our recommended implementation, which changes along with the technology. As you can imagine, there are a lot of moving parts:

  • Framework updates
  • Prismic API updates
  • Slice Machine updates
  • SDK updates

Maintaining versions of the guides for all of this software would be confusing, unwieldy, and error-prone.

Having said that, we maintain versioned technical references for all of our packages:

If you need to know how a function or component works, you can always reference the versioned documentation.

We also have documentation for the Legacy Builder:

However, none of this addresses your main point about communication, and I don't have a response for that, yet.

We're going to have a conversation internally to discuss your points, and we'll get back to you to let you know what we come up with.

Thanks very much for taking the time to share your thoughts and give us this feedback. This is 100% how we move forward and improve.

Sam

2 Likes

Hi Sam,

Thanks for getting back to me, much appreciated.

Prismic has generally been really good with communication and documentation. I guess this is why I've written this post because Slice Machine, which is such a huge change, whilst the documentation for implementing Slice Machine has been great as usual, the plan/path/migration from legacy to slice machine and all of the moving parts (when to use, when not to use it) could do with some clarity.

Thanks for the link to the legacy builder - I didn't know it existed. I can't seem to find it on Developer Documentation - Prismic, or Next.js and Prismic - Documentation - Prismic - but maybe I missed it.

I look forward to hearing more.

cheers,
Scott.

2 Likes

Hello @scott3,

Thanks a lot for your message, which will help us address a question that a lot of our users are probably asking.

I recognize that some developers with existing projects have been wondering how and when they can adopt Slice Machine for months, and some developers may have felt discouraged at times. I wish that we could have been more clear about this all along, but any messaging would likely have been misleading. Slice Machine is our most ambitious project since launching Prismic itself. We've worked to communicate clearly at every step, but this is a large project with many moving parts.

On the other hand, we're proud that Slice Machine is open source. We're developing Slice Machine in public, and we're committed to clear and open communication about Slice Machine's future. We're always happy to discuss Slice Machine and answer questions like yours. So thank you again for taking the time to articulate your thoughts.

First, what is Slice Machine, and what can you expect from it?

Slice Machine is now the default way to build websites with Prismic and Next or Nuxt. It’s a local tool that helps developers build their projects. This is done by:

  • Putting the content model alongside the code so it can be versioned
  • Integrating deeply with the framework with components and simplifying the connection with your project
  • Making your codebase a source of truth that you use to bootstrap new projects

Second, what can't you expect from Slice Machine (yet)?

Eventually, Slice Machine will be feature-complete. But you are correct that this is not yet the case. Some features are still in development. For most missing features, we offer workarounds.

Here are the features still in development:

  • Integration Fields. This is in development. For the moment, there is a workaround.
  • Slice and Custom Type deletion. This is in development, and you can track it on our progress page.
  • Mocks for some fields. Some fields, such as Content Relationship and Integration Fields, cannot yet generate mock data for the Slice Simulator.

For migration and support of your existing project

It is true that we don’t yet provide a way for all users to migrate to Slice Machine. That’s why today we recommend that all new Next.js and Nuxt repositories be created with Slice Machine while all existing projects continue to use the Legacy Builder.

We will continue to provide full support for the Legacy Builder until we have launched a full-featured, efficient way to migrate your project to Slice Machine with support for other technologies.

You should see some movement on that front in 2023 and you can follow this progress on our http://prismic.io/progress.

If you don’t want to wait for this integrated migration path and are on a platinum plan or higher, our Solutions Engineering team is able to ease your migration.

You can reach out to your Customer Success Manager for more information.

I hope I answered your questions.