├── .dockerignore ├── .env.example ├── .eslintignore ├── .eslintrc ├── .github ├── FUNDING.yml └── workflows │ └── for-this-stack-repo-only.yml ├── .gitignore ├── .prettierignore ├── .prettierrc.cjs ├── .vscode └── settings.json ├── Dockerfile ├── LICENCE ├── README.md ├── app ├── components │ ├── button.tsx │ ├── index.ts │ └── time.tsx ├── database │ ├── db.server.ts │ ├── index.ts │ ├── migrations │ │ ├── 20230131103038_init │ │ │ └── migration.sql │ │ ├── 20230202161944_enable_rls │ │ │ └── migration.sql │ │ └── migration_lock.toml │ └── schema.prisma ├── entry.client.tsx ├── entry.server.tsx ├── hooks │ ├── index.ts │ └── use-interval.ts ├── integrations │ ├── stripe │ │ ├── index.ts │ │ └── stripe.server.ts │ └── supabase │ │ ├── client.ts │ │ ├── index.ts │ │ └── types.ts ├── modules │ ├── auth │ │ ├── index.ts │ │ ├── mappers.ts │ │ ├── service.server.ts │ │ ├── session.server.ts │ │ └── types.ts │ ├── billing-portal │ │ ├── index.ts │ │ └── service.server.ts │ ├── checkout │ │ ├── index.ts │ │ └── service.server.ts │ ├── note │ │ ├── index.ts │ │ ├── service.server.ts │ │ └── types.ts │ ├── price │ │ ├── components │ │ │ ├── index.ts │ │ │ └── pricing-table.tsx │ │ ├── index.ts │ │ ├── service.server.ts │ │ └── types.ts │ ├── subscription │ │ ├── index.ts │ │ ├── service.server.ts │ │ └── types.ts │ ├── tier │ │ ├── index.ts │ │ ├── service.server.ts │ │ └── types.ts │ └── user │ │ ├── index.ts │ │ ├── service.server.ts │ │ └── types.ts ├── root.tsx ├── routes │ ├── _index.tsx │ ├── api.customer-portal.ts │ ├── api.subscribe.ts │ ├── api.webhook.ts │ ├── app.tsx │ ├── checkout.tsx │ ├── healthcheck.tsx │ ├── join.tsx │ ├── login.tsx │ ├── logout.tsx │ └── subscription.tsx ├── styles │ └── tailwind.css └── utils │ ├── cookies.ts │ ├── date.ts │ ├── env.ts │ ├── error.ts │ ├── form.ts │ ├── http-status.ts │ ├── http.server.ts │ ├── index.ts │ ├── is-browser.ts │ ├── locale-provider.tsx │ ├── logger.ts │ ├── tw-classes.ts │ ├── types.ts │ └── zod.ts ├── fly.toml ├── package.json ├── postcss.config.mjs ├── public └── favicon.ico ├── remix.config.js ├── remix.env.d.ts ├── remix.init ├── gitignore ├── index.js └── package.json ├── scripts ├── _seed.ts ├── config │ └── index.ts └── db │ └── delete_db_enums.sql ├── start.sh ├── tailwind.config.ts └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.dockerignore -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.env.example -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.eslintignore -------------------------------------------------------------------------------- /.eslintrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.eslintrc -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/workflows/for-this-stack-repo-only.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.github/workflows/for-this-stack-repo-only.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc.cjs: -------------------------------------------------------------------------------- 1 | /** @type {import("prettier").Options} */ 2 | module.exports = { 3 | tabWidth: 4, 4 | useTabs: true, 5 | }; 6 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/Dockerfile -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/LICENCE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/README.md -------------------------------------------------------------------------------- /app/components/button.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/components/button.tsx -------------------------------------------------------------------------------- /app/components/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/components/index.ts -------------------------------------------------------------------------------- /app/components/time.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/components/time.tsx -------------------------------------------------------------------------------- /app/database/db.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/database/db.server.ts -------------------------------------------------------------------------------- /app/database/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./db.server"; 2 | -------------------------------------------------------------------------------- /app/database/migrations/20230131103038_init/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/database/migrations/20230131103038_init/migration.sql -------------------------------------------------------------------------------- /app/database/migrations/20230202161944_enable_rls/migration.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/database/migrations/20230202161944_enable_rls/migration.sql -------------------------------------------------------------------------------- /app/database/migrations/migration_lock.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/database/migrations/migration_lock.toml -------------------------------------------------------------------------------- /app/database/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/database/schema.prisma -------------------------------------------------------------------------------- /app/entry.client.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/entry.client.tsx -------------------------------------------------------------------------------- /app/entry.server.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/entry.server.tsx -------------------------------------------------------------------------------- /app/hooks/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./use-interval"; 2 | -------------------------------------------------------------------------------- /app/hooks/use-interval.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/hooks/use-interval.ts -------------------------------------------------------------------------------- /app/integrations/stripe/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./stripe.server"; 2 | -------------------------------------------------------------------------------- /app/integrations/stripe/stripe.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/integrations/stripe/stripe.server.ts -------------------------------------------------------------------------------- /app/integrations/supabase/client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/integrations/supabase/client.ts -------------------------------------------------------------------------------- /app/integrations/supabase/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/integrations/supabase/index.ts -------------------------------------------------------------------------------- /app/integrations/supabase/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/integrations/supabase/types.ts -------------------------------------------------------------------------------- /app/modules/auth/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/auth/index.ts -------------------------------------------------------------------------------- /app/modules/auth/mappers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/auth/mappers.ts -------------------------------------------------------------------------------- /app/modules/auth/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/auth/service.server.ts -------------------------------------------------------------------------------- /app/modules/auth/session.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/auth/session.server.ts -------------------------------------------------------------------------------- /app/modules/auth/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/auth/types.ts -------------------------------------------------------------------------------- /app/modules/billing-portal/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/billing-portal/index.ts -------------------------------------------------------------------------------- /app/modules/billing-portal/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/billing-portal/service.server.ts -------------------------------------------------------------------------------- /app/modules/checkout/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/checkout/index.ts -------------------------------------------------------------------------------- /app/modules/checkout/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/checkout/service.server.ts -------------------------------------------------------------------------------- /app/modules/note/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/note/index.ts -------------------------------------------------------------------------------- /app/modules/note/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/note/service.server.ts -------------------------------------------------------------------------------- /app/modules/note/types.ts: -------------------------------------------------------------------------------- 1 | export type { Note } from "@prisma/client"; 2 | -------------------------------------------------------------------------------- /app/modules/price/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./pricing-table"; 2 | -------------------------------------------------------------------------------- /app/modules/price/components/pricing-table.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/price/components/pricing-table.tsx -------------------------------------------------------------------------------- /app/modules/price/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/price/index.ts -------------------------------------------------------------------------------- /app/modules/price/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/price/service.server.ts -------------------------------------------------------------------------------- /app/modules/price/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/price/types.ts -------------------------------------------------------------------------------- /app/modules/subscription/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/subscription/index.ts -------------------------------------------------------------------------------- /app/modules/subscription/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/subscription/service.server.ts -------------------------------------------------------------------------------- /app/modules/subscription/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/subscription/types.ts -------------------------------------------------------------------------------- /app/modules/tier/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/tier/index.ts -------------------------------------------------------------------------------- /app/modules/tier/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/tier/service.server.ts -------------------------------------------------------------------------------- /app/modules/tier/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/tier/types.ts -------------------------------------------------------------------------------- /app/modules/user/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/user/index.ts -------------------------------------------------------------------------------- /app/modules/user/service.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/modules/user/service.server.ts -------------------------------------------------------------------------------- /app/modules/user/types.ts: -------------------------------------------------------------------------------- 1 | export type { User } from "@prisma/client"; 2 | -------------------------------------------------------------------------------- /app/root.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/root.tsx -------------------------------------------------------------------------------- /app/routes/_index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/_index.tsx -------------------------------------------------------------------------------- /app/routes/api.customer-portal.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/api.customer-portal.ts -------------------------------------------------------------------------------- /app/routes/api.subscribe.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/api.subscribe.ts -------------------------------------------------------------------------------- /app/routes/api.webhook.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/api.webhook.ts -------------------------------------------------------------------------------- /app/routes/app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/app.tsx -------------------------------------------------------------------------------- /app/routes/checkout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/checkout.tsx -------------------------------------------------------------------------------- /app/routes/healthcheck.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/healthcheck.tsx -------------------------------------------------------------------------------- /app/routes/join.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/join.tsx -------------------------------------------------------------------------------- /app/routes/login.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/login.tsx -------------------------------------------------------------------------------- /app/routes/logout.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/logout.tsx -------------------------------------------------------------------------------- /app/routes/subscription.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/routes/subscription.tsx -------------------------------------------------------------------------------- /app/styles/tailwind.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/styles/tailwind.css -------------------------------------------------------------------------------- /app/utils/cookies.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/cookies.ts -------------------------------------------------------------------------------- /app/utils/date.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/date.ts -------------------------------------------------------------------------------- /app/utils/env.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/env.ts -------------------------------------------------------------------------------- /app/utils/error.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/error.ts -------------------------------------------------------------------------------- /app/utils/form.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/form.ts -------------------------------------------------------------------------------- /app/utils/http-status.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/http-status.ts -------------------------------------------------------------------------------- /app/utils/http.server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/http.server.ts -------------------------------------------------------------------------------- /app/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/index.ts -------------------------------------------------------------------------------- /app/utils/is-browser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/is-browser.ts -------------------------------------------------------------------------------- /app/utils/locale-provider.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/locale-provider.tsx -------------------------------------------------------------------------------- /app/utils/logger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/logger.ts -------------------------------------------------------------------------------- /app/utils/tw-classes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/tw-classes.ts -------------------------------------------------------------------------------- /app/utils/types.ts: -------------------------------------------------------------------------------- 1 | export type Nullable = { 2 | [P in keyof T]: T[P] | null; 3 | }; 4 | -------------------------------------------------------------------------------- /app/utils/zod.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/app/utils/zod.ts -------------------------------------------------------------------------------- /fly.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/fly.toml -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/package.json -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/postcss.config.mjs -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /remix.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/remix.config.js -------------------------------------------------------------------------------- /remix.env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/remix.env.d.ts -------------------------------------------------------------------------------- /remix.init/gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/remix.init/gitignore -------------------------------------------------------------------------------- /remix.init/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/remix.init/index.js -------------------------------------------------------------------------------- /remix.init/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/remix.init/package.json -------------------------------------------------------------------------------- /scripts/_seed.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/scripts/_seed.ts -------------------------------------------------------------------------------- /scripts/config/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/scripts/config/index.ts -------------------------------------------------------------------------------- /scripts/db/delete_db_enums.sql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/scripts/db/delete_db_enums.sql -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/start.sh -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/tailwind.config.ts -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rphlmr/supa-stripe-stack/HEAD/tsconfig.json --------------------------------------------------------------------------------