├── .nvmrc ├── pm-app ├── .nvmrc ├── app │ ├── styles │ │ ├── ui │ │ │ ├── _menu-button.css │ │ │ ├── _member-search.css │ │ │ ├── _todo-list.css │ │ │ ├── _note.css │ │ │ └── _max-container.css │ │ ├── routes │ │ │ ├── index.css │ │ │ └── dashboard │ │ │ │ ├── todo-lists │ │ │ │ └── $listId │ │ │ │ │ └── index.css │ │ │ │ └── projects │ │ │ │ └── new.css │ │ └── _defs.css │ ├── ui │ │ └── note.tsx │ └── routes │ │ ├── _index.tsx │ │ └── sign-out.tsx ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── prisma │ └── migrations │ │ ├── migration_lock.toml │ │ ├── 20211207153717_ │ │ └── migration.sql │ │ ├── 20211207231727_ │ │ └── migration.sql │ │ └── 20211208222216_ │ │ └── migration.sql ├── server │ └── tsconfig.json ├── .env.example ├── .gitignore ├── postcss.config.js └── docker-compose.example.yml ├── strapi ├── strapi │ ├── src │ │ ├── api │ │ │ ├── .gitkeep │ │ │ └── post │ │ │ │ ├── routes │ │ │ │ └── post.js │ │ │ │ ├── services │ │ │ │ └── post.js │ │ │ │ ├── controllers │ │ │ │ └── post.js │ │ │ │ └── content-types │ │ │ │ └── post │ │ │ │ └── schema.json │ │ ├── extensions │ │ │ └── .gitkeep │ │ └── admin │ │ │ └── webpack.config.example.js │ ├── public │ │ ├── uploads │ │ │ └── .gitkeep │ │ └── robots.txt │ ├── .env.example │ ├── favicon.ico │ └── config │ │ ├── server.js │ │ ├── api.js │ │ ├── admin.js │ │ ├── middlewares.js │ │ └── database.js ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── .yarnrc ├── _official-blog-tutorial ├── .npmrc ├── app │ ├── tailwind.css │ ├── db.server.ts │ ├── routes │ │ ├── posts.admin._index.tsx │ │ ├── logout.tsx │ │ └── notes._index.tsx │ └── models │ │ └── post.server.ts ├── .dockerignore ├── .env.example ├── .prettierignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── postcss.config.js ├── sandbox.config.json ├── cypress │ ├── .eslintrc.js │ └── fixtures │ │ └── example.json ├── test │ └── setup-test-env.ts ├── prisma │ └── migrations │ │ └── migration_lock.toml ├── .gitignore ├── tailwind.config.ts ├── .gitpod.Dockerfile ├── mocks │ ├── index.js │ └── README.md ├── vitest.config.ts └── remix.config.js ├── ioredis ├── .env.example ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── mux-video ├── .env.example ├── .gitignore ├── public │ └── favicon.ico ├── app │ └── lib │ │ └── mux.server.ts ├── sandbox.config.json └── vite.config.ts ├── sanity ├── app │ ├── components │ │ └── index.ts │ ├── lib │ │ └── sanity │ │ │ ├── index.ts │ │ │ ├── config.ts │ │ │ └── filterDataToSingleItem.ts │ └── styles │ │ └── global.css ├── studio │ ├── plugins │ │ └── .gitkeep │ ├── config │ │ └── @sanity │ │ │ ├── data-aspects.json │ │ │ ├── form-builder.json │ │ │ ├── default-layout.json │ │ │ ├── default-login.json │ │ │ └── google-maps-input.json │ ├── static │ │ └── favicon.ico │ ├── .npmignore │ ├── tsconfig.json │ └── schemas │ │ ├── plotSummaries.js │ │ └── plotSummary.js ├── .env.example ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── bullmq-task-queue ├── .env.example ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── msw ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── mocks │ ├── index.cjs │ └── handlers.cjs └── vite.config.ts ├── rust ├── app │ └── rust.server.ts ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── rust-functions │ ├── src │ │ └── lib.rs │ ├── Cargo.toml │ └── .gitignore └── vite.config.ts ├── collected-notes ├── .env.example ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── graphql-api ├── .env.example ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── leaflet ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json └── vite.config.ts ├── quirrel ├── .gitignore ├── public │ └── favicon.ico ├── app │ ├── routes │ │ ├── queues.greetings.ts │ │ └── _index.tsx │ └── queues │ │ └── greetings.server.ts ├── sandbox.config.json └── vite.config.ts ├── sass ├── .gitignore ├── public │ └── favicon.ico ├── app │ ├── routes │ │ └── _index.tsx │ └── styles │ │ └── global.scss ├── sandbox.config.json └── vite.config.ts ├── turborepo-vercel ├── packages │ └── ui │ │ ├── src │ │ ├── index.tsx │ │ └── Button.tsx │ │ └── tsconfig.json ├── apps │ └── remix-app │ │ ├── remix.env.d.ts │ │ ├── public │ │ └── favicon.ico │ │ ├── .eslintrc.js │ │ ├── server.js │ │ └── app │ │ └── routes │ │ └── _index.tsx ├── vercel-project-config-example.jpg └── .gitignore ├── zerops ├── .gitignore ├── header.png ├── public │ └── favicon.ico ├── vite.config.ts └── app │ └── styles │ └── main.css ├── __template ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── app │ └── routes │ │ └── _index.tsx └── vite.config.ts ├── dark-mode ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── app │ └── styles │ │ └── styles.css └── vite.config.ts ├── file-and-cloudinary-upload ├── .env.sample ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── image-resize ├── .gitignore ├── assets │ ├── dog-1.jpg │ └── other-dogs │ │ └── dog-2.jpg ├── public │ └── favicon.ico ├── sandbox.config.json └── vite.config.ts ├── nprogress ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── app │ └── routes │ │ ├── _index.tsx │ │ └── slow-page.tsx └── vite.config.ts ├── react-quill ├── .gitignore ├── public │ └── favicon.ico ├── app │ └── components │ │ └── fallback-component.tsx ├── sandbox.config.json └── vite.config.ts ├── socket.io ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json └── vite.config.ts ├── supabase-subscription ├── .env.example ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── app │ └── utils │ │ └── supabaseClient.server.tsx └── remix.config.js ├── tailwindcss ├── .gitignore ├── app │ ├── tailwind.css │ └── routes │ │ └── _index.tsx ├── public │ └── favicon.ico ├── postcss.config.js ├── sandbox.config.json ├── tailwind.config.ts └── vite.config.ts ├── error-boundary ├── .gitignore ├── public │ └── favicon.ico ├── app │ └── routes │ │ └── _index.tsx ├── sandbox.config.json └── vite.config.ts ├── google-analytics ├── .env.example ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── app │ └── routes │ │ ├── _index.tsx │ │ ├── profile.tsx │ │ └── dashboard.tsx └── vite.config.ts ├── remix-auth-form ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── app │ └── routes │ │ └── _index.tsx └── vite.config.ts ├── vanilla-extract ├── .gitignore ├── app │ ├── components │ │ └── index.ts │ ├── routes │ │ └── _index.tsx │ └── global.css.ts ├── public │ └── favicon.ico └── sandbox.config.json ├── _official-realtime-app ├── .gitignore ├── public │ └── favicon.ico ├── postcss.config.js ├── sandbox.config.json ├── app │ └── events.ts ├── tailwind.config.ts └── vite.config.ts ├── client-only-components ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── app │ └── components │ │ └── broken-on-the-server.client.tsx └── vite.config.ts ├── gdpr-cookie-consent ├── .gitignore ├── public │ ├── dummy-analytics-script.js │ └── favicon.ico ├── sandbox.config.json ├── app │ └── cookies.server.ts └── vite.config.ts ├── twind ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── twind.config.ts ├── remix.config.js └── app │ └── routes │ └── anything.tsx ├── xata ├── .gitignore ├── public │ ├── og.jpg │ ├── flap.gif │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js └── schema.template.json ├── _official-jokes ├── .env.example ├── .dockerignore ├── .gitignore ├── public │ ├── favicon.ico │ ├── social.png │ └── fonts │ │ └── baloo │ │ └── baloo.woff ├── remix.env.d.ts ├── sandbox.config.json ├── prisma │ └── migrations │ │ └── migration_lock.toml ├── .eslintrc.js └── app │ ├── utils │ ├── request.server.ts │ └── db.server.ts │ ├── routes │ └── logout.tsx │ └── styles │ ├── global-large.css │ └── global-medium.css ├── chakra-ui ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── app │ └── routes │ │ └── _index.tsx └── remix.config.js ├── emotion ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ ├── routes │ │ ├── jokes-error.tsx │ │ └── jokes.tsx │ └── styles │ │ ├── createEmotionCache.ts │ │ ├── client.context.tsx │ │ └── server.context.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── mantine ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ ├── routes │ │ └── error.tsx │ └── clientStyleContext.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── picocss ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── app │ ├── styles.css │ └── routes │ │ └── _index.tsx └── remix.config.js ├── prettier.config.js ├── sse-chat ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── stitches ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ ├── routes │ │ ├── jokes-error.tsx │ │ └── jokes.tsx │ └── styles │ │ └── client.context.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── styletron ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── app │ ├── entry.client.tsx │ └── routes │ │ └── _index.tsx ├── .eslintrc.js └── remix.config.js ├── theme-ui ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ ├── routes │ │ ├── jokes-error.tsx │ │ └── jokes.tsx │ └── styles │ │ ├── createEmotionCache.tsx │ │ └── context.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── framer-motion ├── .gitignore ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js └── app │ └── routes │ └── _index.tsx ├── multiple-forms ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ └── routes │ │ └── _index.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── multiple-params ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ └── routes │ │ ├── clients._index.tsx │ │ ├── clients.$clientId.invoices._index.tsx │ │ └── _index.tsx ├── sandbox.config.json ├── remix.config.js └── .eslintrc.js ├── pathless-routes ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ └── routes │ │ ├── articles._layout.hello.md │ │ ├── articles._layout.tsx │ │ └── _index.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── react-spring ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ ├── no-script.css │ └── styles.css ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── route-modal ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── search-input ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── session-flash ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── sse-counter ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── toast-message ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── dataloader ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ └── routes │ │ └── _index.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── file-and-s3-upload ├── .gitignore ├── .env.sample ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── form-to-notion-db ├── .env.example ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── app │ └── notion.server.tsx └── remix.config.js ├── infinite-scrolling ├── .gitignore ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js └── app │ └── styles │ └── index.css ├── newsletter-signup ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── on-demand-hydration ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js └── app │ └── routes │ ├── without-js.tsx │ └── with-js.tsx ├── outlet-form-rerender ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── app │ └── routes │ │ └── _index.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── remix-auth-auth0 ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── .env.example ├── app │ ├── routes │ │ ├── callback.tsx │ │ └── auth0.tsx │ └── constants │ │ └── index.server.ts └── remix.config.js ├── remix-auth-github ├── .gitignore ├── .env.example ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── app │ └── routes │ │ ├── auth.github.tsx │ │ └── auth.github.callback.tsx └── remix.config.js ├── remix-auth-supabase ├── .gitignore ├── .env.example ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js └── app │ └── routes │ └── _index.tsx ├── sharing-loader-data ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── app │ └── routes │ │ ├── workshops._index.tsx │ │ └── _index.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── stripe-integration ├── .gitignore ├── .env.example ├── public │ └── favicon.ico ├── remix.env.d.ts ├── app │ └── routes │ │ ├── payment.success.tsx │ │ └── payment.cancelled.tsx ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── client-side-validation ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── combobox-resource-route ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── firebase ├── public │ └── favicon.ico ├── screen_recording.gif ├── remix.env.d.ts ├── firebase-fixtures │ ├── auth │ │ ├── config.json │ │ └── accounts.json │ ├── firebase-export-metadata.json │ └── firestore.rules ├── functions.yaml ├── sandbox.config.json ├── .eslintrc.js ├── .gitignore ├── functions │ └── index.js ├── remix.config.js └── app │ └── sessions.ts ├── framer-route-animation ├── .gitignore ├── app │ └── routes │ │ ├── _index.tsx │ │ ├── about.tsx │ │ └── blogs.tsx ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── io-ts-formdata-decoding ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js └── remix.config.js ├── redis-upstash-session ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .env.example ├── .eslintrc.js └── remix.config.js ├── tiptap-collab-editing ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── app │ └── utils │ │ └── webrtc.client.tsx └── remix.config.js ├── unocss ├── public │ └── favicon.ico ├── .gitignore ├── sandbox.config.json ├── unocss.config.ts └── vite.config.ts ├── yarn-pnp ├── public │ └── favicon.ico ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js ├── .gitignore └── app │ └── routes │ └── _index.tsx ├── _official-contacts-tutorial ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js └── app │ └── routes │ ├── _index.tsx │ └── contacts.$contactId.destroy.tsx ├── playwright ├── public │ └── favicon.ico ├── .gitignore ├── sandbox.config.json ├── app │ └── routes │ │ ├── login.tsx │ │ └── _index.tsx ├── e2e │ └── page.spec.tsx └── vite.config.ts ├── remix-auth-supabase-github ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .env.example ├── .eslintrc.js ├── remix.config.js └── app │ └── routes │ └── _index.tsx ├── routes-gen ├── public │ └── favicon.ico ├── .gitignore ├── remix.env.d.ts ├── sandbox.config.json ├── .eslintrc.js ├── remix.config.js └── app │ └── routes │ ├── products.$productId.tsx │ └── _index.tsx ├── CODE_OF_CONDUCT.md ├── styled-components ├── .gitignore ├── remix.env.d.ts ├── public │ └── favicon.ico ├── app │ ├── routes │ │ ├── _boundary.error.tsx │ │ ├── _boundary.$.tsx │ │ └── _boundary._index.tsx │ └── styles-context.tsx ├── sandbox.config.json ├── .eslintrc.js ├── components │ ├── src │ │ └── Box.tsx │ ├── .babelrc │ └── tsconfig.json └── remix.config.js ├── docker-with-yarn-pnp ├── remix.env.d.ts ├── public │ └── favicon.ico ├── sandbox.config.json ├── .eslintrc.js ├── .yarnrc.yml ├── .dockerignore ├── app │ └── routes │ │ └── _index.tsx ├── .gitignore └── remix.config.js ├── .gitignore └── .github └── dependabot.yml /.nvmrc: -------------------------------------------------------------------------------- 1 | lts/* 2 | -------------------------------------------------------------------------------- /pm-app/.nvmrc: -------------------------------------------------------------------------------- 1 | 16 -------------------------------------------------------------------------------- /strapi/strapi/src/api/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /strapi/strapi/public/uploads/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /strapi/strapi/src/extensions/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.yarnrc: -------------------------------------------------------------------------------- 1 | registry "https://registry.npmjs.org" 2 | -------------------------------------------------------------------------------- /_official-blog-tutorial/.npmrc: -------------------------------------------------------------------------------- 1 | legacy-peer-deps=true 2 | -------------------------------------------------------------------------------- /ioredis/.env.example: -------------------------------------------------------------------------------- 1 | REDIS_URL=redis://localhost:6379 2 | -------------------------------------------------------------------------------- /strapi/strapi/.env.example: -------------------------------------------------------------------------------- 1 | HOST=0.0.0.0 2 | PORT=1337 3 | -------------------------------------------------------------------------------- /mux-video/.env.example: -------------------------------------------------------------------------------- 1 | MUX_TOKEN_ID= 2 | MUX_TOKEN_SECRET= 3 | -------------------------------------------------------------------------------- /sanity/app/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./Preview"; 2 | -------------------------------------------------------------------------------- /bullmq-task-queue/.env.example: -------------------------------------------------------------------------------- 1 | REDIS_URL=redis://localhost:6379 2 | -------------------------------------------------------------------------------- /msw/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /pm-app/app/styles/ui/_menu-button.css: -------------------------------------------------------------------------------- 1 | .ui--menu-button { 2 | } 3 | -------------------------------------------------------------------------------- /rust/app/rust.server.ts: -------------------------------------------------------------------------------- 1 | export { add } from "rust-functions"; 2 | -------------------------------------------------------------------------------- /collected-notes/.env.example: -------------------------------------------------------------------------------- 1 | CN_EMAIL= 2 | CN_TOKEN= 3 | CN_SITE_PATH= -------------------------------------------------------------------------------- /graphql-api/.env.example: -------------------------------------------------------------------------------- 1 | GRAPHQL_API="https://rickandmortyapi.com/graphql" -------------------------------------------------------------------------------- /leaflet/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /quirrel/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /rust/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /sass/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /turborepo-vercel/packages/ui/src/index.tsx: -------------------------------------------------------------------------------- 1 | export * from "./Button"; 2 | -------------------------------------------------------------------------------- /zerops/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /__template/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /dark-mode/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /file-and-cloudinary-upload/.env.sample: -------------------------------------------------------------------------------- 1 | CLOUD_NAME= 2 | API_KEY= 3 | API_SECRET= -------------------------------------------------------------------------------- /image-resize/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /mux-video/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /nprogress/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /react-quill/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /sanity/studio/plugins/.gitkeep: -------------------------------------------------------------------------------- 1 | User-specific packages can be placed here 2 | -------------------------------------------------------------------------------- /socket.io/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /supabase-subscription/.env.example: -------------------------------------------------------------------------------- 1 | SUPABASE_URL= 2 | SUPABASE_ANON_KEY= 3 | -------------------------------------------------------------------------------- /tailwindcss/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /error-boundary/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /google-analytics/.env.example: -------------------------------------------------------------------------------- 1 | GA_TRACKING_ID=Your google analytics id goes here. -------------------------------------------------------------------------------- /google-analytics/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /pm-app/app/styles/routes/index.css: -------------------------------------------------------------------------------- 1 | @import "../_defs.css"; 2 | 3 | div { 4 | } 5 | -------------------------------------------------------------------------------- /remix-auth-form/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /sanity/.env.example: -------------------------------------------------------------------------------- 1 | SANITY_PREVIEW_SECRET=remix-sanity-test 2 | SANITY_API_TOKEN= -------------------------------------------------------------------------------- /sanity/studio/config/@sanity/data-aspects.json: -------------------------------------------------------------------------------- 1 | { 2 | "listOptions": {} 3 | } 4 | -------------------------------------------------------------------------------- /vanilla-extract/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /_official-realtime-app/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /client-only-components/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /gdpr-cookie-consent/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | -------------------------------------------------------------------------------- /twind/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /xata/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /zerops/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/zerops/header.png -------------------------------------------------------------------------------- /_official-jokes/.env.example: -------------------------------------------------------------------------------- 1 | DATABASE_URL="file:./dev.db" 2 | SESSION_SECRET="remixrulz" 3 | -------------------------------------------------------------------------------- /chakra-ui/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /emotion/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /gdpr-cookie-consent/public/dummy-analytics-script.js: -------------------------------------------------------------------------------- 1 | console.log("tracking user data"); 2 | -------------------------------------------------------------------------------- /ioredis/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /mantine/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /picocss/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /prettier.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('prettier').Options} */ 2 | module.exports = {}; 3 | -------------------------------------------------------------------------------- /sanity/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /sse-chat/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /stitches/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /strapi/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /styletron/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /theme-ui/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /xata/public/og.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/xata/public/og.jpg -------------------------------------------------------------------------------- /collected-notes/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /framer-motion/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /msw/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/msw/public/favicon.ico -------------------------------------------------------------------------------- /multiple-forms/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /multiple-params/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /pathless-routes/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /react-spring/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /route-modal/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /search-input/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /session-flash/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /sse-counter/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /toast-message/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /xata/public/flap.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/xata/public/flap.gif -------------------------------------------------------------------------------- /bullmq-task-queue/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /dataloader/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /server/build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /file-and-s3-upload/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /form-to-notion-db/.env.example: -------------------------------------------------------------------------------- 1 | NOTION_TOKEN= 2 | NOTION_DB_ID= -------------------------------------------------------------------------------- /form-to-notion-db/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /infinite-scrolling/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /newsletter-signup/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /on-demand-hydration/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /outlet-form-rerender/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /remix-auth-auth0/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /remix-auth-github/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /remix-auth-supabase/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /rust/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/rust/public/favicon.ico -------------------------------------------------------------------------------- /sass/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/sass/public/favicon.ico -------------------------------------------------------------------------------- /sharing-loader-data/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /stripe-integration/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /tailwindcss/app/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /twind/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/twind/public/favicon.ico -------------------------------------------------------------------------------- /xata/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/xata/public/favicon.ico -------------------------------------------------------------------------------- /client-side-validation/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /combobox-resource-route/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /emotion/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/emotion/public/favicon.ico -------------------------------------------------------------------------------- /firebase/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/firebase/public/favicon.ico -------------------------------------------------------------------------------- /framer-route-animation/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /io-ts-formdata-decoding/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /ioredis/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/ioredis/public/favicon.ico -------------------------------------------------------------------------------- /leaflet/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/leaflet/public/favicon.ico -------------------------------------------------------------------------------- /mantine/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/mantine/public/favicon.ico -------------------------------------------------------------------------------- /picocss/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/picocss/public/favicon.ico -------------------------------------------------------------------------------- /pm-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/pm-app/public/favicon.ico -------------------------------------------------------------------------------- /quirrel/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/quirrel/public/favicon.ico -------------------------------------------------------------------------------- /redis-upstash-session/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /sanity/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/sanity/public/favicon.ico -------------------------------------------------------------------------------- /sse-chat/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/sse-chat/public/favicon.ico -------------------------------------------------------------------------------- /stitches/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/stitches/public/favicon.ico -------------------------------------------------------------------------------- /strapi/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/strapi/public/favicon.ico -------------------------------------------------------------------------------- /strapi/strapi/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/strapi/strapi/favicon.ico -------------------------------------------------------------------------------- /supabase-subscription/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /theme-ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/theme-ui/public/favicon.ico -------------------------------------------------------------------------------- /tiptap-collab-editing/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /unocss/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/unocss/public/favicon.ico -------------------------------------------------------------------------------- /yarn-pnp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/yarn-pnp/public/favicon.ico -------------------------------------------------------------------------------- /zerops/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/zerops/public/favicon.ico -------------------------------------------------------------------------------- /__template/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/__template/public/favicon.ico -------------------------------------------------------------------------------- /_official-blog-tutorial/app/tailwind.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /chakra-ui/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/chakra-ui/public/favicon.ico -------------------------------------------------------------------------------- /dark-mode/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/dark-mode/public/favicon.ico -------------------------------------------------------------------------------- /dataloader/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/dataloader/public/favicon.ico -------------------------------------------------------------------------------- /emotion/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /file-and-cloudinary-upload/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /file-and-s3-upload/.env.sample: -------------------------------------------------------------------------------- 1 | STORAGE_ACCESS_KEY= 2 | STORAGE_SECRET= 3 | STORAGE_REGION= 4 | STORAGE_BUCKET= -------------------------------------------------------------------------------- /firebase/screen_recording.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/firebase/screen_recording.gif -------------------------------------------------------------------------------- /image-resize/assets/dog-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/image-resize/assets/dog-1.jpg -------------------------------------------------------------------------------- /ioredis/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /mantine/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /mux-video/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/mux-video/public/favicon.ico -------------------------------------------------------------------------------- /nprogress/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/nprogress/public/favicon.ico -------------------------------------------------------------------------------- /picocss/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /playwright/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/playwright/public/favicon.ico -------------------------------------------------------------------------------- /pm-app/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /remix-auth-github/.env.example: -------------------------------------------------------------------------------- 1 | GITHUB_CLIENT_ID= 2 | GITHUB_CLIENT_SECRET= 3 | BASE_URL=http://localhost:3000/ -------------------------------------------------------------------------------- /remix-auth-supabase-github/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | -------------------------------------------------------------------------------- /routes-gen/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/routes-gen/public/favicon.ico -------------------------------------------------------------------------------- /sanity/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /sass/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return

Welcome to Remix

; 3 | } 4 | -------------------------------------------------------------------------------- /socket.io/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/socket.io/public/favicon.ico -------------------------------------------------------------------------------- /strapi/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /styletron/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/styletron/public/favicon.ico -------------------------------------------------------------------------------- /twind/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /xata/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /chakra-ui/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /dataloader/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /firebase/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /framer-motion/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/framer-motion/public/favicon.ico -------------------------------------------------------------------------------- /graphql-api/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | 8 | /app/generated/* -------------------------------------------------------------------------------- /graphql-api/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/graphql-api/public/favicon.ico -------------------------------------------------------------------------------- /graphql-api/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /image-resize/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/image-resize/public/favicon.ico -------------------------------------------------------------------------------- /playwright/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | 7 | test-results 8 | playwright-report -------------------------------------------------------------------------------- /react-quill/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/react-quill/public/favicon.ico -------------------------------------------------------------------------------- /react-spring/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/react-spring/public/favicon.ico -------------------------------------------------------------------------------- /react-spring/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /route-modal/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/route-modal/public/favicon.ico -------------------------------------------------------------------------------- /route-modal/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /routes-gen/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | 8 | /app/routes.d.ts -------------------------------------------------------------------------------- /routes-gen/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /sanity/studio/config/@sanity/form-builder.json: -------------------------------------------------------------------------------- 1 | { 2 | "images": { 3 | "directUploads": true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /sanity/studio/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/sanity/studio/static/favicon.ico -------------------------------------------------------------------------------- /search-input/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/search-input/public/favicon.ico -------------------------------------------------------------------------------- /search-input/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /session-flash/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/session-flash/public/favicon.ico -------------------------------------------------------------------------------- /sse-chat/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /sse-counter/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/sse-counter/public/favicon.ico -------------------------------------------------------------------------------- /sse-counter/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /stitches/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /styletron/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /tailwindcss/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/tailwindcss/public/favicon.ico -------------------------------------------------------------------------------- /theme-ui/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /toast-message/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/toast-message/public/favicon.ico -------------------------------------------------------------------------------- /vanilla-extract/app/components/index.ts: -------------------------------------------------------------------------------- 1 | export { Box } from "./Box/Box"; 2 | export { Text } from "./Text/Text"; 3 | -------------------------------------------------------------------------------- /yarn-pnp/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | Please see [our Code of Conduct](https://github.com/remix-run/remix/blob/main/CODE_OF_CONDUCT.md). 2 | -------------------------------------------------------------------------------- /_official-jokes/.dockerignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | *.log 3 | .DS_Store 4 | .env 5 | /.cache 6 | /public/build 7 | /build 8 | -------------------------------------------------------------------------------- /_official-jokes/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | 8 | /prisma/dev.db 9 | -------------------------------------------------------------------------------- /_official-jokes/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/_official-jokes/public/favicon.ico -------------------------------------------------------------------------------- /_official-jokes/public/social.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/_official-jokes/public/social.png -------------------------------------------------------------------------------- /_official-jokes/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /bullmq-task-queue/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /collected-notes/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/collected-notes/public/favicon.ico -------------------------------------------------------------------------------- /collected-notes/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /error-boundary/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/error-boundary/public/favicon.ico -------------------------------------------------------------------------------- /firebase/firebase-fixtures/auth/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "signIn": { 3 | "allowDuplicateEmails": false 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /form-to-notion-db/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /framer-route-animation/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return

Index Page

; 3 | } 4 | -------------------------------------------------------------------------------- /framer-route-animation/app/routes/about.tsx: -------------------------------------------------------------------------------- 1 | export default function About() { 2 | return

About Page

; 3 | } 4 | -------------------------------------------------------------------------------- /framer-route-animation/app/routes/blogs.tsx: -------------------------------------------------------------------------------- 1 | export default function Blog() { 2 | return

Blog Page

; 3 | } 4 | -------------------------------------------------------------------------------- /multiple-forms/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/multiple-forms/public/favicon.ico -------------------------------------------------------------------------------- /multiple-forms/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /multiple-params/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/multiple-params/public/favicon.ico -------------------------------------------------------------------------------- /multiple-params/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /newsletter-signup/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /pathless-routes/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/pathless-routes/public/favicon.ico -------------------------------------------------------------------------------- /pathless-routes/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /remix-auth-auth0/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /remix-auth-form/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/remix-auth-form/public/favicon.ico -------------------------------------------------------------------------------- /remix-auth-github/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /session-flash/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /stripe-integration/.env.example: -------------------------------------------------------------------------------- 1 | PRICE_ID= 2 | STRIPE_SECRET_KEY= 3 | STRIPE_PUBLIC_KEY= 4 | STRIPE_WEBHOOK_ENDPOINT_SECRET= -------------------------------------------------------------------------------- /styled-components/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | /app/components 8 | -------------------------------------------------------------------------------- /styled-components/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /toast-message/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /turborepo-vercel/packages/ui/src/Button.tsx: -------------------------------------------------------------------------------- 1 | export const Button = () => { 2 | return ; 3 | }; 4 | -------------------------------------------------------------------------------- /vanilla-extract/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/vanilla-extract/public/favicon.ico -------------------------------------------------------------------------------- /bullmq-task-queue/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/bullmq-task-queue/public/favicon.ico -------------------------------------------------------------------------------- /client-side-validation/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /file-and-s3-upload/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/file-and-s3-upload/public/favicon.ico -------------------------------------------------------------------------------- /file-and-s3-upload/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /form-to-notion-db/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/form-to-notion-db/public/favicon.ico -------------------------------------------------------------------------------- /framer-route-animation/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /google-analytics/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/google-analytics/public/favicon.ico -------------------------------------------------------------------------------- /infinite-scrolling/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/infinite-scrolling/public/favicon.ico -------------------------------------------------------------------------------- /infinite-scrolling/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /newsletter-signup/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/newsletter-signup/public/favicon.ico -------------------------------------------------------------------------------- /on-demand-hydration/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /outlet-form-rerender/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /redis-upstash-session/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /remix-auth-auth0/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/remix-auth-auth0/public/favicon.ico -------------------------------------------------------------------------------- /remix-auth-github/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/remix-auth-github/public/favicon.ico -------------------------------------------------------------------------------- /remix-auth-supabase/.env.example: -------------------------------------------------------------------------------- 1 | SUPABASE_SERVICE_KEY="{SERVICE_KEY}" 2 | SUPABASE_URL="https://{YOUR_INSTANCE_NAME}.supabase.co" -------------------------------------------------------------------------------- /remix-auth-supabase/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /sharing-loader-data/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /stripe-integration/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/stripe-integration/public/favicon.ico -------------------------------------------------------------------------------- /stripe-integration/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /styled-components/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/styled-components/public/favicon.ico -------------------------------------------------------------------------------- /supabase-subscription/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /tiptap-collab-editing/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /unocss/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | .env 6 | 7 | # UnoCSS generated css file 8 | /app/styles/uno.css -------------------------------------------------------------------------------- /_official-blog-tutorial/.dockerignore: -------------------------------------------------------------------------------- 1 | /node_modules 2 | *.log 3 | .DS_Store 4 | .env 5 | /.cache 6 | /public/build 7 | /build 8 | -------------------------------------------------------------------------------- /_official-blog-tutorial/.env.example: -------------------------------------------------------------------------------- 1 | DATABASE_URL="file:./data.db?connection_limit=1" 2 | SESSION_SECRET="super-duper-s3cret" 3 | -------------------------------------------------------------------------------- /_official-blog-tutorial/.prettierignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /build 4 | /public/build 5 | .env 6 | 7 | /app/styles/tailwind.css 8 | -------------------------------------------------------------------------------- /_official-blog-tutorial/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /combobox-resource-route/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/docker-with-yarn-pnp/public/favicon.ico -------------------------------------------------------------------------------- /file-and-cloudinary-upload/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /gdpr-cookie-consent/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/gdpr-cookie-consent/public/favicon.ico -------------------------------------------------------------------------------- /io-ts-formdata-decoding/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /mantine/app/routes/error.tsx: -------------------------------------------------------------------------------- 1 | export default function ErrorRoute() { 2 | throw new Error("This route throws on render!"); 3 | } 4 | -------------------------------------------------------------------------------- /mux-video/app/lib/mux.server.ts: -------------------------------------------------------------------------------- 1 | import Mux from "@mux/mux-node"; 2 | 3 | const mux = new Mux(); 4 | 5 | export default mux; 6 | -------------------------------------------------------------------------------- /on-demand-hydration/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/on-demand-hydration/public/favicon.ico -------------------------------------------------------------------------------- /outlet-form-rerender/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/outlet-form-rerender/public/favicon.ico -------------------------------------------------------------------------------- /react-spring/app/no-script.css: -------------------------------------------------------------------------------- 1 | [style*="opacity:0;"] { 2 | opacity: unset !important; 3 | cursor: default !important; 4 | } 5 | -------------------------------------------------------------------------------- /remix-auth-supabase-github/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /remix-auth-supabase/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/remix-auth-supabase/public/favicon.ico -------------------------------------------------------------------------------- /sharing-loader-data/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/sharing-loader-data/public/favicon.ico -------------------------------------------------------------------------------- /_official-blog-tutorial/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/_official-blog-tutorial/public/favicon.ico -------------------------------------------------------------------------------- /_official-realtime-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/_official-realtime-app/public/favicon.ico -------------------------------------------------------------------------------- /client-only-components/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/client-only-components/public/favicon.ico -------------------------------------------------------------------------------- /client-side-validation/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/client-side-validation/public/favicon.ico -------------------------------------------------------------------------------- /combobox-resource-route/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/combobox-resource-route/public/favicon.ico -------------------------------------------------------------------------------- /framer-route-animation/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/framer-route-animation/public/favicon.ico -------------------------------------------------------------------------------- /image-resize/assets/other-dogs/dog-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/image-resize/assets/other-dogs/dog-2.jpg -------------------------------------------------------------------------------- /io-ts-formdata-decoding/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/io-ts-formdata-decoding/public/favicon.ico -------------------------------------------------------------------------------- /pathless-routes/app/routes/articles._layout.hello.md: -------------------------------------------------------------------------------- 1 | --- 2 | slug: hello 3 | meta: 4 | title: Hello 5 | --- 6 | 7 | # Hello Remix 8 | -------------------------------------------------------------------------------- /redis-upstash-session/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/redis-upstash-session/public/favicon.ico -------------------------------------------------------------------------------- /sanity/studio/config/@sanity/default-layout.json: -------------------------------------------------------------------------------- 1 | { 2 | "toolSwitcher": { 3 | "order": [], 4 | "hidden": [] 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /supabase-subscription/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/supabase-subscription/public/favicon.ico -------------------------------------------------------------------------------- /tailwindcss/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /tiptap-collab-editing/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/tiptap-collab-editing/public/favicon.ico -------------------------------------------------------------------------------- /turborepo-vercel/apps/remix-app/remix.env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /dataloader/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { redirect } from "@remix-run/node"; 2 | 3 | export const loader = async () => redirect("/users"); 4 | -------------------------------------------------------------------------------- /emotion/app/routes/jokes-error.tsx: -------------------------------------------------------------------------------- 1 | export default function JokesError() { 2 | throw new Error("This route is no joking with us."); 3 | } 4 | -------------------------------------------------------------------------------- /react-quill/app/components/fallback-component.tsx: -------------------------------------------------------------------------------- 1 | export function FallbackComponent() { 2 | return

Fallback component ...

; 3 | } 4 | -------------------------------------------------------------------------------- /stitches/app/routes/jokes-error.tsx: -------------------------------------------------------------------------------- 1 | export default function JokesError() { 2 | throw new Error("This route is no joking with us."); 3 | } 4 | -------------------------------------------------------------------------------- /theme-ui/app/routes/jokes-error.tsx: -------------------------------------------------------------------------------- 1 | export default function JokesError() { 2 | throw new Error("This route is no joking with us."); 3 | } 4 | -------------------------------------------------------------------------------- /_official-blog-tutorial/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/_official-contacts-tutorial/public/favicon.ico -------------------------------------------------------------------------------- /_official-jokes/public/fonts/baloo/baloo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/_official-jokes/public/fonts/baloo/baloo.woff -------------------------------------------------------------------------------- /_official-realtime-app/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /error-boundary/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { redirect } from "@remix-run/node"; 2 | 3 | export const loader = async () => redirect("/users"); 4 | -------------------------------------------------------------------------------- /file-and-cloudinary-upload/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/file-and-cloudinary-upload/public/favicon.ico -------------------------------------------------------------------------------- /msw/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /multiple-params/app/routes/clients._index.tsx: -------------------------------------------------------------------------------- 1 | export default function ClientIndexRoute() { 2 | return
Please select a client
; 3 | } 4 | -------------------------------------------------------------------------------- /quirrel/app/routes/queues.greetings.ts: -------------------------------------------------------------------------------- 1 | import greetingsQueue from "~/queues/greetings.server"; 2 | 3 | export const action = greetingsQueue; 4 | -------------------------------------------------------------------------------- /remix-auth-supabase-github/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/remix-auth-supabase-github/public/favicon.ico -------------------------------------------------------------------------------- /rust/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sass/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sharing-loader-data/app/routes/workshops._index.tsx: -------------------------------------------------------------------------------- 1 | export default function WorkshopIndex() { 2 | return
Select a workshop
; 3 | } 4 | -------------------------------------------------------------------------------- /strapi/strapi/config/server.js: -------------------------------------------------------------------------------- 1 | module.exports = ({ env }) => ({ 2 | host: env("HOST", "0.0.0.0"), 3 | port: env.int("PORT", 1337), 4 | }); 5 | -------------------------------------------------------------------------------- /stripe-integration/app/routes/payment.success.tsx: -------------------------------------------------------------------------------- 1 | export default function Success() { 2 | return

Thank you for your purchases

; 3 | } 4 | -------------------------------------------------------------------------------- /twind/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /xata/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /__template/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /chakra-ui/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /dark-mode/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /dataloader/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /emotion/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /firebase/functions.yaml: -------------------------------------------------------------------------------- 1 | specVersion: v1alpha1 2 | endpoints: 3 | remix: 4 | platform: gcfv2 5 | entryPoint: remix 6 | httpsTrigger: {} 7 | -------------------------------------------------------------------------------- /firebase/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /ioredis/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /leaflet/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /mantine/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /multiple-forms/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { redirect } from "@remix-run/node"; 2 | 3 | export const loader = async () => redirect("/invitations"); 4 | -------------------------------------------------------------------------------- /mux-video/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /nprogress/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /outlet-form-rerender/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { redirect } from "@remix-run/node"; 2 | 3 | export const loader = async () => redirect("/users"); 4 | -------------------------------------------------------------------------------- /picocss/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /playwright/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pm-app/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /quirrel/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /routes-gen/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /rust/rust-functions/src/lib.rs: -------------------------------------------------------------------------------- 1 | use wasm_bindgen::prelude::*; 2 | 3 | #[wasm_bindgen] 4 | pub fn add(a: u32, b: u32) -> u32 { 5 | a + b 6 | } 7 | -------------------------------------------------------------------------------- /sanity/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /socket.io/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sse-chat/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /stitches/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /strapi/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /styletron/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /theme-ui/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /unocss/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /yarn-pnp/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /_official-jokes/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /collected-notes/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /error-boundary/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /framer-motion/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /graphql-api/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /image-resize/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /multiple-forms/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /multiple-params/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pathless-routes/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /pm-app/app/styles/routes/dashboard/todo-lists/$listId/index.css: -------------------------------------------------------------------------------- 1 | @import "../../../../_defs.css"; 2 | 3 | .todolist-index { 4 | max-width: 40rem; 5 | } 6 | -------------------------------------------------------------------------------- /react-quill/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /react-spring/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /remix-auth-form/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /route-modal/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /search-input/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /session-flash/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sse-counter/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /strapi/strapi/config/api.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rest: { 3 | defaultLimit: 25, 4 | maxLimit: 100, 5 | withCount: true, 6 | }, 7 | }; 8 | -------------------------------------------------------------------------------- /styled-components/app/routes/_boundary.error.tsx: -------------------------------------------------------------------------------- 1 | export default function ErrorComponent() { 2 | throw new Error("This route throws on render!"); 3 | } 4 | -------------------------------------------------------------------------------- /tailwindcss/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 5173 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /toast-message/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /turborepo-vercel/apps/remix-app/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/turborepo-vercel/apps/remix-app/public/favicon.ico -------------------------------------------------------------------------------- /turborepo-vercel/vercel-project-config-example.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/remix-run/examples/HEAD/turborepo-vercel/vercel-project-config-example.jpg -------------------------------------------------------------------------------- /vanilla-extract/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /bullmq-task-queue/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /file-and-s3-upload/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /form-to-notion-db/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /gdpr-cookie-consent/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /google-analytics/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /infinite-scrolling/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /newsletter-signup/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /on-demand-hydration/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /outlet-form-rerender/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /playwright/app/routes/login.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return ( 3 |
4 |

Login Page

5 |
6 | ); 7 | } 8 | -------------------------------------------------------------------------------- /remix-auth-auth0/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /remix-auth-github/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /remix-auth-supabase/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sharing-loader-data/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /stripe-integration/app/routes/payment.cancelled.tsx: -------------------------------------------------------------------------------- 1 | export default function Cancel() { 2 | return

Payment failed, you are not being charged

; 3 | } 4 | -------------------------------------------------------------------------------- /stripe-integration/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /styled-components/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /_official-blog-tutorial/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /_official-realtime-app/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /client-only-components/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /client-side-validation/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /combobox-resource-route/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /framer-route-animation/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /io-ts-formdata-decoding/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /redis-upstash-session/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /strapi/strapi/public/robots.txt: -------------------------------------------------------------------------------- 1 | # To prevent search engines from seeing the site altogether, uncomment the next two lines: 2 | # User-Agent: * 3 | # Disallow: / 4 | -------------------------------------------------------------------------------- /supabase-subscription/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /theme-ui/app/styles/createEmotionCache.tsx: -------------------------------------------------------------------------------- 1 | import createCache from "@emotion/cache"; 2 | 3 | export const createEmotionCache = () => createCache({ key: "css" }); 4 | -------------------------------------------------------------------------------- /tiptap-collab-editing/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /file-and-cloudinary-upload/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /firebase/firebase-fixtures/firebase-export-metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "11.0.1", 3 | "auth": { 4 | "version": "11.0.1", 5 | "path": "auth" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /redis-upstash-session/.env.example: -------------------------------------------------------------------------------- 1 | UPSTASH_REDIS_REST_URL="REPLACE_WITH_YOUR_UPSTASH_REDIS_REST_URL" 2 | UPSTASH_REDIS_REST_TOKEN="REPLACE_WITH_YOUR_UPSTASH_REDIS_REST_TOKEN" -------------------------------------------------------------------------------- /remix-auth-supabase-github/sandbox.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "hardReloadOnChange": true, 3 | "template": "remix", 4 | "container": { 5 | "port": 3000 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /sanity/studio/config/@sanity/default-login.json: -------------------------------------------------------------------------------- 1 | { 2 | "providers": { 3 | "mode": "append", 4 | "redirectOnSingle": false, 5 | "entries": [] 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /styletron/app/entry.client.tsx: -------------------------------------------------------------------------------- 1 | import { RemixBrowser } from "@remix-run/react"; 2 | import { hydrate } from "react-dom"; 3 | 4 | hydrate(, document); 5 | -------------------------------------------------------------------------------- /_official-blog-tutorial/cypress/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | parserOptions: { 3 | tsconfigRootDir: __dirname, 4 | project: "./tsconfig.json", 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /emotion/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /ioredis/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /mantine/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /multiple-params/app/routes/clients.$clientId.invoices._index.tsx: -------------------------------------------------------------------------------- 1 | export default function ClientInvoiceIndexRoute() { 2 | return
Please select an invoice
; 3 | } 4 | -------------------------------------------------------------------------------- /nprogress/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function Index() { 4 | return Slow Page; 5 | } 6 | -------------------------------------------------------------------------------- /picocss/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /pm-app/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /pm-app/prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (i.e. Git) 3 | provider = "postgresql" -------------------------------------------------------------------------------- /react-spring/app/styles.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | height: 100%; 4 | margin: 0; 5 | } 6 | 7 | body { 8 | display: grid; 9 | place-content: center; 10 | } 11 | -------------------------------------------------------------------------------- /remix-auth-supabase-github/.env.example: -------------------------------------------------------------------------------- 1 | SUPABASE_SERVICE_KEY="{SERVICE_KEY}" 2 | PUBLIC_SUPABASE_ANON_KEY="{ANON_KEY}" 3 | SUPABASE_URL="https://{YOUR_INSTANCE_NAME}.supabase.co" -------------------------------------------------------------------------------- /sanity/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /strapi/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /strapi/strapi/config/admin.js: -------------------------------------------------------------------------------- 1 | module.exports = ({ env }) => ({ 2 | auth: { 3 | secret: env("ADMIN_JWT_SECRET", "2bcab5ec860df5c21e01d60e43bf58d6"), 4 | }, 5 | }); 6 | -------------------------------------------------------------------------------- /twind/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /xata/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /_official-blog-tutorial/test/setup-test-env.ts: -------------------------------------------------------------------------------- 1 | import { installGlobals } from "@remix-run/node"; 2 | import "@testing-library/jest-dom/extend-expect"; 3 | 4 | installGlobals(); 5 | -------------------------------------------------------------------------------- /_official-jokes/prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (i.e. Git) 3 | provider = "sqlite" -------------------------------------------------------------------------------- /chakra-ui/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /dataloader/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /firebase/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /graphql-api/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /mantine/app/clientStyleContext.tsx: -------------------------------------------------------------------------------- 1 | import { createContext } from "react"; 2 | 3 | export const ClientStyleContext = createContext<{ 4 | reset: () => void; 5 | } | null>(null); 6 | -------------------------------------------------------------------------------- /multiple-params/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return ( 3 |
4 |

Hello from the Index Route

5 |
6 | ); 7 | } 8 | -------------------------------------------------------------------------------- /react-spring/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /route-modal/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /routes-gen/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /search-input/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /sse-chat/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /sse-counter/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /stitches/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /styletron/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /theme-ui/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /yarn-pnp/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /_official-jokes/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /bullmq-task-queue/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /collected-notes/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /firebase/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | 8 | firestore-debug.log 9 | firebase-debug.log 10 | ui-debug.log 11 | .firebase 12 | -------------------------------------------------------------------------------- /form-to-notion-db/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /framer-motion/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /multiple-forms/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /newsletter-signup/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /pathless-routes/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /remix-auth-auth0/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /remix-auth-github/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /session-flash/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /styled-components/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /toast-message/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | yarn-error.log 4 | .eslintcache 5 | .tmp 6 | package-lock.json 7 | yarn.lock 8 | pnpm-lock.yaml 9 | pnpm-lock.yml 10 | 11 | !./yarn.lock 12 | -------------------------------------------------------------------------------- /_official-blog-tutorial/prisma/migrations/migration_lock.toml: -------------------------------------------------------------------------------- 1 | # Please do not edit this file manually 2 | # It should be added in your version-control system (i.e. Git) 3 | provider = "sqlite" -------------------------------------------------------------------------------- /client-side-validation/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /file-and-s3-upload/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /framer-route-animation/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /infinite-scrolling/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /on-demand-hydration/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /outlet-form-rerender/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /pm-app/app/styles/ui/_member-search.css: -------------------------------------------------------------------------------- 1 | .ui--member-search__selections { 2 | margin-top: var(--spaces-01); 3 | gap: var(--spaces-01); 4 | display: flex; 5 | flex-wrap: wrap; 6 | } 7 | -------------------------------------------------------------------------------- /pm-app/server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "include": ["./**/*.js"], 4 | "compilerOptions": { 5 | "allowJs": true, 6 | "checkJs": true 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /redis-upstash-session/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /remix-auth-supabase/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /sharing-loader-data/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /stripe-integration/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /supabase-subscription/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /tiptap-collab-editing/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | ignoredRouteFiles: ["**/.*"], 4 | serverModuleFormat: "cjs", 5 | }; 6 | -------------------------------------------------------------------------------- /combobox-resource-route/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /emotion/app/styles/createEmotionCache.ts: -------------------------------------------------------------------------------- 1 | import createCache from "@emotion/cache"; 2 | 3 | export default function createEmotionCache() { 4 | return createCache({ key: "remix-css" }); 5 | } 6 | -------------------------------------------------------------------------------- /file-and-cloudinary-upload/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /io-ts-formdata-decoding/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /pm-app/.env.example: -------------------------------------------------------------------------------- 1 | DATABASE_URL="postgresql://{USERNAME}:{PASSWORD}@localhost:5432/pm-app?schema=public" 2 | PORT=3000 3 | SITE_URL="http://localhost:3000" 4 | SESSION_SECRET='not_a_secret' 5 | -------------------------------------------------------------------------------- /remix-auth-supabase-github/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /_official-blog-tutorial/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /build 4 | /public/build 5 | .env 6 | 7 | /cypress/screenshots 8 | /cypress/videos 9 | /prisma/data.db 10 | /prisma/data.db-journal 11 | -------------------------------------------------------------------------------- /styled-components/components/src/Box.tsx: -------------------------------------------------------------------------------- 1 | import styled from "styled-components"; 2 | 3 | export const Box = styled("div")` 4 | font-family: system-ui, sans-serif; 5 | line-height: 1.8; 6 | `; 7 | -------------------------------------------------------------------------------- /turborepo-vercel/apps/remix-app/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | }; 5 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/.yarnrc.yml: -------------------------------------------------------------------------------- 1 | plugins: 2 | - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs 3 | spec: "@yarnpkg/plugin-workspace-tools" 4 | 5 | yarnPath: .yarn/releases/yarn-3.5.0.cjs 6 | -------------------------------------------------------------------------------- /gdpr-cookie-consent/app/cookies.server.ts: -------------------------------------------------------------------------------- 1 | import { createCookie } from "@remix-run/node"; 2 | 3 | export const gdprConsent = createCookie("gdpr-consent", { 4 | maxAge: 31536000, // One Year 5 | }); 6 | -------------------------------------------------------------------------------- /quirrel/app/queues/greetings.server.ts: -------------------------------------------------------------------------------- 1 | import { Queue } from "quirrel/remix"; 2 | 3 | export default Queue("/queues/greetings", async (name: string) => { 4 | console.log(`Greetings, ${name}!`); 5 | }); 6 | -------------------------------------------------------------------------------- /unocss/unocss.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig, presetUno } from "unocss"; 2 | 3 | export default defineConfig({ 4 | // more presets: https://uno.antfu.me/?s=preset 5 | presets: [presetUno()], 6 | }); 7 | -------------------------------------------------------------------------------- /_official-realtime-app/app/events.ts: -------------------------------------------------------------------------------- 1 | import { EventEmitter } from "events"; 2 | 3 | export const EVENTS = { 4 | ISSUE_CHANGED: "ISSUE_CHANGED", 5 | }; 6 | 7 | export const emitter = new EventEmitter(); 8 | -------------------------------------------------------------------------------- /turborepo-vercel/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | dist 4 | .turbo 5 | .vercel 6 | .cache 7 | .env 8 | .output 9 | apps/**/public/build 10 | apps/**/api/index.js 11 | apps/**/api/index.js.map 12 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/.dockerignore: -------------------------------------------------------------------------------- 1 | /.git 2 | .pnp.* 3 | .yarn/* 4 | !.yarn/patches 5 | !.yarn/plugins 6 | !.yarn/releases 7 | !.yarn/sdks 8 | !.yarn/versions 9 | /.cache 10 | /build 11 | /public/build 12 | -------------------------------------------------------------------------------- /sanity/app/lib/sanity/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./config"; 2 | export * from "./filterDataToSingleItem"; 3 | export * from "./helpers"; 4 | export * from "./getClient"; 5 | export * from "./usePreviewSubscription"; 6 | -------------------------------------------------------------------------------- /_official-blog-tutorial/cypress/fixtures/example.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Using fixtures to represent data", 3 | "email": "hello@cypress.io", 4 | "body": "Fixtures are a great way to mock data for responses to routes" 5 | } 6 | -------------------------------------------------------------------------------- /pm-app/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | .env 7 | 8 | /server/build 9 | /app/db/db.json 10 | 11 | /prisma/*.db-journal 12 | /prisma/*.db 13 | /app/dist 14 | docker-compose.yml -------------------------------------------------------------------------------- /__template/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return ( 3 |
4 |

