Skip to content

Latest commit

 

History

History
154 lines (108 loc) · 5.36 KB

CONTRIBUTING.md

File metadata and controls

154 lines (108 loc) · 5.36 KB

Contribution Guide

Preface

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

Send Stack

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
 

Thinking in Send

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

Prerequisites

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

Brew Bundle

Many other dependencies are installed via Homebrew. To install all dependencies, run from the project root:

brew bundle

Your First Build

Build Steps

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.

Getting Started with Tilt

First, install Tilt by following the instructions on their installation page. Once installed, you can proceed with the following steps:

1. Initialize Project with Tilt

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.

2. Monitoring and Logs

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.

3. Making Changes

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.

4. Shutting Down

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.