Send Stack uses bleeding-edge web development technology to deliver great DX to our contributors, quick iteration cycles, and clean code.
Send Stack
- Typescript (strict mode)
- Bun Package Manager
- Yarn workspaces w/ Yarn berry
- Turborepo Build System
- Foundry Toolkit
- React Native w/ Expo
- Next.js
- Tamagui for cross-platform styles
- Solito for cross-platform routing
- Supabase a OSS firebase alternative for DB and auth
Here is a quick peek at the send stack. Quickly jump to any of the submodules by clicking the links below.
. ├── apps │ ├── distributor │ ├── expo │ ├── next ├── docs ├── packages │ ├── api │ ├── app │ ├── contracts │ ├── daimo-expo-passkeys │ ├── eslint-config-customs │ ├── playwright │ ├── ui │ ├── wagmi │ └── webauthn-authenticator └── supabase
Here are some things to keep in mind about thee SEND philosophy when contributing
- Simplicity over complexity (K.I.S.S)
- Don't repeat yourself (DRY)
- Write a test. Don't click the same button over and over
- Write once, Run everywhere
git clone https://github.com/0xsend/sendapp.git && cd sendapp
You'll need a basic understanding of JS tooling
Required JS Runtime: Node >= 20.9.0
corepack enable
npm install turbo --global
Installation is easiest with foundryup
curl -L https://foundry.paradigm.xyz | bash
then in a new terminal run
foundryup
curl -fsSL https://bun.sh/install | bash
Many other dependencies are installed via Homebrew. To install all dependencies, run from the project root:
brew bundle
To streamline the project setup and build process, we recommend using Tilt. Tilt automates and optimizes the development cycle, making it faster and more efficient. Tilt is also used for CI, so using it locally ensures that your code will build and deploy correctly in the CI environment.
First, install Tilt by following the instructions on their installation page. Once installed, you can proceed with the following steps:
In the project root directory, run:
tilt up
This command will start all the services defined in the Tiltfile, building and deploying your application in a local development environment.
You can monitor the build process and access logs directly through the Tilt UI. Simply navigate to http://localhost:10350
in your web browser to view the status of your services.
With Tilt, you can make changes to your codebase, and Tilt will automatically detect these changes, rebuild, and redeploy the affected services. This live update feature ensures that you always test against the latest version of your code.
Once you're done developing, you can shut down all services by pressing Ctrl+C
in the terminal where you ran tilt up
.
By leveraging Tilt, you can focus more on coding and less on the setup, significantly improving your development experience with the Send Stack.