Welcome to Remix

5 |
6 | ); 7 | } 8 | -------------------------------------------------------------------------------- /form-to-notion-db/app/notion.server.tsx: -------------------------------------------------------------------------------- 1 | import { Client } from "@notionhq/client"; 2 | 3 | // Initializing a client 4 | const notion = new Client({ 5 | auth: process.env.NOTION_TOKEN, 6 | }); 7 | 8 | export default notion; 9 | -------------------------------------------------------------------------------- /pm-app/app/styles/ui/_todo-list.css: -------------------------------------------------------------------------------- 1 | .ui--todo-list { 2 | padding: 0; 3 | list-style: none; 4 | } 5 | 6 | .ui--todo-list__checkbox { 7 | margin-right: var(--spaces-02); 8 | accent-color: var(--colors-blue-09); 9 | } 10 | -------------------------------------------------------------------------------- /sanity/app/lib/sanity/config.ts: -------------------------------------------------------------------------------- 1 | export const config = { 2 | apiVersion: "2021-03-25", 3 | // Find these in your ./studio/sanity.json file 4 | dataset: "production", 5 | projectId: "YOUR_PROJECT_ID", 6 | useCdn: false, 7 | }; 8 | -------------------------------------------------------------------------------- /sanity/studio/.npmignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | /logs 3 | *.log 4 | 5 | # Coverage directory used by tools like istanbul 6 | /coverage 7 | 8 | # Dependency directories 9 | node_modules 10 | 11 | # Compiled sanity studio 12 | /dist 13 | -------------------------------------------------------------------------------- /sanity/studio/config/@sanity/google-maps-input.json: -------------------------------------------------------------------------------- 1 | { 2 | "apiKey": null, 3 | "defaultZoom": 11, 4 | "defaultLocale": null, 5 | "defaultLocation": { 6 | "lat": 40.7058254, 7 | "lng": -74.1180863 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return ( 3 |
4 |

Welcome to Remix

5 |
6 | ); 7 | } 8 | -------------------------------------------------------------------------------- /pm-app/app/styles/ui/_note.css: -------------------------------------------------------------------------------- 1 | .ui--note { 2 | padding: var(--spaces-04); 3 | background: var(--colors-yellow-05); 4 | border: 2px solid var(--colors-yellow-11); 5 | color: var(--colors-yellow-12); 6 | border-radius: 4px; 7 | } 8 | -------------------------------------------------------------------------------- /pm-app/app/ui/note.tsx: -------------------------------------------------------------------------------- 1 | import cx from "clsx"; 2 | export function Note({ 3 | children, 4 | className, 5 | }: React.PropsWithChildren<{ className?: string }>) { 6 | return
{children}
; 7 | } 8 | -------------------------------------------------------------------------------- /sass/app/styles/global.scss: -------------------------------------------------------------------------------- 1 | $font-stack: system-ui, sans-serif; 2 | $primary-color: #d90000; 3 | $line-height: 1.8; 4 | 5 | :root { 6 | color: $primary-color; 7 | font-family: $font-stack; 8 | line-height: $line-height; 9 | } 10 | -------------------------------------------------------------------------------- /strapi/strapi/src/api/post/routes/post.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | /** 4 | * post router. 5 | */ 6 | 7 | const { createCoreRouter } = require("@strapi/strapi").factories; 8 | 9 | module.exports = createCoreRouter("api::post.post"); 10 | -------------------------------------------------------------------------------- /tailwindcss/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | export default { 4 | content: ["./app/**/*.{js,jsx,ts,tsx}"], 5 | theme: { 6 | extend: {}, 7 | }, 8 | plugins: [], 9 | } satisfies Config; 10 | -------------------------------------------------------------------------------- /turborepo-vercel/apps/remix-app/server.js: -------------------------------------------------------------------------------- 1 | import * as build from "@remix-run/dev/server-build"; 2 | import { createRequestHandler } from "@remix-run/vercel"; 3 | 4 | export default createRequestHandler({ build, mode: process.env.NODE_ENV }); 5 | -------------------------------------------------------------------------------- /chakra-ui/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Box } from "@chakra-ui/react"; 2 | 3 | export default function Index() { 4 | return ( 5 | 6 | Hello World! 7 | 8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /client-only-components/app/components/broken-on-the-server.client.tsx: -------------------------------------------------------------------------------- 1 | const value = JSON.parse(localStorage.getItem("count") ?? "0"); 2 | 3 | export function BrokenOnTheServer() { 4 | return

