An Open Source Remix template that integrates Stripe Subscriptions, Social Authentication, Testing and a few more features. SQLite version. Deploys to Fly.io

Overview

GitHub-Mark-Light GitHub-Mark-Dark

Live Demo · Twitter
An Open Source Remix template that integrates Stripe Subscriptions, Social Authentication, Testing and a few more features. SQLite version. Deploys to Fly.io

💿 Features

Special Stack Features

We've got a 🐘 PostgreSQL version also.

Would you like to change something? Fork it, change it and use npx create-remix --template your/repo!
Learn more about Remix Stacks.

⚡️ Quickstart

# Initialize the following template in your workspace:
npx create-remix --template dev-xo/stripe-stack

# Start dev server:
npm run dev

Done! This starts your app in development mode, rebuilding assets on file changes.

👋 Getting Started

This section will be splitted into three quick threads: Live Demo | Development | Production.

Live Demo

Template's Demo has been developed to be really simple to use, being able to show all its provided features. Let's see the workflow to test it:

  • Log In with your preferred Social.

    Feel free to remove the authorized App after testing it.

  • Select a Subscription Plan.

    Besides you will see real money values from Stripe Checkout, don't worry, it's absolutely safe.

  • Fill Stripe Checkout inputs with default development values.

    Type 4242 as much times as you can on each available Input.

  • Done! We should be redirected back to our App with newly Plan already set.

Development

Understanding our development workspace will keep us productive.

▫️ Folder Structure

A solid folder structure will help our App grow healthy over time. Let's review the most important folders.

├── modules         # Groups our App logic and splits it into smaller sections.
  ├──                 Stores related Components, Database interactions, Sessions, Utils etc.
  ├──                 This folder could also be called "lib", "services" etc.

├── routes
  ├── api           # Stores Stripe Webhook Endpoint file, and any realted API calls.
  ├── resources     # Used to call our own Server, do Redirects, update Sessions and so on.

▫️ Authentication Strategies

To provide Authentication to our App, we will need to get the API Keys from our Socials Providers. Below here you can find all template's Providers OAuth Documentations.

Once we got our Providers API Keys, we can set them into .env file.

If you are struggling on this step, feel free to contact me directly, have a look on youtube, or do a quick search on Google!.

▫️ Stripe Webhook

Let's see how we can start receiving Stripe Events to our Webhook Endpoint.

  • Install Stripe CLI

  • Keep the following command running in the background:

stripe listen --forward-to localhost:3000/api/webhook

The provided Webhook Signing Secret from the above command, has to be set in our .env file as DEV_STRIPE_WEBHOOK_ENDPOINT_SECRET.

▫️ Stripe Products

From Stripe Products Dashboard, create as many products as you want. Remember to update their API Keys from .env file, as well as their descriptions from /modules/stripe/stripe-plans.

Production

▫️ Stripe Webhook - Web Dashboard

Let's see how we can get and set our Production Webhook.

  • Visit Webhooks Section into your Stripe Dashboard.

The link provided to Webhooks its from Stripe Test Mode. Feel free to complete the "Activate Payments" steps to get a production Webhook Key.

  • Create a new Webhook Endpoint.

  • Set your deployed App Webhook Endpoint URL into Endpoint URL input.

For this template was: https://stripe-stack.fly.dev/api/webhook

  • Reveal the Signing Secret value that has been provided from Stripe Webhook page and set it as PROD_STRIPE_WEBHOOK_ENDPOINT_SECRET in our .env file.

Done! Give it a try. If something went wrong, verify that all the steps has been followed correctly.

🚀 Deployment

This Remix Stack comes with two GitHub Actions that handle automatically deploying our app to Production and Staging Environments.

Prior to the first deployment, we'll need to do a few things:

fly auth signup
  • Create two apps on Fly, one for staging and one for production:
fly apps create stripe-stack
fly apps create stripe-stack-staging

Make sure this name matches the app set into fly.toml file. Otherwise, you will not be able to deploy.

  • Initialize Git:
git init
  • Create a new GitHub Repository, and then add it as the remote for your project. Do not push your app yet!
git remote add origin <ORIGIN_URL>
  • Add a FLY_API_TOKEN to your GitHub repo. To do this, go to your user settings on Fly and create a new token, then add it to your repo secrets with the name FLY_API_TOKEN.

  • Add a SESSION_SECRET to your fly app secrets, to do this you can run the following commands:

