Is anyone else disappointed with Polaris Web Components - so many missing features

I decided to use web components for my current project, as the old version of Polaris is clearly marked as deprecated:

After putting together a few basic pages, I’ve noticed so many missing features of web components - it’s simply not possible in its current state to build UI’s on the same level as the previous version.

Example 1: I posted the other day, trying to find a solution to showing a full width banner within an s-page component with an aside - this isn’t an unusual UI design decision, yet it’s not possible without creating a custom s-gridand ignoring the aside slot altogether.

Example 2: I need to create a table, and allow my users to select multiple rows in that table to perform bulk actions. This is not possible with the new s-table component, whereas this was a breeze to do with the old IndexTable component…

It really feels like Polaris web components isn’t ready to build anything more than an extremely basic app at the moment. It’s surprising that they’re even marking the old version of depreciated when the new version doesn’t contain nearly as many features/component options. The docs are also nowhere close to the old docs in terms of completeness.

Apologies that this has turned into a bit of a rant, I was curious to see if other people were having similar issues? I’m hesitant to build any more apps with the old version of Polaris.

5 Likes

Same here. Shopify tries to sell the new components as a game changer, but instead it’s just a basic subset of what still is a great component library (Polaris React). It really is disappointing.

2 Likes

I am looking forward to using the new Polaris Web Components for the POS UI Extension. But I can’t find the Camera Scanner component to scan the barcode. Why is it missing in the new components?

1 Like

The documentation isn’t great yet, and the number of components doesn’t compare to Polaris React, although note that it’s just beginning. I believe the concept is great, but give them some more time.

Also, there’s nothing stopping you from using Polaris React for the time being - it’s not going to disappear from npm. The React version actually looks more native and matches the current Shopify Admin exactly, while the web components variant seems to introduce some small changes in the UI.

1 Like

I’m honestly at a point where I may revert back to Polaris React.

I assume Shopify will continue to allow apps to be built using Polaris React (i.e. they wont decline them from the app store)? Do they have a roadmap of when they’ll convert their UI over to web components? I guess the worry is that I wouldn’t want to have to completely rewrite the frontend of my app any time soon if Shopify suddenly update the bulk of their UI.

Would it be a possibilty to run both web components + React Polaris? I assume not…

Feels like a step backwards but at this rate it’s going to take me forever to build all of the missing components that I’d require.

Without going too far into internal details:

Yes, the Web Components are the future of the admin.

Yes, the Web Components may differ a bit from what the admin looks like right now, but that’s because the admin is currently still using the React components. That will change over time… but its a lot of work.

Yes, you can use the React components in your app if you want. There aren’t restrictions on which technology you use to build apps. But note that the React components won’t receive any further updates.

Yes you can run both the React and the Web Component versions together in the same app.

[edit] And finally: thanks for trying things out and letting us know how you feel. I appreciate the feedback!

4 Likes

Thanks for that @Anthony_Frehner - apologies if I’m come across a little spikey! I completely understand the move to web components, and from a developers perspective I appreciate the hard work that must be going it behind the scenes.

I guess my primary issue is that all of the documentation now says that Polaris React is deprecated and wont receieve support, and it’s no longer included when your scaffold and app with the cli etc. From my perspective that would mean that web components can be used in place of Polaris React, and will offer the same feature set - which is not true. If web components were still offered as a release candidate or beta, then fair enough, but as developers we’re now actively being told to use web components, when in terms of features, usability and developer experience, they’re currently not an improvement when compared to Polaris React.

As someone who has used Polaris React, I know that it’s possible to build virtually any component you see within the Shopify Admin UI in my own app, using the component library. However, if I was a new developer scaffolding an app for the first time, I’d probably be confused (and disappointed) as to why I couldn’t build a UI that looks and feels like Shopify Admin, or any other app I may have used in the past. E.g. The lack of bulk actions in tables would confuse me…

Anyway. I think I’ll continue using Polaris React for the time being. Thank you again for your detailed reply and I’ll keep an eye on the web components changelog for future updates!

4 Likes

I really like the concept, but they “released” the web components pre-MVP. I’m sure they’re working on it internally, but I’m honestly a bit worried that they aren’t dog fooding the web components yet on their own app pages. My concern is one team is pushing web components as the future for developers, but maybe the team that maintains their own pages doesn’t want to deal with the limitations and bugs, and isn’t committed to improving the web components to meet their needs.

I hope I’m wrong, because I’ve decided to refresh my app UI with “the future”, and it’s proving to be a lot of work given the immaturity of and limitations of the library. I’m having to mix and match with Polaris react in the end – I decided it wasn’t worth trying to figure out how to do a data table with a row of totals, so I’ll keep DataTable for the time being.

2 Likes

It’s not just missing features/docs/bugs that are an issue. Lack of versioning means Shopify can break working apps without any warning or update – and with the QA as it seems to be, this is feels like a major deal breaker on using these components in production.

I think you can technically serve your own fixed version, but without versioning on Shopify’s end, it’s hard to know when things have updated/what has updated. I’m not sure what to do, honestly.

2 Likes

Constructive feedback from my side:

  • It is unclear how to migrate from Polaris React to Polaris Web components.
  • I tried loading polaris.js as documented here. This works locally but it breaks the styling of Polaris React components in a production build/bundle (Remix + Vite)
  • I could not find any Polaris admin page using polaris.js. This would help us understand how we should bundle/load `polaris.js` together with the React components. As mentioned earlier, please dog food this.
  • As mentioned earlier, many critical components are still missing and so it is currently unrealistic to only use Web Components.

Given this, the current deprecation messaging for Polaris React feels premature. I currently cannot use a combination of both and therefore I cannot use Polaris Web Components at all.

1 Like

The upgrade guide for remix to react router 7 should have you covered Upgrading from Remix · Shopify/shopify-app-template-react-router Wiki · GitHub

We need to get components like Combobox in polaris web components

Why not to fully migrate the whole Shopify admin to web components first, test it properly in the process and then only after that roll it out as the recommended way to create new apps? Why are you forcing app developers to battle test your new tech without moving to it yourself?
Why not continue support for both web components and React library?

Showing that the library is deprecated at this point is confusing. It feels impossible to comfortably work on one Shopify app for a while. Rewrite after rewrite in a period of half a year.

1 Like