The initial count value was {value}

; 5 | } 6 | -------------------------------------------------------------------------------- /picocss/app/styles.css: -------------------------------------------------------------------------------- 1 | @import url("@picocss/pico"); 2 | 3 | article > footer { 4 | display: flex; 5 | justify-content: space-between; 6 | align-items: center; 7 | } 8 | 9 | article > footer > * { 10 | max-width: 200px; 11 | } 12 | -------------------------------------------------------------------------------- /strapi/strapi/src/api/post/services/post.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | /** 4 | * post service. 5 | */ 6 | 7 | const { createCoreService } = require("@strapi/strapi").factories; 8 | 9 | module.exports = createCoreService("api::post.post"); 10 | -------------------------------------------------------------------------------- /_official-realtime-app/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | export default { 4 | content: ["./app/**/*.{js,jsx,ts,tsx}"], 5 | theme: { 6 | extend: {}, 7 | }, 8 | plugins: [], 9 | } satisfies Config; 10 | -------------------------------------------------------------------------------- /bullmq-task-queue/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | appDirectory: "app", 4 | browserBuildDirectory: "public/build", 5 | publicPath: "/build/", 6 | serverBuildDirectory: "build", 7 | }; 8 | -------------------------------------------------------------------------------- /styled-components/components/.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | "@babel/preset-typescript", 4 | ["@babel/preset-react", { "runtime": "automatic" }] 5 | ], 6 | "plugins": ["babel-plugin-styled-components"], 7 | "sourceMaps": "inline" 8 | } 9 | -------------------------------------------------------------------------------- /supabase-subscription/app/utils/supabaseClient.server.tsx: -------------------------------------------------------------------------------- 1 | import { createClient } from "@supabase/supabase-js"; 2 | 3 | export const client = createClient( 4 | process.env.SUPABASE_URL as string, 5 | process.env.SUPABASE_ANON_KEY as string, 6 | ); 7 | -------------------------------------------------------------------------------- /_official-blog-tutorial/tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from "tailwindcss"; 2 | 3 | export default { 4 | content: ["./app/**/*.{js,jsx,ts,tsx}"], 5 | theme: { 6 | extend: {}, 7 | }, 8 | plugins: [], 9 | } satisfies Config; 10 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/.gitignore: -------------------------------------------------------------------------------- 1 | # Yarn 3 PnP 2 | .pnp.* 3 | .yarn/* 4 | !.yarn/patches 5 | !.yarn/plugins 6 | !.yarn/releases 7 | !.yarn/sdks 8 | !.yarn/versions 9 | !yarn.lock 10 | 11 | # Remix 12 | /.cache 13 | /build 14 | /public/build 15 | .env 16 | -------------------------------------------------------------------------------- /msw/mocks/index.cjs: -------------------------------------------------------------------------------- 1 | const { setupServer } = require("msw/node"); 2 | 3 | const handlers = require("./handlers.cjs"); 4 | 5 | const server = setupServer(...handlers); 6 | server.listen({ onUnhandledRequest: "warn" }); 7 | console.info("MSW initialized"); 8 | -------------------------------------------------------------------------------- /zerops/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [remix(), tsconfigPaths()], 7 | }); 8 | -------------------------------------------------------------------------------- /pathless-routes/app/routes/articles._layout.tsx: -------------------------------------------------------------------------------- 1 | import { Outlet } from "@remix-run/react"; 2 | 3 | export default function ArticleLayoutRoute() { 4 | return ( 5 |
6 | 7 |
8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /strapi/strapi/src/api/post/controllers/post.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | /** 4 | * post controller 5 | */ 6 | 7 | const { createCoreController } = require("@strapi/strapi").factories; 8 | 9 | module.exports = createCoreController("api::post.post"); 10 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: / 5 | schedule: 6 | interval: daily 7 | 8 | - package-ecosystem: npm 9 | directory: / 10 | schedule: 11 | interval: daily 12 | -------------------------------------------------------------------------------- /msw/mocks/handlers.cjs: -------------------------------------------------------------------------------- 1 | const { http, HttpResponse } = require("msw"); 2 | 3 | const handlers = [ 4 | http.get("https://my-mock-api.com", () => { 5 | return HttpResponse.json({ message: "from msw" }); 6 | }), 7 | ]; 8 | 9 | module.exports = handlers; 10 | -------------------------------------------------------------------------------- /pathless-routes/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import type { MetaFunction } from "@remix-run/node"; 2 | 3 | export const meta: MetaFunction = () => { 4 | return { title: "Home" }; 5 | }; 6 | 7 | export default function Index() { 8 | return

Home

; 9 | } 10 | -------------------------------------------------------------------------------- /pm-app/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: [ 3 | require("postcss-import"), 4 | require("postcss-preset-env")({ 5 | stage: 1, 6 | }), 7 | require("postcss-100vh-fix"), 8 | require("postcss-focus-visible"), 9 | ], 10 | }; 11 | -------------------------------------------------------------------------------- /tiptap-collab-editing/app/utils/webrtc.client.tsx: -------------------------------------------------------------------------------- 1 | import Collaboration from "@tiptap/extension-collaboration"; 2 | import { WebrtcProvider } from "y-webrtc"; 3 | import * as Y from "yjs"; 4 | const ydoc = new Y.Doc(); 5 | 6 | export { Collaboration, WebrtcProvider, ydoc }; 7 | -------------------------------------------------------------------------------- /styled-components/app/styles-context.tsx: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | const StylesContext = React.createContext(null); 3 | export const StylesProvider = StylesContext.Provider; 4 | export const useStyles = () => React.useContext(StylesContext); 5 | -------------------------------------------------------------------------------- /turborepo-vercel/packages/ui/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["ES2015"], 4 | "module": "ESNext", 5 | "target": "ES6", 6 | "jsx": "react-jsx" 7 | }, 8 | "include": ["src"], 9 | "exclude": ["dist", "build", "node_modules"] 10 | } 11 | -------------------------------------------------------------------------------- /_official-blog-tutorial/.gitpod.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gitpod/workspace-full 2 | 3 | # Install Fly 4 | RUN curl -L https://fly.io/install.sh | sh 5 | ENV FLYCTL_INSTALL="/home/gitpod/.fly" 6 | ENV PATH="$FLYCTL_INSTALL/bin:$PATH" 7 | 8 | # Install GitHub CLI 9 | RUN brew install gh 10 | -------------------------------------------------------------------------------- /playwright/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function Index() { 4 | return ( 5 |
6 |

Welcome to Remix + Playwright example

7 | Login 8 |
9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return ( 3 |

4 | This is a demo for Remix. 5 |
6 | Check out the docs at remix.run. 7 |

8 | ); 9 | } 10 | -------------------------------------------------------------------------------- /_official-jokes/app/utils/request.server.ts: -------------------------------------------------------------------------------- 1 | import { json } from "@remix-run/node"; 2 | 3 | /** 4 | * This helper function helps us to return the accurate HTTP status, 5 | * 400 Bad Request, to the client. 6 | */ 7 | export const badRequest = (data: T) => json(data, { status: 400 }); 8 | -------------------------------------------------------------------------------- /strapi/strapi/config/middlewares.js: -------------------------------------------------------------------------------- 1 | module.exports = [ 2 | "strapi::errors", 3 | "strapi::security", 4 | "strapi::cors", 5 | "strapi::poweredBy", 6 | "strapi::logger", 7 | "strapi::query", 8 | "strapi::body", 9 | "strapi::favicon", 10 | "strapi::public", 11 | ]; 12 | -------------------------------------------------------------------------------- /remix-auth-auth0/.env.example: -------------------------------------------------------------------------------- 1 | AUTH0_RETURN_TO_URL=http://localhost:3000 2 | AUTH0_CALLBACK_URL=http://localhost:3000/callback 3 | AUTH0_CLIENT_ID=clientID 4 | AUTH0_CLIENT_SECRET=clientSecret 5 | AUTH0_DOMAIN=******.**.auth0.com 6 | AUTH0_LOGOUT_URL=https://******.**.auth0.com/v2/logout 7 | SECRETS=foobar -------------------------------------------------------------------------------- /tailwindcss/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import type { V2_MetaFunction } from "@remix-run/node"; 2 | 3 | export const meta: V2_MetaFunction = () => [{ title: "New Remix App" }]; 4 | 5 | export default function Index() { 6 | return

Hello World!