fly secrets set SESSION_SECRET=$(openssl rand -hex 32) --app stripe-stack
fly secrets set SESSION_SECRET=$(openssl rand -hex 32) --app stripe-stack-staging

If you don't have openssl installed, you can also use 1password to generate a random secret, just replace $(openssl rand -hex 32) with the generated secret.

  • Create a persistent volume for the sqlite database for both your staging and production environments. Run the following:
fly volumes create data --size 1 --app stripe-stack
fly volumes create data --size 1 --app stripe-stack-staging
  • Now that everything is set up you can commit and push your changes to your repo.

Every commit to your main branch will trigger a deployment to your production environment, and every commit to your dev branch will trigger a deployment to your staging environment.

▫️ Setting Up Production Envs

Here is a simple command we can use after deployment. Fill it with the required App .env variables.

flyctl secrets set NODE_ENV=production PROD_HOST_URL= GOOGLE_CLIENT_ID= GOOGLE_CLIENT_SECRET= GITHUB_CLIENT_ID= GITHUB_CLIENT_SECRET= TWITTER_CLIENT_ID= TWITTER_CLIENT_SECRET= DISCORD_CLIENT_ID= DISCORD_CLIENT_SECRET= STRIPE_PUBLIC_KEY= STRIPE_SECRET_KEY= PLAN_1_PRICE_ID= PLAN_2_PRICE_ID= PLAN_3_PRICE_ID= PROD_STRIPE_WEBHOOK_ENDPOINT_SECRET=

Development variables has opted out from this command.

▫️ Connecting to your database

The SQLite database lives at /data/sqlite.db in your deployed application. You can connect to the live database by running fly ssh console -C database-cli.

⚙️ GitHub Actions

We use GitHub Actions for continuous integration and deployment.

Anything that gets into the main branch will be deployed to production after running tests / build / etc.
Anything in the dev branch will be deployed to staging.

🧩 Testing

▫️ Cypress

We use Cypress for End-to-End tests. You'll find those in the cypress directory. As you make changes, add to an existing file or create a new file in the cypress/e2e directory to test your changes.

We use @testing-library/cypress for selecting elements on the page semantically.

To run these tests in development, run npm run test:e2e:dev which will start the dev server for the app as well as the Cypress client. Make sure the database is running in docker as described above.

▫️ Vitest

For lower level tests of utilities and individual components, we use vitest. We have DOM-specific assertion helpers via @testing-library/jest-dom.

▫️ Type Checking

This project uses TypeScript. It's recommended to get TypeScript set up for your editor to get a really great in-editor experience with type checking and auto-complete. To run type checking across the whole project, run npm run typecheck.

▫️ Linting

This project uses ESLint for linting. That is configured in .eslintrc.js.

▫️ Formatting

We use Prettier for auto-formatting in this project. It's recommended to install an editor plugin to get auto-formatting on save. There's also a npm run format script you can run to format all files in the project.

Also feel free to update prettier settings from .package-json with your preferred configuration.

👥 Contributing

Contributions are Welcome! Jump in and help us improve this Community Template over time!

🍪 Support

If you found the template useful, feel free to Star It! It helps the repository grow and gives me motivation to keep working on it. Thanks you!

▫️ Acknowledgments

Big thanks to Kent C. Dodds (Not gonna bother @him tagging, instead gonna leave here his Website). Him has supported some of my work on Twitter a few times already, and that's something truly amazing for any small developer.

Also a big shout out to @vueeez who just jumped on Twitter DMs, contributing on Twitter Authentication Strategy.

