Help refactoring our admin app

I have an almost complete admin app that was developed using the now-depreciated Polaris components. But the admin continually logs out sending me to the login screen, as I move between pages. The question I have in 2026 is what is the best way to create an app so it stays in date with package updates, and can be updated with React. I am shy of using the new Polaris components because they seem clunky, and not well thought out. What are the bare bones that I need to create a functional admin app for shopify, so that I can use a normal React component library for styling? A link to the correct documentation would suffice.

Shopify provides Remix template and Node templates.

Hi, I used the Remix template for our current app. But it is always logging out, and showing the login page. I need to know the inner workings of the template, how to get it to work correctly.

I found out what the issue was with my code, logging out all the time. I was using an A tag in the breadcrumb; it does not set authentication info, I had to replace it with a Link tag.

I changed the following from :

<TitleBar title="Add Product Pricing Tiers" >
          <a variant="breadcrumb" href={"/app/products/"+page}>All Products</a>
         <button variant="primary" onClick={()=>{ navigate('/app/products/'+page) }}>
           Back to Products
         </button>
       </TitleBar>

To

<TitleBar title="Add Product Pricing Tiers" >
          <Link variant="breadcrumb" to={"/app/products/"+page}>All Products</Link>
         <button variant="primary" onClick={()=>{ navigate('/app/products/'+page) }}>
           Back to Products
         </button>
       </TitleBar>

Plus rather than use import {redirect} from “remix-run/node”; for redirects I had to use:

const { session, admin, redirect } = await authenticate.admin(request);

This redirect includes the Shopify authentication info in the redirect, where the @remix-run/node does not. Seeing I have fixed this app I don’t think I will worry about migration for now.