; 7 | } 8 | -------------------------------------------------------------------------------- /twind/twind.config.ts: -------------------------------------------------------------------------------- 1 | import presetAutoprefix from "@twind/preset-autoprefix"; 2 | import presetTailwind from "@twind/preset-tailwind"; 3 | import { defineConfig } from "twind"; 4 | 5 | export default defineConfig({ 6 | presets: [presetAutoprefix(), presetTailwind()], 7 | // config goes here 8 | }); 9 | -------------------------------------------------------------------------------- /_official-jokes/app/utils/db.server.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client"; 2 | 3 | import { singleton } from "./singleton.server"; 4 | 5 | // Hard-code a unique key, so we can look up the client when this module gets re-imported 6 | export const db = singleton("prisma", () => new PrismaClient()); 7 | -------------------------------------------------------------------------------- /pm-app/prisma/migrations/20211207153717_/migration.sql: -------------------------------------------------------------------------------- 1 | -- DropForeignKey 2 | ALTER TABLE "Todo" DROP CONSTRAINT "Todo_todoListId_fkey"; 3 | 4 | -- AddForeignKey 5 | ALTER TABLE "Todo" ADD CONSTRAINT "Todo_todoListId_fkey" FOREIGN KEY ("todoListId") REFERENCES "TodoList"("id") ON DELETE CASCADE ON UPDATE CASCADE; 6 | -------------------------------------------------------------------------------- /rust/rust-functions/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "rust-functions" 3 | version = "0.1.0" 4 | edition = "2021" 5 | 6 | [lib] 7 | crate-type = ["cdylib"] 8 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 9 | 10 | [dependencies] 11 | wasm-bindgen = "0.2.79" -------------------------------------------------------------------------------- /sanity/app/styles/global.css: -------------------------------------------------------------------------------- 1 | :focus:not(:focus-visible) { 2 | outline: none; 3 | } 4 | 5 | body { 6 | font-family: sans-serif; 7 | } 8 | 9 | footer { 10 | text-align: center; 11 | color: #ccc; 12 | padding-top: 80px; 13 | } 14 | 15 | img { 16 | max-width: 100%; 17 | height: auto; 18 | } 19 | -------------------------------------------------------------------------------- /_official-blog-tutorial/app/db.server.ts: -------------------------------------------------------------------------------- 1 | import { PrismaClient } from "@prisma/client"; 2 | 3 | import { singleton } from "./singleton.server"; 4 | 5 | // Hard-code a unique key, so we can look up the client when this module gets re-imported 6 | export const prisma = singleton("prisma", () => new PrismaClient()); 7 | -------------------------------------------------------------------------------- /dark-mode/app/styles/styles.css: -------------------------------------------------------------------------------- 1 | html { 2 | --background-colour: white; 3 | 4 | background-color: var(--background-colour); 5 | } 6 | 7 | html.dark { 8 | --background-colour: black; 9 | } 10 | 11 | .dark-component { 12 | color: white; 13 | } 14 | 15 | .light-component { 16 | color: black; 17 | } 18 | -------------------------------------------------------------------------------- /_official-blog-tutorial/app/routes/posts.admin._index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function AdminIndex() { 4 | return ( 5 |

6 | 7 | Create a New Post 8 | 9 |

10 | ); 11 | } 12 | -------------------------------------------------------------------------------- /emotion/app/styles/client.context.tsx: -------------------------------------------------------------------------------- 1 | import { createContext } from "react"; 2 | 3 | export interface ClientStyleContextData { 4 | reset: () => void; 5 | } 6 | 7 | const ClientStyleContext = createContext({ 8 | reset: () => {}, 9 | }); 10 | 11 | export default ClientStyleContext; 12 | -------------------------------------------------------------------------------- /firebase/functions/index.js: -------------------------------------------------------------------------------- 1 | const { onRequest } = require("firebase-functions/v2/https"); 2 | const { createRequestHandler } = require("remix-google-cloud-functions"); 3 | 4 | const remix = onRequest( 5 | createRequestHandler({ 6 | build: require("../build"), 7 | }), 8 | ); 9 | module.exports = { remix }; 10 | -------------------------------------------------------------------------------- /pm-app/prisma/migrations/20211207231727_/migration.sql: -------------------------------------------------------------------------------- 1 | -- DropForeignKey 2 | ALTER TABLE "TodoList" DROP CONSTRAINT "TodoList_projectId_fkey"; 3 | 4 | -- AddForeignKey 5 | ALTER TABLE "TodoList" ADD CONSTRAINT "TodoList_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE; 6 | -------------------------------------------------------------------------------- /_official-blog-tutorial/app/routes/logout.tsx: -------------------------------------------------------------------------------- 1 | import type { ActionArgs } from "@remix-run/node"; 2 | import { redirect } from "@remix-run/node"; 3 | 4 | import { logout } from "~/session.server"; 5 | 6 | export const action = async ({ request }: ActionArgs) => logout(request); 7 | 8 | export const loader = async () => redirect("/"); 9 | -------------------------------------------------------------------------------- /_official-jokes/app/routes/logout.tsx: -------------------------------------------------------------------------------- 1 | import type { ActionArgs } from "@remix-run/node"; 2 | import { redirect } from "@remix-run/node"; 3 | 4 | import { logout } from "~/utils/session.server"; 5 | 6 | export const action = async ({ request }: ActionArgs) => logout(request); 7 | 8 | export const loader = async () => redirect("/"); 9 | -------------------------------------------------------------------------------- /pm-app/app/styles/_defs.css: -------------------------------------------------------------------------------- 1 | @custom-media --viewport-sm (min-width: 640px); 2 | @custom-media --viewport-md (min-width: 768px); 3 | @custom-media --viewport-lg (min-width: 1024px); 4 | @custom-media --viewport-xl (min-width: 1280px); 5 | @custom-media --viewport-2x (min-width: 1536px); 6 | @custom-media --viewport-3x (min-width: 1920px); 7 | -------------------------------------------------------------------------------- /pm-app/app/styles/routes/dashboard/projects/new.css: -------------------------------------------------------------------------------- 1 | @import "../../../_defs.css"; 2 | 3 | .new-project__header { 4 | margin-bottom: 2rem; 5 | } 6 | 7 | .new-project__form > :not(:last-child) { 8 | margin-bottom: 1rem; 9 | } 10 | 11 | .member-selection-wrapper { 12 | min-height: 3rem; 13 | margin-top: 0.5rem; 14 | } 15 | -------------------------------------------------------------------------------- /remix-auth-form/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function Index() { 4 | return ( 5 |
6 |

Welcome to Remix

