{"repo":"refinedev/refine","free":true,"listed":false,"github":"https://github.com/refinedev/refine","clone":"git clone https://github.com/refinedev/refine.git","description":"A React Framework for building  internal tools, admin panels, dashboards & B2B apps with unmatched flexibility.","language":"TypeScript","stars":35526,"topics":["admin","admin-ui","ant-design","crud","developer-tools","frontend-framework","good-first-issue","graphql","hacktoberfest","headless","internal-tools","javascript","low-code","nestjs","nextjs","open-source-project","react","react-framework","react-hooks","typescript"],"license":"MIT","category":"saas_starter","readme_excerpt":"<div align=\"center\">\n<a href=\"https://refine.dev/core\">\n    <img alt=\"refine logo\" src=\"https://refine.ams3.cdn.digitaloceanspaces.com/readme/refine-readme-banner.png\">\n</a>\n\n<br/>\n<br/>\n\n<div align=\"center\">\n    <a href=\"https://refine.dev/core/\">Home Page</a> |\n    <a href=\"https://refine.dev/core/docs/\">Documentation</a> |\n    <a href=\"https://refine.dev/core/templates/\">Examples</a> |\n    <a href=\"https://discord.gg/refine\">Discord</a> |\n    <a href=\"https://refine.dev/blog/\">Blog</a> |\n    <a href=\"https://refine.dev/\">Refine</a>\n</div>\n</div>\n\n<br/>\n<br/>\n\n<div align=\"center\"><strong>The sweet spot between the low/no code and “starting from scratch” for CRUD-heavy applications.</strong><br>\n\nRefine Core is an open source, React meta-framework for enterprise. It provides a headless solution for everything from admin panels to\ndashboards and internal tools.\n<br />\n\n<strong>Refine CORE also powers <a href=\"https://refine.dev/\">Refine's purpose built AI agent.</a></strong>\n<br />\n\n</div>\n\n<div align=\"center\">\n\n[![Awesome](https://github.com/refinedev/awesome-refine/raw/main/images/badge.svg)](https://github.com/refinedev/awesome-refine)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/8101/badge)](https://www.bestpractices.dev/projects/8101)\n[![npm version](https://img.shields.io/npm/v/@refinedev/core.svg)](https://www.npmjs.com/package/@refinedev/core)\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.0-4baaaa.svg)](CODE_OF_CONDUCT.md)\n\n[![Discord](https://img.shields.io/discord/837692625737613362.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/refine)\n[![Twitter Follow](https://img.shields.io/twitter/follow/refine_dev?style=social)](https://twitter.com/refine_dev)\n\n</div>\n\n<br/>\n\n[![how-refine-works](https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/diagram-3.png)](https://refine.dev/core)\n\n## What is Refine CORE?\n\n**Refine CORE** is a React meta-framework for CRUD-heavy web applications. It addresses a wide range of enterprise use cases including internal tools, admin panels, dashboards and B2B apps.\n\nRefine CORE's hooks and components streamline the development process by offering industry-standard solutions for crucial aspects of a project, including **authentication**, **access control**, **routing**, **networking**, **state management**, and **i18n**.\n\nRefine CORE's headless architecture enables the building of highly customizable applications by decoupling business logic from UI and routing. This allows integration with:\n\n- Any custom designs or UI frameworks like [TailwindCSS](https://tailwindcss.com/), along with built-in support for [Ant Design](https://ant.design/), [Material UI](https://mui.com/material-ui/getting-started/overview/), [Mantine](https://mantine.dev/), and [Chakra UI](https://chakra-ui.com/).\n\n- Various platforms, including Next.js, Remix, React Native, Electron, etc., by a simple routing interface without the need for additional setup steps.\n\n## ⚡ Try Refine CORE\n\nStart a new project with Refine CORE in seconds using the following command:\n\n```sh\nnpm create refine-app@latest my-refine-app\n```\n\nOr you can create a new project on your browser:\n\n<a href=\"https://refine.dev/core/?playground=true\" target=\"_blank\">\n  <img height=\"48\" width=\"245\" src=\"https://refine.ams3.cdn.digitaloceanspaces.com/assets/try-it-in-your-browser.png\" />\n</a>\n\n<br>\n\nYou can also try Refine's AI agent for free to create projects:\n\n<a href=\"https://refine.dev/\" target=\"_blank\">\n  <img height=\"48\" width=\"245\" src=\"https://refine.ams3.cdn.digitaloceanspaces.com/assets/try-out-refine-ai-2.png\" />\n</a>\n\n## Quick Start\n\nHere's Refine CORE in action, the below code is an example of a simple CRUD application using Refine CORE + React Router + Material UI:\n\n```tsx\nimport React from \"react\";\nimport { Refine, useMany } from \"@refinedev/core\";\nimport { ThemedLayout } from \"@refinedev/mui\";\nimport dataProvider from \"@refinedev/simple-rest\";\nimport routerProvider from \"@refinedev/react-router\";\nimport { BrowserRouter, Outlet, Route, Routes } from \"react-router\";\n\nimport CssBaseline from \"@mui/material/CssBaseline\";\n\nexport default function App() {\n  return (\n    <BrowserRouter>\n      <CssBaseline />\n      <Refine\n        dataProvider={dataProvider(\"https://api.fake-rest.refine.dev\")}\n        routerProvider={routerProvider}\n        resources={[\n          {\n            name: \"products\",\n            list: \"/products\",\n          },\n        ]}\n      >\n        <Routes>\n          <Route\n            element={\n              <ThemedLayout>\n                <Outlet />\n              </ThemedLayout>\n            }\n          >\n            <Route path=\"/products\">\n              <Route index element={<ProductList />} />\n            </Route>\n          </Route>\n        </Routes>\n      </Refine>\n    </BrowserRouter>\n  );\n}\n\n// src/pages/products/list.tsx\n\nimport { List, useDataGrid, DateField } from \"@refinedev/mui\";\nimport { DataGrid, GridColDef } from \"@mui/x-data-grid\";\n\nexport const ProductList = () => {\n  const { dataGridProps } = useDataGrid();\n\n  const { data: categories, isLoading } = useMany({\n    resource: \"categories\",\n    ids:\n      dataGridProps?.rows?.map((item) => item?.category?.id).filter(Boolean) ??\n      [],\n    queryOptions: {\n      enabled: !!dataGridProps?.rows,\n    },\n  });\n\n  const columns = React.useMemo<GridColDef[]>(\n    () => [\n      { field: \"id\", headerName: \"ID\", type: \"number\" },\n      { field: \"name\", flex: 1, headerName: \"Name\" },\n      {\n        field: \"category\",\n        flex: 1,\n        headerName: \"Category\",\n        display: \"flex\",\n        renderCell: ({ value }) =>\n          isLoading\n            ? \"Loading...\"\n            : categories?.data?.find((item) => item.id === value?.id)?.title,\n      },\n      {\n        field: \"createdAt\",\n        flex: 1,\n        headerName: \"Created at\",\n        display: \"flex\",\n        renderCell: ({ value }) => <DateField value={value} />,\n      },\n    ],\n    [categories?.data, isLoading],\n  );\n\n  return (\n    <List>\n      <DataGrid {...dataGridProps} columns={columns} />\n    </List>\n  );\n};\n```\n\nThe result will look like this:\n\n[![Refine CORE + Material UI Example](https://refine.ams3.cdn.digitaloceanspaces.com/assets/refine-mui-simple-example-screenshot-rounded.webp)](https://refine.new/preview/c85442a8-8df1-4101-a09a-47d3ca641798)\n\n## Use cases\n\n**Refine CORE** shines on _data-intensive⚡_ enterprise B2B applications like **admin panels**, **dashboards** and **internal tools**. Thanks to the built-in **SSR support**, it can also power _customer-facing_ applications like **storefronts**.\n\nYou can take a look at some live examples that can be built using **Refine CORE** from scratch:\n\n- [Fully-functional CRM Application](https://refine.dev/templates/crm-application/)\n- [Fully-functional Admin Panel](https://refine.dev/templates/react-admin-panel/)\n- [Win95 Style Admin panel 🪟](https://refine.dev/templates/win-95-style-admin-panel/)\n- [PDF Invoice Generator](https://refine.dev/templates/react-pdf-invoice-generator/)\n- [Medium Clone - Real World Example](https://refine.dev/templates/react-crud-app/)\n- [Multitenancy Example](https://refine.dev/templates/multitenancy-strapi/)\n- [Storefront](https://refine.dev/templates/next-js-ecommerce-store/)\n- [Refer to templates page for more examples](https://refine.dev/templates/)\n- [More **Refine CORE** powered different usage scenarios can be found here](https://refine.dev/core/templates)\n\n## Key Features\n\n- Refine CORE Devtools - dive deeper into your app and provide useful insights\n- Connectors for **15+ backend services** including [REST API](https://github.com/refinedev/refine/tree/main/packages/simple-rest), [GraphQL](https://github.com/refinedev/refine/tree/main/packages/graphql), [NestJs CRUD](https://github.com/refinedev/refine/tree/main/packages/nestjsx-crud), [Airtable](https://github.com/refinedev/refine/tree/main/packages/airtable), [Strapi](https://github.com/refinedev/refine/tree/main/packages/strapi), [Strapi v4](https://github.com/refinedev/refine/tree/main/packages/strapi-v4), [Supabase](https://github.com/refinedev/refine/tree/main/packages/supabase), [Hasura](https://github.com/refinedev/refine/tree/main/packages/hasura), [Appwrite](https://github.com/refinedev/refine/tree/main/packages/appwrite), [Nestjs-Query](https://github.com/refinedev/refine/tree/main/packages/nestjs-query), [Firebase](https://firebase.google.com/), [Sanity](https://www.sanity.io/), and [Directus](https://directus.io/).\n- SSR support with Next.js & Remix and Advanced routing with any router library of your choice\n- Auto-generation of CRUD UIs based on your API data structure\n- Perfect state management & mutations with React Query\n- Providers for seamless authentication and access control flows\n- Out-of-the-box support for live / real-time applications\n- Easy audit logs & document versioning\n\n## Learning Refine CORE\n\n- Navigate to the [Tutorial](https://refine.dev/core/tutorial/essentials/intro/) on building comprehensive CRUD application guides you through each step of the process.\n- Visit the [Guides & Concepts](https://refine.dev/core/docs/guides-concepts/general-concepts/) to get informed about the fundamental concepts.\n- Read more on [Advanced Tutorials](https://refine.dev/core/docs/advanced-tutorials/) for different usage scenarios.\n\n## Contribution\n\n[Refer to the contribution docs for more information.](https://refine.dev/core/docs/guides-concepts/contributing/#ways-to-contribute)\n\nIf you have any doubts related to the project or want to discuss something, then join our [Discord server](https://discord.gg/refine).\n\n## Contributors ♥️ Thanks\n\nWe extend our gratitude to all our numerous contributors who create plugins, assist with issues and pull requests, and respond to questions on Discord and GitHub Discussions.\n\nRefine CORE is a community-driven project, and your contributions continually improve it.\n\n<br/>\n\n<a href=\"https://githu","default_branch":"main","files":11521,"tree":[".biome/todos",".changeset/README.md",".changeset/config.json",".codesandbox/ci.json",".cursorignore",".dockerignore",".editorconfig",".git-blame-ignore-revs",".github/CODEOWNERS",".github/FUNDING.yml",".github/ISSUE_TEMPLATE/bug_report.yml",".github/ISSUE_TEMPLATE/config.yml",".github/ISSUE_TEMPLATE/documentation.yml",".github/ISSUE_TEMPLATE/feature_request.yml",".github/pull_request_template.md",".github/stale.yml",".github/workflows/build-examples.yml",".github/workflows/calibreapp-image-actions-dispatch.yml",".github/workflows/calibreapp-image-actions.yml",".github/workflows/documentation.yml",".github/workflows/example-previews-dispatch.yml",".github/workflows/pull-request.yml",".github/workflows/release.yml",".github/workflows/scripts/build-example-chunks.js",".github/workflows/scripts/check-existing-doc-links.js",".github/workflows/scripts/deploy-previews.js",".github/workflows/scripts/e2e-examples.js",".gitignore",".husky/commit-msg",".husky/pre-commit",".npmrc",".nxignore",".prettierignore",".prettierrc",".syncpackrc",".vscode/extensions.json",".vscode/settings.json","CHANGELOG.md","CODE_OF_CONDUCT.md","CONTRIBUTING.md","LICENSE","README.md","SECURITY.md","biome.json","commitlint.config.js","cypress/cypress.config.ts","cypress/e2e/auth-antd/all.cy.ts","cypress/e2e/auth-auth0/all.cy.ts","cypress/e2e/auth-chakra-ui/all.cy.ts","cypress/e2e/auth-google-login/all.cy.ts","cypress/e2e/auth-headless/all.cy.ts","cypress/e2e/auth-keycloak/all.cy.ts","cypress/e2e/auth-mantine/all.cy.ts","cypress/e2e/auth-material-ui/all.cy.ts","cypress/e2e/base-antd/all.cy.ts","cypress/e2e/base-chakra-ui/all.cy.ts","cypress/e2e/base-mantine/all.cy.ts","cypress/e2e/base-material-ui/all.cy.ts","cypress/e2e/data-provider-strapi-v4/all.cy.ts","cypress/e2e/data-provider-supabase/all.cy.ts","cypress/e2e/form-antd-custom-validation/all.cy.ts","cypress/e2e/form-antd-mutation-mode/all.cy.ts","cypress/e2e/form-antd-use-drawer-form/all.cy.ts","cypress/e2e/form-antd-use-form/all.cy.ts","cypress/e2e/form-antd-use-modal-form/all.cy.ts","cypress/e2e/form-antd-use-steps-form/all.cy.ts","cypress/e2e/form-chakra-ui-mutation-mode/all.cy.ts","cypress/e2e/form-chakra-ui-use-drawer-form/all.cy.ts","cypress/e2e/form-chakra-ui-use-form/all.cy.ts","cypress/e2e/form-chakra-use-modal-form/all.cy.ts","cypress/e2e/form-core-use-form/all.cy.ts","cypress/e2e/form-mantine-mutation-mode/all.cy.ts","cypress/e2e/form-mantine-use-drawer-form/all.cy.ts","cypress/e2e/form-mantine-use-form/all.cy.ts","cypress/e2e/form-mantine-use-modal-form/all.cy.ts","cypress/e2e/form-mantine-use-steps-form/all.cy.ts","cypress/e2e/form-material-ui-mutation-mode/all.cy.ts","cypress/e2e/form-material-ui-use-drawer-form/all.cy.ts","cypress/e2e/form-material-ui-use-form/all.cy.ts","cypress/e2e/form-material-ui-use-modal-form/all.cy.ts","cypress/e2e/form-material-ui-use-steps-form/all.cy.ts","cypress/e2e/form-react-hook-form-use-form/all.cy.ts","cypress/e2e/form-react-hook-form-use-modal-form/all.cy.ts","cypress/e2e/form-react-hook-form-use-steps-form/all.cy.ts","cypress/e2e/form-save-and-continue/all.cy.ts","cypress/e2e/i18n-nextjs/all.cy.ts","cypress/e2e/i18n-react/all.cy.ts","cypress/e2e/inferencer-antd/all.cy.ts","cypress/e2e/inferencer-chakra-ui/all.cy.ts","cypress/e2e/inferencer-graphql-hasura/all.cy.ts","cypress/e2e/inferencer-headless/all.cy.ts","cypress/e2e/inferencer-mantine/all.cy.ts","cypress/e2e/inferencer-material-ui/all.cy.ts","cypress/e2e/server-side-form-validation-antd/all.cy.ts","cypress/e2e/server-side-form-validation-chakra-ui/all.cy.ts","cypress/e2e/server-side-form-validation-mantine/all.cy.ts","cypress/e2e/server-side-form-validation-material-ui/all.cy.ts","cypress/e2e/table-antd-advanced/categories.cy.ts","cypress/e2e/table-antd-advanced/posts.cy.ts","cypress/e2e/table-antd-table-filter/all.cy.ts","cypress/e2e/table-antd-use-delete-many/all.cy.ts","cypress/e2e/table-antd-use-editable-table/all.cy.ts","cypress/e2e/table-antd-use-table/all.cy.ts","cypress/e2e/table-antd-use-update-many/all.cy.ts","cypress/e2e/table-chakra-ui-advanced/all.cy.ts","cypress/e2e/table-chakra-ui-basic/all.cy.ts","cypress/e2e/table-handson/all.cy.ts","cypress/e2e/table-mantine-advanced/all.cy.ts","cypress/e2e/table-mantine-basic/all.cy.ts","cypress/e2e/table-material-ui-advanced/data-grid.cy.ts","cypress/e2e/table-material-ui-advanced/react-table.cy.ts","cypress/e2e/table-material-ui-cursor-pagination/all.cy.ts","cypress/e2e/table-material-ui-data-grid-pro/all.cy.ts","cypress/e2e/table-material-ui-table-filter/all.cy.ts","cypress/e2e/table-material-ui-use-data-grid/all.cy.ts","cypress/e2e/table-material-ui-use-delete-many/all.cy.ts","cypress/e2e/table-material-ui-use-update-many/all.cy.ts","cypress/e2e/table-react-table-advanced/all.cy.ts","cypress/e2e/table-react-table-basic/all.cy.ts","cypress/e2e/with-nextjs-next-auth/all.cy.ts","cypress/e2e/with-nextjs/all.cy.ts","cypress/e2e/with-remix-antd/all.cy.ts","cypress/e2e/with-remix-headless/all.cy.ts","cypress/e2e/with-remix-material-ui/all.cy.ts","cypress/e2e/with-remix-vite-headless/all.cy.ts","cypress/fixtures/auth0-credentials.json","cypress/fixtures/blog-posts.json","cypress/fixtures/categories.json","cypress/fixtures/demo-auth-credentials.json","cypress/fixtures/hasura-blog-posts.json","cypress/fixtures/hasura-blog-posts.ts","cypress/fixtures/hasura-categories.json","cypress/fixtures/hasura-categories.ts","cypress/fixtures/keycloak-credentials.json","cypress/fixtures/mock-post.json","cypress/fixtures/posts.json","cypress/fixtures/strapi-v4-credentials.json","cypress/fixtures/supabase-credentials.json","cypress/support/commands/antd/index.ts","cypress/support/commands/chakra-ui/index.ts","cypress/support/commands/document-title-handler.ts","cypress/support/commands/intercepts/api-fake-rest.ts","cypress/support/commands/intercepts/hasura.ts","cypress/support/commands/intercepts/index.ts","cypress/support/commands/intercepts/strapi-v4.ts","cypress/support/commands/intercepts/supabase.ts","cypress/support/commands/mantine/index.ts","cypress/support/commands/material-ui/index.ts","cypress/support/commands/refine/index.ts","cypress/support/commands/resource.ts","cypress/support/e2e.ts","cypress/support/index.d.ts","cypress/support/types/index.ts","cypress/tsconfig.json","cypress/utils/getIdFromURL/index.ts","cypress/utils/index.ts","documentation/.gitignore","documentation/.npmrc","documentation/README.md","documentation/babel.config.js","documentation/blog/2021-10-4-admin-panel-with-nestjs.md","documentation/blog/2021-11-12-issue-tracker-refine.md","documentation/blog/2021-11-29-refine-vs-admin-bro.md","documentation/blog/2021-12-22-base64-upload.md","documentation/blog/2021-12-27-multipart-upload.md","documentation/blog/2022-01-18-csv-import.md","documentation/blog/2022-02-21-build-internal-tools-with-refine.md","documentation/blog/2022-02-21-react-antd-admin.md","documentation/blog/2022-02-21-top-react-frameworks.md","documentation/blog/2022-02-22-refine-invoice-generator.md","documentation/blog/2022-03-01-refine-invoice-generator-p2.md","documentation/blog/2022-03-16-internal-tool-frameworks.md","documentation/blog/2022-03-22-refine-with-react95.md","documentation/blog/2022-03-29-react-hook-form-upload.md","documentation/blog/2022-04-29-top-react-component-libraries-and-frameworks-every-developer-should-know.md","documentation/blog/2022-05-02-high-quality-free-resources.md","documentation/blog/2022-05-05-open-source-headless-cms.md","documentation/blog/2022-05-23-build-access-control-permify.md","documentation/blog/2022-06-10-weve-raised-dollar1m-seed-funding.md","documentation/blog/2022-07-20-refine-writer-program.md","documentation/blog/2022-07-21-admin-panel-with-materialui-and-strapi.md","documentation/blog/2022-08-04-mocking-api-calls.md","documentation/blog/2022-08-20-neumorphic-css.md","documentation/blog/2022-08-23-mui-usedatagrid.md","documentation/blog/2022-08-24-mui-icons.md","documentation/blog/2022-09-01-framer-text-animations.md","documentation/blog/2022-09-02-sveltekit-crud-app.md","documentation/blog/2022-09-06-nodejs-developer.md","documentation/blog/2022-09-09-react-18.md","documentation/blog/2022-09-22-refine-supabase-auth.md","documentation/blog/2022-09-23-refine-article-guideline.md","documentation/blog/2022-09-27-react-hook-form-validation.md","documentation/blog/2022-09-28-docker-build-args.md","documentation/blog/2022-10-04-hacktoberfest.md","documentation/blog/2022-10-07-responsive-navbar.md","documentation/blog/2022-10-31-next-getInitial.md","documentation/blog/2022-11-29-mui-tooltip.md","documentation/blog/2022-12-08-svelte-vs-react.md","documentation/blog/2022-12-23-dynamic-hook-form.md","documentation/blog/2022-12-28-docker-copy.md","documentation/blog/2023-01-06-hackaton-january.md","documentation/blog/2023-01-10-docker-entrypoint.md","documentation/blog/2023-01-17-airtable-crud-app.md","documentation/blog/2023-01-23-redwood-vs-refine.md","documentation/blog/2023-02-08-compare-cms.md","documentation/blog/2023-02-14-refine-pixels-1.md","documentation/blog/2023-02-23-refine-strapi-mantine.md","documentation/blog/2023-02-28-hackathon-january-winners.md","documentation/blog/2023-03-03-ra-chakra-tutorial.md","documentation/blog/2023-03-13-refine-v4-announcement.md","documentation/blog/2023-03-15-refine-vs-blitzjs.md","documentation/blog/2023-04-06-finefood-admin-dashboard.md","documentation/blog/2023-04-10-refine-invoicer-1.md","documentation/blog/2023-04-11-refine-invoicer-2.md","documentation/blog/2023-04-12-refine-invoicer-3.md","documentation/blog/2023-04-13-refine-invoicer-4.md","documentation/blog/2023-04-14-refine-invoicer-5.md","documentation/blog/2023-05-10-what-is-refine-new.md","documentation/blog/2023-06-06-docker-list-containers.md","documentation/blog/2023-06-14-refine-hackathon-2.md","documentation/blog/2023-06-24-docker-run-command.md","documentation/blog/2023-07-02-refine-tremor-dashboard.md","documentation/blog/2023-07-11-docker-volume.md","documentation/blog/2023-07-26-refine-primereact-dashboard.md","documentation/blog/2023-07-31-docker-compose.md","documentation/blog/2023-08-04-refine-hackathon-2-winners.md","documentation/blog/2023-08-12-react-admin-vs-refine.md","documentation/blog/2023-08-18-docker-exec.md","documentation/blog/2023-09-06-daisy-ui-panel.md","documentation/blog/2023-09-20-next-ui-panel.md","documentation/blog/2023-10-02-refine-crm-overview.md","documentation/blog/2023-10-05-docker-swarm.md","documentation/blog/2023-10-18-docker-networking.md","documentation/blog/2023-10-19-kubecti-exec.md","documentation/blog/2023-10-22-kubecti-restart-pod.md","documentation/blog/2023-10-27-kubecti-config.md","documentation/blog/2023-11-04-kubecti-image-pull.md","documentation/blog/2023-11-05-kubectl-port-forwarding.md","documentation/blog/2023-11-13-kubeclt-describe.md","documentation/blog/2023-11-20-kubeclt-delete-pod.md","documentation/blog/2023-11-22-crash-loop-back.md","documentation/blog/2023-11-29-exit-code-137.md","documentation/blog/2023-12-07-swiper-js.md","documentation/blog/2023-12-12-k8s-cronjobs.md","documentation/blog/2023-12-14-k8s-persistent-volumes.md","documentation/blog/2023-12-15-kubectl-cheat-sheet.md","documentation/blog/2023-12-20-web-development.md","documentation/blog/2023-12-25-kubectl-scale.md","documentation/blog/2023-12-26-build-an-app.md","documentation/blog/2023-12-28-kubectl-logs.md","documentation/blog/2024-01-03-k8s-image-pull.md","documentation/blog/2024-01-04-k8s-statefulset.md","documentation/blog/2024-01-05-kubectl-version.md","documentation/blog/2024-01-09-permify-access-control.md","documentation/blog/2024-01-11-react-ecosystem-2024.md","documentation/blog/2024-01-12-k8s-operators.md","documentation/blog/2024-01-22-k8s-postgres.md","documentation/blog/2024-01-26-docker-vs-kubernetes.md","documentation/blog/2024-01-26-git-stash.md","documentation/blog/2024-01-31-exit-code-1.md","documentation/blog/2024-02-05-docker-alternatives.md","documentation/blog/2024-02-12-docker-cheat-sheet.md","documentation/blog/2024-02-13-css-vertical-align.md","documentation/blog/2024-02-14-docker-swarm.md","documentation/blog/2024-02-20-css-scroll-bar.md","documentation/blog/2024-02-22-bash-script.md","documentation/blog/2024-02-26-version-control.md","documentation/blog/2024-02-28-css-box-shadow.md","documentation/blog/2024-02-29-ts-map.md","documentation/blog/2024-03-05-css-wrap-text.md","documentation/blog/2024-03-07-internal-tools-development.md","documentation/blog/2024-03-11-jwt-authentication.md","documentation/blog/2024-03-18-low-code-platforms.md","documentation/blog/2024-03-19-ts-shadcn.md","documentation/blog/2024-03-22-useeffect-cleanup.md","documentation/blog/2024-03-27-change-node-version.md","documentation/blog/2024-04-01-ts-keyof.md","documentation/blog/2024-04-03-django-rest.md","documentation/blog/2024-04-19-low-code-vendor.md","documentation/blog/2024-04-29-nest-js.md","documentation/blog/2024-05-06-investment-announce.md","documentation/blog/2024-05-07-graphql-with-django.md","documentation/blog/2024-05-10-headless-cms.md","documentation/blog/2024-05-14-react-use-id.md","documentation/blog/2024-05-21-zod.md","documentation/blog/2024-05-22-mui-grid.md","documentation/blog/2024-05-23-usestate-mistakes.md","documentation/blog/2024-05-24-google-lighthouse.md","documentation/blog/2024-05-27-js-currying-functions.md","documentation/blog/2024-05-29-next-link.md","documentation/blog/2024-06-04-playwright.md","documentation/blog/2024-06-05-using-next-image.md","documentation/blog/2024-06-10-next-typescript.md","documentation/blog/2024-06-12-forward-ref.md","documentation/blog/2024-06-13-flexbox-vs-grid.md","documentation/blog/2024-06-14-router-navigate-component.md","documentation/blog/2024-06-20-framer-motion.md","documentation/blog/2024-06-21-auth-with-nextauth.md","documentation/blog/2024-06-21-temporal-api.md","documentation/blog/2024-06-24-react-content-filtering.md","documentation/blog/2024-06-24-router-use-navigate.md","documentation/blog/2024-06-25-next-refine-pwa.md","documentation/blog/2024-06-26-react-fragments.md","documentation/blog/2024-07-02-pnpm-post.md","documentation/blog/2024-07-02-react-dangerouslyInnerhtml.md","documentation/blog/2024-07-03-mui-autocomplete.md","documentation/blog/2024-07-03-next-api-routes.md","documentation/blog/2024-07-05-nvm.md","documentation/blog/2024-07-05-turborepo.md","documentation/blog/2024-07-10-react-props.md","documentation/blog/2024-07-10-react-strict-mode.md","documentation/blog/2024-07-12-react-lazy.md","documentation/blog/2024-07-16-top-hosting.md","documentation/blog/2024-07-17-conditional-rendering.md","documentation/blog/2024-07-17-css-grid.md","documentation/blog/2024-07-18-json-error.md","documentation/blog/2024-07-19-use-swr.md","documentation/blog/2024-07-23-compare-form-libraries.md","documentation/blog/2024-07-25-refine-new-part-1.md","documentation/blog/2024-07-29-git-diff.md","documentation/blog/2024-07-30-next-redirects.md","documentation/blog/2024-07-30-vite-js.md","documentation/blog/2024-07-31-zustand.md","documentation/blog/2024-08-04-react-tooltip.md","documentation/blog/2024-08-05-react-unit-testing.md","documentation/blog/2024-08-07-next-js-server-actions.md","documentation/blog/2024-08-09-react-toastify.md","documentation/blog/2024-08-09-react-uselayouteffect.md","documentation/blog/2024-08-12-bun-vs-node.md","documentation/blog/2024-08-15-react-web-socket.md","documentation/blog/2024-08-16-react-markdown.md","documentation/blog/2024-08-19-heroicons.md","documentation/blog/2024-08-19-tailwind-flex.md","documentation/blog/2024-08-20-react-hot-toast.md","documentation/blog/2024-08-21-react-createportal.md","documentation/blog/2024-09-04-mojo.md","documentation/blog/2024-09-05-js-splice.md","documentation/blog/2024-09-05-react-patterns.md","documentation/blog/2024-09-06-htmx.md","documentation/blog/2024-09-06-react-table.md","documentation/blog/2024-09-09-mantine-ui.md","documentation/blog/2024-09-09-react-error-boundaries.md","documentation/blog/2024-09-10-js-vs-ts.md","documentation/blog/2024-09-11-pnpm-guide.md","documentation/blog/2024-09-11-react-virtual-dom.md","documentation/blog/2024-09-12-graphql-vs-rest.md","documentation/blog/2024-09-12-terraform-aws.md","documentation/blog/2024-09-16-frameworks-2024.md","documentation/blog/2024-09-16-stylex-post.md","documentation/blog/2024-09-17-chakra-ui.md","documentation/blog/2024-09-18-admin-panel-frameworks.md","documentation/blog/2024-09-18-uri-vs-url.md","documentation/blog/2024-09-19-react-memo.md","documentation/blog/2024-09-19-react-use-memo.md","documentation/blog/2024-09-24-grpc-vs-rest.md","documentation/blog/2024-09-24-tdd-vs-bdd.md","documentation/blog/2024-09-26-react-use-callback.md","documentation/blog/2024-10-07-react-server-components.md","documentation/blog/2024-10-08-js-ternary.md","documentation/blog/2024-10-16-react-useref.md","documentation/blog/2024-10-17-nextjs-vs-react.md","documentation/blog/2024-10-21-react-suspense.md","documentation/blog/2024-10-22-astro-js.md","documentation/blog/2024-10-23-css-rounded-corners.md","documentation/blog/2024-10-24-async-vs-sync.md","documentation/blog/2024-10-30-js-try-catch.md","documentation/blog/2024-10-30-react-context.md","documentation/blog/2024-10-31-drizzle.md","documentation/blog/2024-11-04-js-slice.md","documentation/blog/2024-11-04-js-some.md","documentation/blog/2024-11-05-recharts.md","documentation/blog/2024-11-05-tailwind-animations.md","documentation/blog/2024-11-06-radix-ui.md","documentation/blog/2024-11-06-react-hook-form.md","documentation/blog/2024-11-07-node-uuid.md","documentation/blog/2024-11-08-nodemon.md","documentation/blog/2024-11-08-react-usereducer.md","documentation/blog/2024-11-11-online-ide.md","documentation/blog/2024-11-11-ts-dictionary.md","documentation/blog/2024-11-12-esbuild.md","documentation/blog/2024-11-12-react-date-picker.md","documentation/blog/2024-11-21-hr-app .md","documentation/blog/2024-11-26-zsh-and-bash.md","documentation/blog/2024-11-27-git-delete.md","documentation/blog/2024-11-27-git-switch.md","documentation/blog/2024-11-28-em-vs-rem.md","documentation/blog/2024-11-28-react-query-intro.md","documentation/blog/2024-12-10-mui-button.md","documentation/blog/2024-12-10-next-env.md","documentation/blog/2024-12-12-router-use-params.md","documentation/blog/2024-12-17-typescript-omit.md","documentation/blog/2024-12-17-typescript-pick.md","documentation/blog/2024-12-18-tailwind-grid.md","documentation/blog/2024-12-18-typescript-partial.md","documentation/blog/2024-12-20-antd-dynamic-form.md","documentation/blog/2024-12-20-mui-select.md","documentation/blog/2024-12-24-react-dnd.md","documentation/blog/2024-12-25-mui-checkbox.md","documentation/blog/2024-12-26-mui-card.md","documentation/blog/2024-12-30-material-ui-modal.md"],"storefront":"/r/refinedev","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/refinedev/refine/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}