# AppProxyProvider Sets up a page to render behind a Shopify app proxy, enabling JavaScript and CSS to be loaded from the app. Also provides components that enable using other components such as links and forms within proxies. > Caution: Because Remix doesn't support URL rewriting, any route using this component should match the pathname of the proxy URL exactly, and end in a trailing slash (e.g., `https:///apps/proxy/`). ### Wrap a route with an AppProxyProvider component ```typescript import {authenticate} from '~/shopify.server'; import {AppProxyProvider} from '@shopify/shopify-app-remix/react'; export async function loader({ request }) { await authenticate.public.appProxy(request); return json({ appUrl: process.env.SHOPIFY_APP_URL }); } export default function App() { const { appUrl } = useLoaderData(); return ( <AppProxyProvider appUrl={appUrl}> Page content </AppProxyProvider> ); } ``` ## AppProxyProviderProps Props for the `AppProxyProvider` component. ### AppProxyProviderProps ### appUrl The URL where the app is hosted. You can set this from the `SHOPIFY_APP_URL` environment variable. ### children The children to render. ## Related - [authenticate.public.appProxy](/docs/api/shopify-app-remix/authenticate/public/app-proxy) - [AppProxyForm](/docs/api/shopify-app-remix/app-proxy-components/appproxy-form) - [AppProxyLink](/docs/api/shopify-app-remix/app-proxy-components/appproxy-link)