Comments
  • Getting `Invalid `db.user.findUnique()` trying to register new account after all the setup

    Getting `Invalid `db.user.findUnique()` trying to register new account after all the setup

    I ran npx create-remix@latest --template dev-xo/stripe-stack. Followed instructions. Then ran npm run dev.

    Tried to create account but always get this error.

    image

    Not sure what goes wrong.

    I tried to run npm run setup manually but get this error.

    npm run setup
    
    > setup
    > run-s setup:db setup:seed
    
    
    > setup:db
    > prisma generate && prisma migrate deploy
    
    Environment variables loaded from .env
    Prisma schema loaded from prisma/schema.prisma
    
    ✔ Generated Prisma Client (4.5.0 | library) to ./node_modules/@prisma/client in 32ms
    You can now start using Prisma Client in your code. Reference: https://pris.ly/d/client
    

    import { PrismaClient } from '@prisma/client' const prisma = new PrismaClient()

    Environment variables loaded from .env
    Prisma schema loaded from prisma/schema.prisma
    Datasource "db": SQLite database "data.db" at "file:./data.db?connection_limit=1"
    
    1 migration found in prisma/migrations
    
    Error: P3005
    
    The database schema is not empty. Read more about how to baseline an existing production database: https://pris.ly/d/migrate-baseline
    
    ERROR: "setup:db" exited with 1.
    

    I chose SQLite as DB choice.

    Thanks for making the template.

    dependencies 
    opened by nikitavoloboev 5
  • postgres-data is missing in .gitignore

    postgres-data is missing in .gitignore

    Hey 👋 thank you for this great template. I've set it up locally and it just works! I noticed postgres-data is missing in the .gitignore and the whole DB was commited on my side. Is this on purpose?

    good first issue 
    opened by simulieren 4
  • Provide option for 'one time payment' via Stripe

    Provide option for 'one time payment' via Stripe

    I am trying to adapt the Stripe code so instead of subscriptions, it is a one time price. I then can get a token back from Stripe for successful payment to my backend.

    However if I try to setup a non subscription product in Stripe dashboard and then do all changes as per readme.md, in the end I get this error:

    image

    When I try to actually do the purchase. Pressing Get Basic button here:

    image

    Would love some help trying to get this working. Ideally this could be part of the template setup too. ♥️

    help wanted 
    opened by nikitavoloboev 3
  • /login 404

    /login 404

    When I browse to 'http://localhost:3000/login' I get a 404 not found.

    Steps to reproduce:

    1. Fresh install of the repo via npx create-remix@latest --template dev-xo/stripe-stack.
    2. After install is complete, run npm run start.
    3. Browse to http://localhost:3000/login
    opened by codingforfoodllc 2
  • Chore(deps-dev): bump @testing-library/dom from 8.17.1 to 8.18.0

    Chore(deps-dev): bump @testing-library/dom from 8.17.1 to 8.18.0

    Bumps @testing-library/dom from 8.17.1 to 8.18.0.

    Release notes

    Sourced from @​testing-library/dom's releases.

    v8.18.0

    8.18.0 (2022-09-17)

    Features

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 2
  • Bump remix-flat-routes from 0.4.8 to 0.5.3

    Bump remix-flat-routes from 0.4.8 to 0.5.3

    Bumps remix-flat-routes from 0.4.8 to 0.5.3.

    Changelog

    Sourced from remix-flat-routes's changelog.

    v0.5.3

    • 🐛 Make unique route id check optional #29

    v0.5.2

    • 🐛 Fix flat-files folder support on Windows #27
    • ✨ Add appDir option #26

    v0.5.1

    • 🔨 Add support for folders with flat-files convention #25

    v0.5.0

    • 🔨 Update flatRoutes with new features
      • Uses same function as Remix core
      • Allows to maintain extended flat-routes function
      • Customizations passed in options
      • Add support for "hybrid" routes
      • Add support for extended route filenames
      • Add support for multiple route folders
      • Add support for custom param prefix character
      • Add support for custom base path

    v0.4.7

    • 🔨 Modify route ids for index routes to workaround bug in Remix

    v0.4.6

    • 🔨 Update build to use tsc compiler to generate type definitions #21

    v0.4.5

    • 🐛 Fix path generation to ensure relative paths #14
    • 🐛 Handle ignored files starting with dots
    • ✨ Add paramPrefixChar to config
      • Since the $ prefix makes it hard to work with files in the shell, you can choose a different character like ^

    v0.4.4

    • 🔨 Add ignoredRouteFiles to flatRoutes options #15

    v0.4.3

    • 🐛 Use correct path for index routes #13

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Bump remix-flat-routes from 0.4.8 to 0.5.1

    Bump remix-flat-routes from 0.4.8 to 0.5.1

    Bumps remix-flat-routes from 0.4.8 to 0.5.1.

    Changelog

    Sourced from remix-flat-routes's changelog.

    v0.5.1

    • 🔨 Add support for folders with flat-files convention #25

    v0.5.0

    • 🔨 Update flatRoutes with new features
      • Uses same function as Remix core
      • Allows to maintain extended flat-routes function
      • Customizations passed in options
      • Add support for "hybrid" routes
      • Add support for extended route filenames
      • Add support for multiple route folders
      • Add support for custom param prefix character
      • Add support for custom base path

    v0.4.7

    • 🔨 Modify route ids for index routes to workaround bug in Remix

    v0.4.6

    • 🔨 Update build to use tsc compiler to generate type definitions #21

    v0.4.5

    • 🐛 Fix path generation to ensure relative paths #14
    • 🐛 Handle ignored files starting with dots
    • ✨ Add paramPrefixChar to config
      • Since the $ prefix makes it hard to work with files in the shell, you can choose a different character like ^

    v0.4.4

    • 🔨 Add ignoredRouteFiles to flatRoutes options #15

    v0.4.3

    • 🐛 Use correct path for index routes #13

    v0.4.2

    • 🐛 Fix params with trailing slash #11

    v0.4.1

    • 🐛 Fix parent handling and trailing _ in path #11

    v0.4.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Bump remix-flat-routes from 0.4.8 to 0.5.0

    Bump remix-flat-routes from 0.4.8 to 0.5.0

    Bumps remix-flat-routes from 0.4.8 to 0.5.0.

    Changelog

    Sourced from remix-flat-routes's changelog.

    v0.5.0

    • 🔨 Update flatRoutes with new features
      • Uses same function as Remix core
      • Allows to maintain extended flat-routes function
      • Customizations passed in options
      • Add support for "hybrid" routes
      • Add support for extended route filenames
      • Add support for multiple route folders
      • Add support for custom param prefix character
      • Add support for custom base path

    v0.4.7

    • 🔨 Modify route ids for index routes to workaround bug in Remix

    v0.4.6

    • 🔨 Update build to use tsc compiler to generate type definitions #21

    v0.4.5

    • 🐛 Fix path generation to ensure relative paths #14
    • 🐛 Handle ignored files starting with dots
    • ✨ Add paramPrefixChar to config
      • Since the $ prefix makes it hard to work with files in the shell, you can choose a different character like ^

    v0.4.4

    • 🔨 Add ignoredRouteFiles to flatRoutes options #15

    v0.4.3

    • 🐛 Use correct path for index routes #13

    v0.4.2

    • 🐛 Fix params with trailing slash #11

    v0.4.1

    • 🐛 Fix parent handling and trailing _ in path #11

    v0.4.0

    • 🔨 Rewrite how parent routes are calculated #9
    • 🐛 Use path.sep to support Windows #10

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Chore(deps-dev): bump prettier-plugin-tailwindcss from 0.1.13 to 0.2.1

    Chore(deps-dev): bump prettier-plugin-tailwindcss from 0.1.13 to 0.2.1

    Bumps prettier-plugin-tailwindcss from 0.1.13 to 0.2.1.

    Release notes

    Sourced from prettier-plugin-tailwindcss's releases.

    v0.2.1

    Fixed

    • Fix support for latest Shopify Liquid plugin (#109)

    v0.2.0

    Changed

    • Don't bundle prettier-plugin-svelte (#101)

    Added

    • Improve compatibility with other Prettier plugins (#101, #102)

    Upgrading from v0.1.x for Svelte users

    As of v0.2.0 we no longer bundle prettier-plugin-svelte as part of this plugin, so to bring back formatting for Svelte code you need to explicitly install that dependency yourself:

    npm install -D prettier-plugin-svelte
    

    Next, disable autoloading by setting pluginSearchDirs to false in your Prettier configuration, and add any plugins you're using to your plugins list, making sure prettier-plugin-tailwindcss is last in the list:

    // .prettierrc
    {
      // ..
      "plugins": [
        "prettier-plugin-svelte",
        "prettier-plugin-tailwindcss" // Must come last
      ],
      "pluginSearchDirs": false
    }
    
    Changelog

    Sourced from prettier-plugin-tailwindcss's changelog.

    [0.2.1] - 2022-12-08

    Fixed

    • Fix support for latest Shopify Liquid plugin (#109)

    [0.2.0] - 2022-11-25

    Changed

    • Don't bundle prettier-plugin-svelte (#101)

    Added

    • Improve compatibility with other Prettier plugins (#101, #102)
    Commits
    Maintainer changes

    This version was pushed to npm by thecrypticace, a new releaser for prettier-plugin-tailwindcss since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Chore(deps): bump stripe from 10.17.0 to 11.2.0

    Chore(deps): bump stripe from 10.17.0 to 11.2.0

    Bumps stripe from 10.17.0 to 11.2.0.

    Release notes

    Sourced from stripe's releases.

    v11.2.0

    • #1632 API Updates
      • Add support for flow_data on BillingPortalSessionCreateParams
      • Add support for flow on BillingPortal.Session
    • #1631 API Updates
      • Add support for india_international_payments on Account.capabilities, AccountCreateParams.capabilities, and AccountUpdateParams.capabilities
      • Add support for invoice_creation on Checkout.Session and CheckoutSessionCreateParams
      • Add support for invoice on Checkout.Session
      • Add support for metadata on SubscriptionSchedule.phases[].items[], SubscriptionScheduleCreateParams.phases[].items[], and SubscriptionScheduleUpdateParams.phases[].items[]
    • #1630 Remove BASIC_METHODS from TS definitions
    • #1629 Narrower type for stripe.invoices.retrieveUpcoming()
    • #1627 remove unneeded IIFE
    • #1625 Remove API version from the path
    • #1626 Move child resource method params next to method declarations
    • #1624 Split resource and service types

    See the changelog for more details.

    v11.1.0

    • #1623 API Updates
      • Add support for hosted_instructions_url on PaymentIntent.next_action.wechat_pay_display_qr_code
    • #1622 API Updates
      • Add support for custom_text on Checkout.Session, CheckoutSessionCreateParams, PaymentLinkCreateParams, PaymentLinkUpdateParams, and PaymentLink
      • Add support for hosted_instructions_url on PaymentIntent.next_action.paynow_display_qr_code

    See the changelog for more details.

    v11.0.0

    Major version release for API version 2022-11-15. Default API version changed to "2022-11-15".

    This release includes breaking changes resulting from moving to use the new API version "2022-11-15". To learn more about these changes to Stripe products, see https://stripe.com/docs/upgrades#2022-11-15

    • #1608 Next major release changes
    • #1619 Annotate prototypes with types
    • #1612 Add type information here and there
    • #1615 API Updates

    See the changelog for more details.

    v10.18.0-beta.1

    • Updated stable APIs to the latest version
    • Add discount_end to Discount.
    • Add url to MerchantData.
    Changelog

    Sourced from stripe's changelog.

    11.2.0 - 2022-12-06

    • #1632 API Updates
      • Add support for flow_data on BillingPortalSessionCreateParams
      • Add support for flow on BillingPortal.Session
    • #1631 API Updates
      • Add support for india_international_payments on Account.capabilities, AccountCreateParams.capabilities, and AccountUpdateParams.capabilities
      • Add support for invoice_creation on Checkout.Session and CheckoutSessionCreateParams
      • Add support for invoice on Checkout.Session
      • Add support for metadata on SubscriptionSchedule.phases[].items[], SubscriptionScheduleCreateParams.phases[].items[], and SubscriptionScheduleUpdateParams.phases[].items[]
    • #1630 Remove BASIC_METHODS from TS definitions
    • #1629 Narrower type for stripe.invoices.retrieveUpcoming()
    • #1627 remove unneeded IIFE
    • #1625 Remove API version from the path
    • #1626 Move child resource method params next to method declarations
    • #1624 Split resource and service types

    11.1.0 - 2022-11-17

    • #1623 API Updates
      • Add support for hosted_instructions_url on PaymentIntent.next_action.wechat_pay_display_qr_code
    • #1622 API Updates
      • Add support for custom_text on Checkout.Session, CheckoutSessionCreateParams, PaymentLinkCreateParams, PaymentLinkUpdateParams, and PaymentLink
      • Add support for hosted_instructions_url on PaymentIntent.next_action.paynow_display_qr_code

    11.0.0 - 2022-11-16

    This release includes breaking changes resulting from moving to use the new API version "2022-11-15". To learn more about these changes to Stripe products, see https://stripe.com/docs/upgrades#2022-11-15

    "⚠️" symbol highlights breaking changes.

    • #1608 Next major release changes
    • #1619 Annotate prototypes with types
    • #1612 Add type information here and there
    • #1615 API Updates
      • ⚠️ Remove support for tos_shown_and_accepted on CheckoutSessionCreateParams.payment_method_options.paynow. The property was mistakenly released and never worked.

    ⚠️ Changed

    • Drop support for Node.js 8 and 10. We now support Node.js 12+. ((#1579)
    • Change StripeSignatureVerificationError to have header and payload fields instead of detail. To access these properties, use err.header and err.payload instead of err.detail.header and err.detail.payload. (#1574)

    ⚠️ Removed

    • Remove Orders resource. (#1580)

    • Remove SKU resource (#1583)

    • Remove deprecated CheckoutSessionCreateParams.subscription_data.items. (#1580)

    • Remove deprecated configuration setter methods (setHost, setProtocol, setPort, setApiVersion, setApiKey, setTimeout, setAppInfo, setHttpAgent, setMaxNetworkRetries, and setTelemetryEnabled). (#1597)

      Use the config object to set these options instead, for example:

      const stripe = Stripe('sk_test_...', {
        apiVersion: '2019-08-08',
      

    ... (truncated)

    Commits
    • a91857a Bump version to 11.2.0
    • 1267069 Merge pull request #1632 from stripe/latest-codegen-master
    • 1309e79 Codegen for openapi v212
    • 0f6fa9e Merge pull request #1631 from stripe/latest-codegen-master
    • 71d1240 Codegen for openapi v211
    • dae38f9 Remove BASIC_METHODS from TS definitions (#1630)
    • 247c35e Merge pull request #1629 from stripe/richardm-upcoming-invoice-narrower-type
    • f8fa70b Update types/UpcomingInvoices.d.ts
    • c6b9b93 Update types/UpcomingInvoices.d.ts
    • c85072c index.d.ts
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
  • Chore(deps-dev): bump msw from 0.48.3 to 0.49.1

    Chore(deps-dev): bump msw from 0.48.3 to 0.49.1

    Bumps msw from 0.48.3 to 0.49.1.

    Release notes

    Sourced from msw's releases.

    v0.49.1 (2022-11-28)

    Bug Fixes

    v0.49.0 (2022-11-19)

    Features

    • support TypeScript 4.9, drop support for TypeScript 4.2, 4.3 (#1467) (af0277da900e20c7fb270ddb46be20deb487aefc) @​wtchnm
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 1
Owner
xo
Developing quality Open Source experiences. Currently focused on @remix-run
xo
A testing focused Remix Stack, that integrates E2E & Unit testing with Playwright, Vitest, MSW and Testing Library. Driven by Prisma ORM. Deploys to Fly.io

Live Demo · Twitter A testing focused Remix Stack, that integrates E2E & Unit testing with Playwright, Vitest, MSW and Testing Library. Driven by Pris

Remix Stacks 18 Oct 31, 2022
A solid create-remix app, that applies best practices into a clean, batteries included template. SQLite version. Deploys to Fly.io

Remix Barebones Stack npx create-remix --template dev-xo/barebones-stack A solid create-remix app, that follows community guidelines and applies best

Dev XO 97 Dec 30, 2022
The Remix Stack for deploying to Fly with SQLite, authentication, testing, linting, formatting, etc.

Remix Indie Stack Learn more about Remix Stacks. npx create-remix --template remix-run/indie-stack What's in the stack Fly app deployment with Docker

Remix 688 Dec 30, 2022
The Remix Blog Stack for deploying to Fly with MDX, SQLite, testing, linting, formatting, etc.

Remix Speed Metal Stack Learn more about Remix Stacks. npx create-remix --template Girish21/speed-metal-stack Remix Blog ?? This blog starter template

Girish 141 Jan 2, 2023
The Remix Stack for deploying to Fly with Supabase, authentication, testing, linting, formatting, etc.

Remix Supa Fly Stack Learn more about Remix Stacks. npx create-remix --template rphlmr/supa-fly-stack What's in the stack Fly app deployment with Doc

Raphaël Moreau 157 Jan 7, 2023
The Remix Stack for deploying to Fly with PostgreSQL, authentication, testing, linting, formatting, etc.

The Remix Stack for deploying to Fly with PostgreSQL, authentication, testing, linting, formatting, etc.

Remix 677 Jan 2, 2023
simple-remix-blog is a blog template built using Remix and TailwindCSS. Create your own blog in just a few minutes!

simple-remix-blog is a blog template built using remix.run and TailwindCSS. It supports markdown and MDX for the blog posts. You can clone it and star

José Miguel Álvarez Vañó 8 Dec 8, 2022
The Remix version of the fakebooks app demonstrated on https://remix.run. Check out the CRA version: https://github.com/kentcdodds/fakebooks-cra

Remix Fakebooks App This is a (very) simple implementation of the fakebooks mock app demonstrated on remix.run. There is no database, but there is an

Kent C. Dodds 61 Dec 22, 2022
The Remix Stack with Clerk authentication, Supabase database, Chakra UI, testing, linting, and more.

Remix Bossa Nova Stack Learn more about Remix Stacks. What's in the stack User management with Clerk Database with Supabase Styling with Chakra UI Dep

Clerk 32 Jan 2, 2023
The project integrates workflow engine, report engine and organization authority management background, which can be applied to the development of OA, HR, CRM, PM and other systems. With tlv8 IDE, business system development, testing and deployment can be realized quickly.

介绍 项目集成了工作流引擎、报表引擎和组织机构权限管理后台,可以应用于OA、HR、CRM、PM等系统开发。配合使用tlv8 ide可以快速实现业务系统开发、测试、部署。 后台采用Spring MVC架构简单方便,前端使用流行的layui界面美观大方。 采用组件开发技术,提高系统的灵活性和可扩展性;采

Qian Chen 38 Dec 27, 2022
Fresh SQLite example on Fly.io.

fresh-sqlite-example Fresh example with SQLite and kysely query builder. See running example on Fly.io. Prerequisites Deno v1.23 or higher SQLite Opti

Michal Vavra 6 Nov 25, 2022
The Remix Stack for Web2 apps and Web3 DApps with authentication with Magic, testing, linting, formatting, etc.

Remix French House Stack Learn more about Remix Stacks. npx create-remix --template janhesters/french-house-stack What's in the Stack? The French Hou

Jan Hesters 26 Dec 26, 2022
The Remix Stack for deploying to AWS with DynamoDB, authentication, testing, linting, formatting, etc.

The Remix Stack for deploying to AWS with DynamoDB, authentication, testing, linting, formatting, etc.

Remix 311 Jan 1, 2023
Remix enables you to build fantastic user experiences for the web and feel happy with the code that got you there. In this workshop, we'll look at some more advanced use cases when building Remix applications.

?? Advanced Remix Workshop Remix enables you to build fantastic user experiences for the web and feel happy with the code that got you there. In this

Frontend Masters 167 Dec 9, 2022
Remix TypeScript monorepo with Turborepo pipelines, Prisma, PostgreSQL, Docker deploy to Fly.io, pnpm, TailwindCSS and Tsyringe for DI.

Remix template with Turborepo, TypeScript and pnpm. The remix app deploys to fly.io or build to Docker image. Example packages for Database with prisma, Tsyringe dependency injection, UI, and internal TypeScript packages.

Philippe L'ATTENTION 33 Dec 29, 2022
Remix+EdgeDB+Tailwind+Fly.io=🖤

Remix Chop Suey Stack Forked from Supa Fly Stack. Learn more about Remix Stacks. Quickstart npx create-remix --template jkcorrea/remix-chop-suey-stack

Jake Correa 56 Dec 22, 2022
Shikhar 4 Oct 9, 2022
Deploys a AWS Bastion Host preconfigured for Tailscale access.

cdk-tailscale-bastion This packages creates an AWS Bastion configured for Tailscale. This covers steps 1,2 & 4 of the Tailscale RDS guide. You may fin

JT 10 Dec 3, 2022
our features are few but we provide the best and it is not uncommon to find in other npmjs

hikki-me our features are few but we provide the best and it is not uncommon to find in other npmjs Installation Install hikki-me with npm npm install

(Anto) 10 Jul 10, 2022