Stack

Remix v2 + React v18 + Tailwind CSS v3

  • Alexandro Martínez
    Author
    by Alexandro Martínez
    2 years ago
  • Powered by the best tools out there.

    package.json

    Learn more about SaasRock technical details by looking at the dependencies.

    {
      "name": "saasrock",
      "version": "1.2.0",
      "private": true,
      "sideEffects": false,
      "type": "module",
      "prisma": {
        "seed": "tsx prisma/seed.ts"
      },
      "scripts": {
        "dev": "remix vite:dev",
        "build": "remix vite:build",
        "lint": "eslint --ext .tsx,.ts .",
        "typecheck": "tsc -b",
        "prettier": "prettier --write '**/*.{ts,tsx}'",
        "start": "remix-serve ./build/server/index.js",
        "postinstall": "prisma generate"
      },
      "dependencies": {
        "@epic-web/cachified": "^4.0.0",
        "@headlessui/react": "^1.7.17",
        "@headlessui/tailwindcss": "^0.2.0",
        "@monaco-editor/react": "^4.4.5",
        "@notionhq/client": "^2.2.1",
        "@novu/node": "^0.24.2",
        "@novu/notification-center": "^0.24.2",
        "@popperjs/core": "^2.11.8",
        "@prisma/client": "^5.14.0",
        "@radix-ui/react-accordion": "^1.1.2",
        "@radix-ui/react-alert-dialog": "^1.0.5",
        "@radix-ui/react-aspect-ratio": "^1.0.3",
        "@radix-ui/react-avatar": "^1.0.4",
        "@radix-ui/react-checkbox": "^1.0.4",
        "@radix-ui/react-collapsible": "^1.0.3",
        "@radix-ui/react-context-menu": "^2.1.5",
        "@radix-ui/react-dialog": "^1.0.5",
        "@radix-ui/react-dropdown-menu": "^2.0.6",
        "@radix-ui/react-hover-card": "^1.0.7",
        "@radix-ui/react-icons": "^1.3.0",
        "@radix-ui/react-label": "^2.0.2",
        "@radix-ui/react-menubar": "^1.0.4",
        "@radix-ui/react-navigation-menu": "^1.1.4",
        "@radix-ui/react-popover": "^1.0.7",
        "@radix-ui/react-progress": "^1.0.3",
        "@radix-ui/react-radio-group": "^1.1.3",
        "@radix-ui/react-scroll-area": "^1.0.5",
        "@radix-ui/react-select": "^2.0.0",
        "@radix-ui/react-separator": "^1.0.3",
        "@radix-ui/react-slider": "^1.1.2",
        "@radix-ui/react-slot": "^1.0.2",
        "@radix-ui/react-switch": "^1.0.3",
        "@radix-ui/react-tabs": "^1.0.4",
        "@radix-ui/react-toast": "^1.1.5",
        "@radix-ui/react-toggle": "^1.0.3",
        "@radix-ui/react-tooltip": "^1.0.7",
        "@remix-run/node": "^2.8.1",
        "@remix-run/react": "^2.8.1",
        "@remix-run/serve": "^2.8.1",
        "@remix-run/v1-route-convention": "^0.1.4",
        "@sindresorhus/slugify": "^2.2.1",
        "@stripe/stripe-js": "^1.35.0",
        "@supabase/supabase-js": "^2.26.0",
        "@tiptap/core": "^2.1.13",
        "@tiptap/extension-color": "^2.1.13",
        "@tiptap/extension-horizontal-rule": "^2.1.13",
        "@tiptap/extension-image": "^2.1.13",
        "@tiptap/extension-link": "^2.1.13",
        "@tiptap/extension-placeholder": "^2.0.3",
        "@tiptap/extension-text-style": "^2.1.13",
        "@tiptap/extension-underline": "^2.1.13",
        "@tiptap/pm": "^2.1.13",
        "@tiptap/react": "^2.1.13",
        "@tiptap/starter-kit": "^2.1.13",
        "@tiptap/suggestion": "^2.1.13",
        "@vercel/remix": "^2.8.1-patch.2",
        "adm-zip": "^0.5.9",
        "ajv": "^8.12.0",
        "bcryptjs": "^2.4.3",
        "browser-image-compression": "^1.0.17",
        "class-variance-authority": "^0.7.0",
        "clsx": "^1.2.1",
        "cmdk": "^0.2.1",
        "company-email-validator": "^1.0.7",
        "crypto-js": "^4.2.0",
        "dagre": "^0.8.5",
        "date-fns": "^3.3.1",
        "decimal.js": "^10.4.3",
        "embla-carousel-react": "^8.0.0",
        "eventsource-parser": "^1.0.0",
        "express": "^4.19.2",
        "handlebars": "^4.7.8",
        "highlight.js": "^11.9.0",
        "html-to-text": "^9.0.5",
        "i18next": "^23.1.0",
        "i18next-browser-languagedetector": "^7.1.0",
        "i18next-fs-backend": "^2.2.0",
        "i18next-http-backend": "^2.2.2",
        "is-ip": "^3.1.0",
        "isbot": "^3.7.0",
        "json2csv": "^5.0.7",
        "jsonwebtoken": "^9.0.0",
        "kbar": "^0.1.0-beta.45",
        "lru-cache": "^10.1.0",
        "lucide-react": "^0.244.0",
        "marked": "^4.0.14",
        "moment": "^2.29.1",
        "nanoid": "^3.3.6",
        "next-themes": "^0.2.1",
        "numeral": "^2.0.6",
        "openai": "^4.27.0",
        "platform": "^1.3.6",
        "postmark": "^3.11.0",
        "react": "^18.3.1",
        "react-beautiful-dnd": "^13.1.1",
        "react-confetti": "^6.1.0",
        "react-day-picker": "^8.10.0",
        "react-dom": "^18.3.1",
        "react-google-recaptcha": "^2.1.0",
        "react-google-recaptcha-ultimate": "^1.2.2",
        "react-hook-form": "^7.51.0",
        "react-hot-toast": "^2.4.1",
        "react-i18next": "^13.5.0",
        "react-json-tree": "^0.17.0",
        "react-sortablejs": "^6.1.4",
        "reactflow": "^11.10.1",
        "rehype-highlight": "^5.0.2",
        "remix-auth": "^3.6.0",
        "remix-auth-form": "^1.4.0",
        "remix-auth-google": "^1.3.0",
        "remix-i18next": "^5.4.0",
        "remix-typedjson": "^0.4.1",
        "sonner": "^1.4.2",
        "sortablejs": "^1.15.0",
        "spin-delay": "^1.1.0",
        "stripe": "^10.8.0",
        "swagger-ui-dist": "^4.19.0",
        "swr": "^2.2.0",
        "tailwind-merge": "^2.2.0",
        "tiny-invariant": "^1.3.1",
        "tippy.js": "^6.3.7",
        "use-debounce": "^9.0.3",
        "uuid": "^9.0.1",
        "zod": "^3.22.4"
      },
      "devDependencies": {
        "@remix-run/dev": "^2.8.1",
        "@remix-run/eslint-config": "^2.8.1",
        "@tailwindcss/aspect-ratio": "^0.4.2",
        "@tailwindcss/forms": "^0.5.3",
        "@tailwindcss/typography": "^0.5.9",
        "@types/adm-zip": "^0.5.5",
        "@types/bcryptjs": "^2.4.2",
        "@types/crypto-js": "^4.2.1",
        "@types/dagre": "^0.7.52",
        "@types/html-to-text": "^9.0.1",
        "@types/json2csv": "^5.0.3",
        "@types/jsonwebtoken": "^9.0.6",
        "@types/marked": "^4.0.3",
        "@types/numeral": "^2.0.2",
        "@types/platform": "^1.3.4",
        "@types/postmark": "^2.0.3",
        "@types/react": "^18.3.2",
        "@types/react-beautiful-dnd": "^13.1.4",
        "@types/react-command-palette": "^0.18.0",
        "@types/react-datepicker": "^4.3.4",
        "@types/react-dom": "^18.3.0",
        "@types/react-google-recaptcha": "^2.1.5",
        "@types/react-table": "^7.7.11",
        "@types/uuid": "^8.3.4",
        "autoprefixer": "^10.4.16",
        "cross-env": "^7.0.3",
        "eslint": "^8.54.0",
        "postcss": "^8.4.32",
        "prettier": "^2.8.8",
        "prettier-plugin-tailwindcss": "^0.1.13",
        "prisma": "^5.14.0",
        "remix-flat-routes": "^0.6.2",
        "tailwindcss": "^3.3.5",
        "tailwindcss-animate": "^1.0.7",
        "tsx": "^4.6.2",
        "typescript": "^5.3.2",
        "vite": "^5.0.10",
        "vite-tsconfig-paths": "^4.2.2"
      },
    }

    We respect your privacy.

    TLDR: We use cookies for language selection, theme, and analytics. Learn more.