7 | Login 8 |
9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /_official-blog-tutorial/mocks/index.js: -------------------------------------------------------------------------------- 1 | const { setupServer } = require("msw/node"); 2 | 3 | const server = setupServer(); 4 | 5 | server.listen({ onUnhandledRequest: "bypass" }); 6 | console.info("🔶 Mock server running"); 7 | 8 | process.once("SIGINT", () => server.close()); 9 | process.once("SIGTERM", () => server.close()); 10 | -------------------------------------------------------------------------------- /emotion/app/styles/server.context.tsx: -------------------------------------------------------------------------------- 1 | import { createContext } from "react"; 2 | 3 | export interface ServerStyleContextData { 4 | key: string; 5 | ids: Array; 6 | css: string; 7 | } 8 | 9 | const ServerStyleContext = createContext(null); 10 | 11 | export default ServerStyleContext; 12 | -------------------------------------------------------------------------------- /turborepo-vercel/apps/remix-app/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Button } from "ui"; 2 | 3 | export default function Index() { 4 | return ( 5 |
6 |

Welcome to Remix Turborepo Vercel example

7 |
9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /styled-components/app/routes/_boundary.$.tsx: -------------------------------------------------------------------------------- 1 | // Any request for this top-level splat route is a 404 2 | export const loader = () => { 3 | throw new Response(null, { 4 | status: 404, 5 | statusText: "Not Found", 6 | }); 7 | }; 8 | 9 | // This is needed to tell Remix it isn't a resource route 10 | export default () => null; 11 | -------------------------------------------------------------------------------- /google-analytics/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import type { MetaFunction } from "@remix-run/node"; 2 | 3 | export const meta: MetaFunction = () => [ 4 | { 5 | title: "Home", 6 | }, 7 | ]; 8 | 9 | export default function Index() { 10 | return ( 11 |
12 |

This is a Index/Home page

13 |
14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /nprogress/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { installGlobals } from "@remix-run/node"; 3 | import { defineConfig } from "vite"; 4 | import tsconfigPaths from "vite-tsconfig-paths"; 5 | 6 | installGlobals(); 7 | 8 | export default defineConfig({ 9 | plugins: [remix(), tsconfigPaths()], 10 | }); 11 | -------------------------------------------------------------------------------- /google-analytics/app/routes/profile.tsx: -------------------------------------------------------------------------------- 1 | import type { MetaFunction } from "@remix-run/node"; 2 | 3 | export const meta: MetaFunction = () => [ 4 | { 5 | title: "Profile", 6 | }, 7 | ]; 8 | 9 | export default function Profile() { 10 | return ( 11 |
12 |

This is a profile page

13 |
14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /remix-auth-auth0/app/routes/callback.tsx: -------------------------------------------------------------------------------- 1 | import type { LoaderArgs } from "@remix-run/node"; 2 | 3 | import { auth } from "~/utils/auth.server"; 4 | 5 | export const loader = async ({ request }: LoaderArgs) => { 6 | return auth.authenticate("auth0", request, { 7 | successRedirect: "/private", 8 | failureRedirect: "/", 9 | }); 10 | }; 11 | -------------------------------------------------------------------------------- /strapi/strapi/src/admin/webpack.config.example.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | /* eslint-disable no-unused-vars */ 4 | module.exports = (config, webpack) => { 5 | // Note: we provide webpack above so you should not `require` it 6 | // Perform customizations to webpack config 7 | // Important: return the modified config 8 | return config; 9 | }; 10 | -------------------------------------------------------------------------------- /emotion/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /firebase/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /google-analytics/app/routes/dashboard.tsx: -------------------------------------------------------------------------------- 1 | import type { MetaFunction } from "@remix-run/node"; 2 | 3 | export const meta: MetaFunction = () => [ 4 | { 5 | title: "Dashboard", 6 | }, 7 | ]; 8 | 9 | export default function Dashboard() { 10 | return ( 11 |
12 |

This is a dashboard page

13 |
14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /ioredis/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /mantine/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /nprogress/app/routes/slow-page.tsx: -------------------------------------------------------------------------------- 1 | import { json } from "@remix-run/node"; 2 | import { Link } from "@remix-run/react"; 3 | 4 | export const loader = async () => { 5 | await new Promise((resolve) => setTimeout(resolve, 1000)); 6 | return json({}); 7 | }; 8 | 9 | export default function Screen() { 10 | return Home; 11 | } 12 | -------------------------------------------------------------------------------- /picocss/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /pm-app/prisma/migrations/20211208222216_/migration.sql: -------------------------------------------------------------------------------- 1 | -- DropForeignKey 2 | ALTER TABLE "MembersOnProjects" DROP CONSTRAINT "MembersOnProjects_projectId_fkey"; 3 | 4 | -- AddForeignKey 5 | ALTER TABLE "MembersOnProjects" ADD CONSTRAINT "MembersOnProjects_projectId_fkey" FOREIGN KEY ("projectId") REFERENCES "Project"("id") ON DELETE CASCADE ON UPDATE CASCADE; 6 | -------------------------------------------------------------------------------- /remix-auth-github/app/routes/auth.github.tsx: -------------------------------------------------------------------------------- 1 | import type { ActionArgs } from "@remix-run/node"; 2 | 3 | import { auth } from "~/auth.server"; 4 | 5 | export const action = async ({ request }: ActionArgs) => { 6 | return await auth.authenticate("github", request, { 7 | successRedirect: "/private", 8 | failureRedirect: "/", 9 | }); 10 | }; 11 | -------------------------------------------------------------------------------- /sanity/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /sse-chat/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /stitches/app/styles/client.context.ts: -------------------------------------------------------------------------------- 1 | import { createContext } from "react"; 2 | 3 | export interface ClientStyleContextData { 4 | reset: () => void; 5 | sheet: string; 6 | } 7 | 8 | const ClientStyleContext = createContext({ 9 | reset: () => {}, 10 | sheet: "", 11 | }); 12 | 13 | export default ClientStyleContext; 14 | -------------------------------------------------------------------------------- /stitches/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /strapi/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /theme-ui/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /xata/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /yarn-pnp/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /chakra-ui/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /dataloader/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | serverBuildDirectory: "server/build", 8 | // appDirectory: "app", 9 | // assetsBuildDirectory: "public/build", 10 | // publicPath: "/build/", 11 | }; 12 | -------------------------------------------------------------------------------- /framer-motion/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /graphql-api/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /react-spring/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /remix-auth-auth0/app/routes/auth0.tsx: -------------------------------------------------------------------------------- 1 | import type { ActionArgs } from "@remix-run/node"; 2 | import { redirect } from "@remix-run/node"; 3 | 4 | import { auth } from "~/utils/auth.server"; 5 | 6 | export const loader = async () => redirect("/"); 7 | 8 | export const action = async ({ request }: ActionArgs) => 9 | auth.authenticate("auth0", request); 10 | -------------------------------------------------------------------------------- /remix-auth-github/app/routes/auth.github.callback.tsx: -------------------------------------------------------------------------------- 1 | import type { LoaderArgs } from "@remix-run/node"; 2 | 3 | import { auth } from "~/auth.server"; 4 | 5 | export const loader = async ({ request }: LoaderArgs) => { 6 | return auth.authenticate("github", request, { 7 | successRedirect: "/private", 8 | failureRedirect: "/", 9 | }); 10 | }; 11 | -------------------------------------------------------------------------------- /route-modal/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /routes-gen/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /search-input/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /session-flash/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /sse-counter/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /styletron/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /toast-message/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /collected-notes/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /file-and-s3-upload/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /form-to-notion-db/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /infinite-scrolling/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /multiple-forms/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /multiple-params/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /newsletter-signup/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /pathless-routes/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /pm-app/docker-compose.example.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | services: 3 | postgres: 4 | image: postgres:10.3 5 | restart: always 6 | environment: 7 | - POSTGRES_USER=USER_NAME 8 | - POSTGRES_PASSWORD=PASSWORD 9 | volumes: 10 | - postgres:/var/lib/postgresql/data 11 | ports: 12 | - "5432:5432" 13 | volumes: 14 | postgres: 15 | -------------------------------------------------------------------------------- /remix-auth-auth0/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /remix-auth-github/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /stripe-integration/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /styled-components/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /twind/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | serverDependenciesToBundle: [ 8 | "twind", 9 | "@twind/preset-autoprefix", 10 | "@twind/preset-tailwind", 11 | "@twind/with-remix", 12 | ], 13 | }; 14 | -------------------------------------------------------------------------------- /client-side-validation/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /combobox-resource-route/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /docker-with-yarn-pnp/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /framer-route-animation/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /io-ts-formdata-decoding/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /on-demand-hydration/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /outlet-form-rerender/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /redis-upstash-session/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /remix-auth-supabase/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /sanity/studio/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // Note: This config is only used to help editors like VS Code understand/resolve 3 | // parts, the actual transpilation is done by babel. Any compiler configuration in 4 | // here will be ignored. 5 | "include": [ 6 | "./node_modules/@sanity/base/types/**/*.ts", 7 | "./**/*.ts", 8 | "./**/*.tsx" 9 | ] 10 | } 11 | -------------------------------------------------------------------------------- /sharing-loader-data/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /supabase-subscription/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /tiptap-collab-editing/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /vanilla-extract/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Text, Box } from "~/components"; 2 | 3 | export default function Index() { 4 | return ( 5 | 12 | Hello World! 13 | 14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /file-and-cloudinary-upload/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /picocss/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function Index() { 4 | return ( 5 |
6 |
Remix + PicoCSS template
7 | Start your awesome project here! 8 |
9 |
10 | See examples here 11 |
12 | ); 13 | } 14 | -------------------------------------------------------------------------------- /remix-auth-supabase-github/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | future: { 4 | v2_routeConvention: true, 5 | }, 6 | ignoredRouteFiles: ["**/.*"], 7 | // appDirectory: "app", 8 | // assetsBuildDirectory: "public/build", 9 | // publicPath: "/build/", 10 | // serverBuildPath: "build/index.js", 11 | }; 12 | -------------------------------------------------------------------------------- /routes-gen/app/routes/products.$productId.tsx: -------------------------------------------------------------------------------- 1 | import { useParams } from "react-router-dom"; 2 | import type { RouteParams } from "routes-gen"; 3 | 4 | export default function Product() { 5 | const params = useParams(); 6 | 7 | return ( 8 |
9 |

Product {params.productId}

10 |
11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /_official-blog-tutorial/app/routes/notes._index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function NoteIndexPage() { 4 | return ( 5 |

6 | No note selected. Select a note on the left, or{" "} 7 | 8 | create a new note. 9 | 10 |

11 | ); 12 | } 13 | -------------------------------------------------------------------------------- /infinite-scrolling/app/styles/index.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | padding: 1rem; 3 | border-bottom: 1px solid; 4 | margin-bottom: 0; 5 | } 6 | 7 | .list-item { 8 | padding-left: 1rem; 9 | display: flex; 10 | align-items: center; 11 | gap: 1rem; 12 | } 13 | 14 | .list-item--odd { 15 | background: #f8fafc; 16 | } 17 | 18 | .list-item--even { 19 | background: #cbd5ff; 20 | } 21 | -------------------------------------------------------------------------------- /routes-gen/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "react-router-dom"; 2 | import { route } from "routes-gen"; 3 | 4 | export default function Index() { 5 | return ( 6 |
7 |

Homepage

8 |
    9 |
  • 10 | Products 11 |
  • 12 |
13 |
14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /strapi/strapi/config/database.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = ({ env }) => ({ 4 | connection: { 5 | client: "sqlite", 6 | connection: { 7 | filename: path.join( 8 | __dirname, 9 | "..", 10 | env("DATABASE_FILENAME", ".tmp/data.db"), 11 | ), 12 | }, 13 | useNullAsDefault: true, 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /styled-components/components/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "include": ["**/*.ts", "**/*.tsx"], 4 | "compilerOptions": { 5 | "outDir": "../app/components", 6 | 7 | // Babel generates the JS files but we still need to emit .d.ts files 8 | "declaration": true, 9 | "noEmit": false, 10 | "emitDeclarationOnly": true 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /theme-ui/app/routes/jokes.tsx: -------------------------------------------------------------------------------- 1 | /** @jsx jsx */ 2 | import { Link } from "@remix-run/react"; 3 | import { jsx } from "@theme-ui/core"; 4 | 5 | export default function Jokes() { 6 | return ( 7 |
8 |

Jokes

9 |

This route works fine.

10 | Back to home 11 |
12 | ); 13 | } 14 | -------------------------------------------------------------------------------- /firebase/firebase-fixtures/firestore.rules: -------------------------------------------------------------------------------- 1 | rules_version = '2'; 2 | service cloud.firestore { 3 | match /databases/{database}/documents { 4 | // All reads and writes are done via firebase-admin, which skips Firebase rules. 5 | // This disables public access to all Firestore data. 6 | match /{document=**} { 7 | allow read, write: if false; 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /pm-app/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import type { LoaderArgs } from "@remix-run/node"; 2 | import { redirect } from "@remix-run/node"; 3 | 4 | import { getUser } from "~/session.server"; 5 | 6 | export const loader = async ({ request }: LoaderArgs) => { 7 | const user = await getUser(request); 8 | if (user) { 9 | return redirect("dashboard"); 10 | } 11 | return redirect("sign-in"); 12 | }; 13 | -------------------------------------------------------------------------------- /pm-app/app/routes/sign-out.tsx: -------------------------------------------------------------------------------- 1 | import type { ActionArgs, LoaderArgs } from "@remix-run/node"; 2 | 3 | import { logout } from "~/session.server"; 4 | 5 | export const action = async ({ request }: ActionArgs) => { 6 | return logout(request, { redirect: "/sign-in" }); 7 | }; 8 | 9 | export const loader = async ({ request }: LoaderArgs) => { 10 | return logout(request, { redirect: "/sign-in" }); 11 | }; 12 | -------------------------------------------------------------------------------- /_official-jokes/app/styles/global-large.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | font-size: 3.75rem; 3 | line-height: 1; 4 | } 5 | 6 | h2 { 7 | font-size: 1.875rem; 8 | line-height: 2.25rem; 9 | } 10 | 11 | h3 { 12 | font-size: 1.5rem; 13 | line-height: 2rem; 14 | } 15 | 16 | h4 { 17 | font-size: 1.25rem; 18 | line-height: 1.75rem; 19 | } 20 | 21 | h5 { 22 | font-size: 1.125rem; 23 | line-height: 1.75rem; 24 | } 25 | -------------------------------------------------------------------------------- /quirrel/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import greetingsQueue from "~/queues/greetings.server"; 2 | 3 | export const loader = async () => { 4 | await greetingsQueue.enqueue("Groot"); 5 | return null; 6 | }; 7 | 8 | export default function Index() { 9 | return ( 10 |
11 |

Welcome to Remix

12 |
13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /sanity/app/lib/sanity/filterDataToSingleItem.ts: -------------------------------------------------------------------------------- 1 | export const filterDataToSingleItem = (data: unknown = [], preview = false) => { 2 | if (!Array.isArray(data)) { 3 | return data; 4 | } 5 | 6 | if (data.length === 1) { 7 | return data[0]; 8 | } 9 | 10 | if (preview) { 11 | return data.find((item) => item._id.startsWith(`drafts.`)) || data[0]; 12 | } 13 | 14 | return data[0]; 15 | }; 16 | -------------------------------------------------------------------------------- /_official-blog-tutorial/mocks/README.md: -------------------------------------------------------------------------------- 1 | # Mocks 2 | 3 | Use this to mock any third party HTTP resources that you don't have running locally and want to have mocked for local development as well as tests. 4 | 5 | Learn more about how to use this at [mswjs.io](https://mswjs.io/) 6 | 7 | For an extensive example, see the [source code for kentcdodds.com](https://github.com/kentcdodds/kentcdodds.com/blob/main/mocks/index.ts) 8 | -------------------------------------------------------------------------------- /firebase/firebase-fixtures/auth/accounts.json: -------------------------------------------------------------------------------- 1 | { 2 | "kind": "identitytoolkit#DownloadAccountResponse", 3 | "users": [ 4 | { 5 | "displayName": "Example User", 6 | "localId": "example-user-id", 7 | "email": "user@example.com", 8 | "salt": "fakeSaltpxzWUXbZSfvlQQOvuofg", 9 | "passwordHash": "fakeHash:salt=fakeSaltpxzWUXbZSfvlQQOvuofg:password=password" 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /multiple-params/.eslintrc.js: -------------------------------------------------------------------------------- 1 | /** @type {import('eslint').Linter.Config} */ 2 | module.exports = { 3 | extends: ["@remix-run/eslint-config", "@remix-run/eslint-config/node"], 4 | overrides: [ 5 | { 6 | // all ```jsx & ```tsx code blocks in .md files 7 | files: ["**/*.md/*.jsx", "**/*.md/*.tsx"], 8 | rules: { 9 | "react/jsx-no-undef": "off", 10 | }, 11 | }, 12 | ], 13 | }; 14 | -------------------------------------------------------------------------------- /emotion/app/routes/jokes.tsx: -------------------------------------------------------------------------------- 1 | import styled from "@emotion/styled"; 2 | import { Link } from "@remix-run/react"; 3 | 4 | const Container = styled("div")` 5 | background-color: #d6d6d6; 6 | `; 7 | 8 | export default function Jokes() { 9 | return ( 10 | 11 |

Jokes

12 |

This route works fine.

13 | Back to home 14 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /firebase/app/sessions.ts: -------------------------------------------------------------------------------- 1 | import { createCookieSessionStorage } from "@remix-run/node"; 2 | 3 | export const { getSession, commitSession, destroySession } = 4 | createCookieSessionStorage({ 5 | cookie: { 6 | name: "__session", 7 | secrets: ["fancy-secret-key"], 8 | maxAge: 60 * 60 * 24 * 7, // 1 week 9 | sameSite: "lax", 10 | path: "/", 11 | httpOnly: true, 12 | }, 13 | }); 14 | -------------------------------------------------------------------------------- /styletron/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { styled } from "styletron-react"; 2 | 3 | const Box = styled("div", () => ({ 4 | fontFamily: "system-ui, sans-serif", 5 | lineHeight: 1.8, 6 | })); 7 | 8 | export default function Index() { 9 | return ( 10 | 11 |

Welcome to Remix + Styletron

12 |

These styles were extracted during server-side rendering!

13 |
14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /sanity/studio/schemas/plotSummaries.js: -------------------------------------------------------------------------------- 1 | export default { 2 | title: "Plot summaries", 3 | name: "plotSummaries", 4 | type: "object", 5 | fields: [ 6 | { 7 | name: "caption", 8 | title: "Caption", 9 | type: "string", 10 | }, 11 | { 12 | name: "summaries", 13 | title: "Summaries", 14 | type: "array", 15 | of: [{ type: "plotSummary" }], 16 | }, 17 | ], 18 | }; 19 | -------------------------------------------------------------------------------- /remix-auth-supabase/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function Index() { 4 | return ( 5 | <> 6 |

Index page

7 |
    8 |
  • 9 | Go to private page 10 |
  • 11 |
  • 12 | Go to login page 13 |
  • 14 |
15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /remix-auth-supabase-github/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | export default function Index() { 4 | return ( 5 | <> 6 |

Index page

7 |
    8 |
  • 9 | Go to private page 10 |
  • 11 |
  • 12 | Go to login page 13 |
  • 14 |
15 | 16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /msw/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /rust/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /sass/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /stitches/app/routes/jokes.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | import { styled } from "~/styles/stitches.config"; 4 | 5 | const Container = styled("div", { 6 | backgroundColor: "#d6d6d6", 7 | }); 8 | 9 | export default function Jokes() { 10 | return ( 11 | 12 |

Jokes

13 |

This route works fine.

14 | Back to home 15 |
16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /dark-mode/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /leaflet/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /mux-video/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /quirrel/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /socket.io/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /unocss/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /__template/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /error-boundary/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /image-resize/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /playwright/e2e/page.spec.tsx: -------------------------------------------------------------------------------- 1 | import { test, expect } from "@playwright/test"; 2 | 3 | test("should navigate to the login page", async ({ page }) => { 4 | await page.goto("/"); 5 | await expect(page.locator("h1")).toContainText( 6 | "Welcome to Remix + Playwright example", 7 | ); 8 | await page.click("text=Login"); 9 | 10 | await expect(page).toHaveURL("/login"); 11 | await expect(page.locator("h1")).toContainText("Login Page"); 12 | }); 13 | -------------------------------------------------------------------------------- /playwright/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /react-quill/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /tailwindcss/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /gdpr-cookie-consent/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /google-analytics/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /remix-auth-form/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /_official-realtime-app/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /client-only-components/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { vitePlugin as remix } from "@remix-run/dev"; 2 | import { defineConfig } from "vite"; 3 | import tsconfigPaths from "vite-tsconfig-paths"; 4 | 5 | export default defineConfig({ 6 | plugins: [ 7 | remix({ 8 | future: { 9 | v3_fetcherPersist: true, 10 | v3_relativeSplatPath: true, 11 | v3_throwAbortReason: true, 12 | }, 13 | }), 14 | tsconfigPaths(), 15 | ], 16 | }); 17 | -------------------------------------------------------------------------------- /_official-contacts-tutorial/app/routes/contacts.$contactId.destroy.tsx: -------------------------------------------------------------------------------- 1 | import type { ActionArgs } from "@remix-run/node"; 2 | import { redirect } from "@remix-run/node"; 3 | import invariant from "tiny-invariant"; 4 | 5 | import { deleteContact } from "../data"; 6 | 7 | export const action = async ({ params }: ActionArgs) => { 8 | invariant(params.contactId, "Missing contactId param"); 9 | await deleteContact(params.contactId); 10 | return redirect("/"); 11 | }; 12 | -------------------------------------------------------------------------------- /_official-jokes/app/styles/global-medium.css: -------------------------------------------------------------------------------- 1 | h1 { 2 | font-size: 3rem; 3 | line-height: 1; 4 | } 5 | 6 | h2 { 7 | font-size: 2.25rem; 8 | line-height: 2.5rem; 9 | } 10 | 11 | h3 { 12 | font-size: 1.25rem; 13 | line-height: 1.75rem; 14 | } 15 | 16 | h4 { 17 | font-size: 1.125rem; 18 | line-height: 1.75rem; 19 | } 20 | 21 | h5, 22 | h6 { 23 | font-size: 1rem; 24 | line-height: 1.5rem; 25 | } 26 | 27 | .container { 28 | --gutter: 40px; 29 | } 30 | -------------------------------------------------------------------------------- /sharing-loader-data/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { Link, useMatches } from "@remix-run/react"; 2 | 3 | import type { User } from "~/data.server"; 4 | 5 | export default function Index() { 6 | // the root route will always be the first match 7 | const rootData = useMatches()[0].data as { user: User }; 8 | return ( 9 |
10 |

Hi there, {rootData.user.name}

11 | /workshops 12 |
13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /yarn-pnp/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | 3 | /.cache 4 | /build 5 | /public/build 6 | /package-lock.json 7 | 8 | .yarn/* 9 | !.yarn/patches 10 | !.yarn/plugins 11 | !.yarn/releases 12 | !.yarn/sdks 13 | !.yarn/versions 14 | 15 | # Swap the comments on the following lines if you wish to use zero-installs 16 | # See https://yarnpkg.com/features/zero-installs and 17 | # https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored 18 | .pnp.* 19 | # !.yarn/cache 20 | -------------------------------------------------------------------------------- /on-demand-hydration/app/routes/without-js.tsx: -------------------------------------------------------------------------------- 1 | export default function Screen() { 2 | return ( 3 | <> 4 |

Reload to see how it didn't loaded JS

5 |
6 | Tip: Inspect the Network tab to see the lack of JS 7 |
8 | 11 | Go back 12 | 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /sanity/studio/schemas/plotSummary.js: -------------------------------------------------------------------------------- 1 | export default { 2 | name: "plotSummary", 3 | title: "Plot Summary", 4 | type: "object", 5 | fields: [ 6 | { 7 | title: "Summary", 8 | name: "summary", 9 | type: "text", 10 | }, 11 | { 12 | title: "Author", 13 | name: "author", 14 | type: "string", 15 | }, 16 | { 17 | title: "Link to author", 18 | name: "url", 19 | type: "url", 20 | }, 21 | ], 22 | }; 23 | -------------------------------------------------------------------------------- /xata/schema.template.json: -------------------------------------------------------------------------------- 1 | { 2 | "formatVersion": "", 3 | "tables": [ 4 | { 5 | "name": "remix_with_xata_example", 6 | "columns": [ 7 | { 8 | "name": "title", 9 | "type": "string" 10 | }, 11 | { 12 | "name": "description", 13 | "type": "string" 14 | }, 15 | { 16 | "name": "url", 17 | "type": "string" 18 | } 19 | ] 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /zerops/app/styles/main.css: -------------------------------------------------------------------------------- 1 | p { 2 | color: #585858; 3 | } 4 | 5 | a { 6 | color: #5282ee; 7 | font-weight: 600; 8 | } 9 | 10 | a:hover { 11 | color: #4579f1; 12 | } 13 | 14 | pre { 15 | background: #f7f7f7; 16 | padding: 1rem; 17 | } 18 | 19 | code { 20 | color: #585858; 21 | } 22 | 23 | button { 24 | border: none; 25 | border-radius: 0.25rem; 26 | color: #fff; 27 | background-color: #585858; 28 | padding: 0.25rem; 29 | cursor: pointer; 30 | } 31 | -------------------------------------------------------------------------------- /on-demand-hydration/app/routes/with-js.tsx: -------------------------------------------------------------------------------- 1 | export const handle = { hydrate: true }; 2 | 3 | export default function Screen() { 4 | return ( 5 | <> 6 |

Reload to see how it loaded JS

7 |
Tip: Inspect the Network tab to see it has JS
8 | 11 | Go back 12 | 13 | ); 14 | } 15 | -------------------------------------------------------------------------------- /framer-motion/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | import { motion } from "framer-motion"; 2 | export default function Index() { 3 | return ( 4 |
12 | 13 |

Welcome to remix!

14 |
15 |
16 | ); 17 | } 18 | -------------------------------------------------------------------------------- /pm-app/app/styles/ui/_max-container.css: -------------------------------------------------------------------------------- 1 | .ui--max-container { 2 | --gutter: var(--spaces-04); 3 | --width: 64rem; 4 | max-width: var(--width); 5 | width: calc(100% - var(--gutter) * 2); 6 | margin-left: auto; 7 | margin-right: auto; 8 | 9 | @media (--viewport-md) { 10 | --gutter: var(--spaces-05); 11 | } 12 | 13 | @media (--viewport-lg) { 14 | --gutter: var(--spaces-06); 15 | } 16 | 17 | @media (--viewport-xl) { 18 | --width: 72rem; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /remix-auth-auth0/app/constants/index.server.ts: -------------------------------------------------------------------------------- 1 | export const AUTH0_RETURN_TO_URL = process.env.AUTH0_RETURN_TO_URL!; 2 | export const AUTH0_CALLBACK_URL = process.env.AUTH0_CALLBACK_URL!; 3 | export const AUTH0_CLIENT_ID = process.env.AUTH0_CLIENT_ID!; 4 | export const AUTH0_CLIENT_SECRET = process.env.AUTH0_CLIENT_SECRET!; 5 | export const AUTH0_DOMAIN = process.env.AUTH0_DOMAIN!; 6 | export const AUTH0_LOGOUT_URL = process.env.AUTH0_LOGOUT_URL!; 7 | export const SECRETS = process.env.SECRETS!; 8 | -------------------------------------------------------------------------------- /vanilla-extract/app/global.css.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * This file allows us to set up our global styles. If we also 3 | * wanted to apply a CSS reset, this is where we'd define it. 4 | * 5 | * More detail: https://vanilla-extract.style/documentation/global-api/global-style 6 | */ 7 | import { globalStyle } from "@vanilla-extract/css"; 8 | 9 | globalStyle("body", { 10 | "@media": { 11 | "(prefers-color-scheme: dark)": { 12 | backgroundColor: "#111", 13 | }, 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /strapi/strapi/src/api/post/content-types/post/schema.json: -------------------------------------------------------------------------------- 1 | { 2 | "kind": "collectionType", 3 | "collectionName": "posts", 4 | "info": { 5 | "singularName": "post", 6 | "pluralName": "posts", 7 | "displayName": "post" 8 | }, 9 | "options": { 10 | "draftAndPublish": true 11 | }, 12 | "pluginOptions": {}, 13 | "attributes": { 14 | "title": { 15 | "type": "string" 16 | }, 17 | "article": { 18 | "type": "richtext" 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /theme-ui/app/styles/context.tsx: -------------------------------------------------------------------------------- 1 | import { createContext } from "react"; 2 | 3 | export type ServerStyleContextData = { 4 | key: string; 5 | ids: string[]; 6 | css: string; 7 | }; 8 | 9 | export const ServerStyleContext = createContext< 10 | ServerStyleContextData[] | null 11 | >(null); 12 | 13 | export type ClientStyleContextData = { 14 | reset: () => void; 15 | }; 16 | 17 | export const ClientStyleContext = createContext( 18 | null, 19 | ); 20 | -------------------------------------------------------------------------------- /_official-blog-tutorial/vitest.config.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | import react from "@vitejs/plugin-react"; 5 | import tsconfigPaths from "vite-tsconfig-paths"; 6 | import { defineConfig } from "vitest/config"; 7 | 8 | export default defineConfig({ 9 | plugins: [react(), tsconfigPaths()], 10 | test: { 11 | globals: true, 12 | environment: "happy-dom", 13 | setupFiles: ["./test/setup-test-env.ts"], 14 | }, 15 | }); 16 | -------------------------------------------------------------------------------- /rust/rust-functions/.gitignore: -------------------------------------------------------------------------------- 1 | # Generated by Cargo 2 | # will have compiled files and executables 3 | debug/ 4 | target/ 5 | 6 | # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries 7 | # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html 8 | Cargo.lock 9 | 10 | # These are backup files generated by rustfmt 11 | **/*.rs.bk 12 | 13 | # MSVC Windows builds of rustc generate these, which store debugging information 14 | *.pdb -------------------------------------------------------------------------------- /styled-components/app/routes/_boundary._index.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | import { Box } from "~/components/Box"; 4 | 5 | export default function Index() { 6 | return ( 7 | 8 |

Welcome to Remix With Styled Components

9 |
    10 |
  • 11 | Error 12 |
  • 13 |
  • 14 | 404 15 |
  • 16 |
17 |
18 | ); 19 | } 20 | -------------------------------------------------------------------------------- /twind/app/routes/anything.tsx: -------------------------------------------------------------------------------- 1 | import { Link } from "@remix-run/react"; 2 | 3 | const linkClass = 4 | "transition-all duration-300 opacity-75 hover:(opacity-100 text-blue-500)"; 5 | 6 | export default function Index() { 7 | return ( 8 |
9 |

This works

10 | 11 | Back to Home 12 | 13 |
14 | ); 15 | } 16 | -------------------------------------------------------------------------------- /yarn-pnp/app/routes/_index.tsx: -------------------------------------------------------------------------------- 1 | export default function Index() { 2 | return ( 3 |
4 |

Welcome to Remix

5 |

6 | This example is using{" "} 7 | 12 | Yarn PnP 13 | 14 | ! 15 |

16 |
17 | ); 18 | } 19 | -------------------------------------------------------------------------------- /_official-blog-tutorial/app/models/post.server.ts: -------------------------------------------------------------------------------- 1 | import type { Post } from "@prisma/client"; 2 | 3 | import { prisma } from "~/db.server"; 4 | 5 | export async function getPosts() { 6 | return prisma.post.findMany(); 7 | } 8 | 9 | export async function getPost(slug: string) { 10 | return prisma.post.findUnique({ where: { slug } }); 11 | } 12 | 13 | export async function createPost( 14 | post: Pick, 15 | ) { 16 | return prisma.post.create({ data: post }); 17 | } 18 | -------------------------------------------------------------------------------- /_official-blog-tutorial/remix.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('@remix-run/dev').AppConfig} */ 2 | module.exports = { 3 | cacheDirectory: "./node_modules/.cache/remix", 4 | future: { 5 | v2_dev: true, 6 | v2_errorBoundary: true, 7 | v2_headers: true, 8 | v2_meta: true, 9 | v2_normalizeFormMethod: true, 10 | v2_routeConvention: true, 11 | }, 12 | ignoredRouteFiles: ["**/.*", "**/*.test.{js,jsx,ts,tsx}"], 13 | postcss: true, 14 | serverModuleFormat: "cjs", 15 | tailwind: true, 16 | }; 17 | --------------------------------------------------------------------------------