BTCPay Server has come a long way since Nicolas Dorier first decided to build out a software project with the goal of obsoleting the payment processor BitPay in response to their actions during the 2017 Blocksize Wars. It has blossomed since then into one of, if not the, most widely used self-hosted payment processing stack for Bitcoin users.
It’s not even just small eshop operators and merchants using it anymore, major companies like Namecheap (a domain registrar) and CheapAir (an airline booking company) have shifted over to using self-hosted BTCPay instances instead of centralized payment processors.
The software stack is geared up to support easy integration into almost every major merchant stack: WooCommerce, Shopify, WordPress, as well as their own Greenfield API for custom integration. Internally it supports easy wallet management, on-chain hot wallet and cold wallet integration is a breeze, Lightning support does require the user source their own receiving liquidity but the rest of the process to spin up a node is well supported and simple, the suite even supports Payjoin and Wabisabi coinjoins. It really has built itself up into a full stack supporting just about every way to use Bitcoin that would be desirable for a merchant.
Even without the use of pre-packaged platforms like WooCommerce or Shopify, the BTCPay Button is designed to make custom integration of basic receive functionality into any web project smooth sailing that works out to a few configuration settings on the BTCPay Server side and pasting a few lines of code into your project. While the BTCPay Server platform provides code snippets that can be directly dropped into HTML and PHP projects, more work is required to get these snippets to work in single page app frameworks like React. There just hasn’t been a similar easy out of the box integration solution for Javascript React applications, one of the biggest web frameworks out there for developers.
That is no longer the case. Ant (of TimechainStats fame) and TC (creator of Timechain Calendar) have both done an implementation of the BTCPay Pay Button natively in React. Working to integrate BTCPay into their apps, both of which were written in React, they both encountered the challenges and were confronted with a multitude of choices refactoring the frontend code provided by BTCPay and getting it to work in the “React way”. So they built the tool to make that easier for others.
The React BTCPay Pay Button is a full reimplementation of the standard Pay Button functionality for React applications. It provides the Button as a single component that can easily be embedded into any React application, and provides full customization inside of that component without needing to reconfigure or alter settings on the BTCPay Server side. Simply drop in the button, connect it to the server, and everything from that point on can be re-configured or altered from the application side of the connection.
Ant had this to say:
“TC and I wanted to build a simple way for other React devs to use the BTCPay Pay Button’s awesome functionality seamlessly within their React apps, a move inspired by our initial attempts to integrate BTCPay into our React projects Timechain Calendar and TimechainStats. Now, with just two props — the Store ID and Domain — any React app can fully integrate BTCPay Pay Button. It’s a native implementation that aims to fill a small but impactful gap for React developers.
Think of it as a bridge: On one side, you have the robust and highly customizable BTCPay Server Pay Button; on the other, you have the React developers who need an easy-to-integrate, native solution.
Our component allows for a high level of customization built with “the React way” in mind. It’s a specialized tool, ideal for donations or tip jars, that simplifies the integration process while offering the freedom to tweak UI elements as needed.”
Prior to the release of the React BTCPay Server Pay Button, integration into one of the largest web application frameworks in the world required a full custom implementation from the app developer in order to integrate BTCPay functionality into a React application. Now it is as simple and easy as the vanilla BTCPay Pay Button is to integrate into HTML or PHP projects.
There’s even word on the street that Nicolas Dorier plans to formally integrate this into the BTCPay suite itself. While this is in the grand scheme of things a small project reimplementing existing work, it will make BTCPay integration into React projects for future developers much simpler and less time consuming than it was for Ant and TC to build this from scratch for their own projects. That’s the exact type of open source attitude and action that has built up so many of the tools and software stacks used in this ecosystem today.
Learn more about the React BTCPay Server Pay Button by visiting the Github repository.