Skip to content

Quick scaffold for starting a Reach Lang DApp with ReactJS

Notifications You must be signed in to change notification settings

MrJackdaw/reach-reactjs-starter

Repository files navigation

React + Reach Application Scaffold

What is it?

This is a quick scaffold/template for building a ReactJS and Reach Lang DApp. The development env and build process are handled by webpack.
If you need to add or modify Webpack config overrides, consider using @craco

Inspired by @zetsuboii's starter pack, which has been pulled from circulation.

What does it contain?


How do I use it?

  1. Clone (or fork) the project
  2. cd path/to/my-project
  3. rm -rf .git && git init (create a fresh git repository for your project)
  4. npm install
  5. npm run start (launches at localhost:3000)

Take a look at Available Scripts for additional CLI commands.

Reach Helpers

This project includes some helpful bits, including

  • A self-contained state instance. You can subscribe to it like any other state.
  • A connect button that will automatically trigger a wallet connection.
    Default network is Algorand, but if your stdlib instance is using ETH, it will trigger MetaMask.
  • A stub Reach application to get you started on your multichain smart contracts. I personally use the directory to store my compiled contracts.
  • A light API for interacting with your @reach/stdlib instance.

Additional Notes

This project was bootstrapped with Create React App. It uses react-scripts-rewired for React 18 polyfills.

Reach CLI

Note: If you don't have the reach compiler installed, run this in your project directory to download it (and make the downloaded item executable)

  $ curl https://docs.reach.sh/reach -o reach ; chmod +x reach

Learn more here.


Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode at http://localhost:3000.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
See the section about deployment for more information.

npm run eject

Note: this is a one-way operation. Once you eject, you can’t go back!

If you aren’t satisfied with the build tool and configuration choices, you can eject at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except eject will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.

You don’t have to ever use eject. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.

Learn More about React

You can learn more in the Create React App documentation.

To learn React, check out the React documentation. Some other helpful topics: