Live at: peanut.me | staging.peanut.me
Ask in Peanut Discord #dev channel if you have any questions.
First install the dependencies (location: root folder):
git submodule update --init --recursive
pnpm installcp .env.example .env
# fill in dummy valuespnpm dev
# Note: run pnpm run dev:https if you need to work in a secure secure contextThen open http://localhost:3000 with your browser to see the result.
This project uses Prettier for code formatting. To ensure consistent code style:
- Install the VSCode Prettier extension
- Enable "Format on Save" in VSCode
- Prettier will automatically format your code when you save
The CI pipeline will check formatting on all PRs. Unformatted code will block merging.
This project uses Jest for testing. Tests are located next to their source files in __tests__ directories.
To run tests:
# Run all tests
pnpm test
# Run tests in watch mode during development
pnpm test:watch
# Run tests with coverage report
pnpm test:coverage- Tests are placed in
__tests__directories next to the code they test - Test files should be named
*.test.tsor*.test.tsx - Use descriptive test names that explain the expected behavior
Example:
describe('Bank Account Formatting', () => {
it('should format IBAN with spaces every 4 characters', () => {
// test code
})
})The CI pipeline runs tests on all PRs. Failed tests will block merging.
This repo previously hosted two other apps under the peanut.to domain. Both are now deprecated in favor of peanut.me (this branch). Their final states are preserved as tags:
| Tag | Was | Last commit | Notes |
|---|---|---|---|
archive/peanut-to |
main → peanut.to |
Nov 2025 | Link-based send/claim app, cashout, SDK pages |
archive/legacy-peanut-to |
legacy → legacy.peanut.to |
Mar 2025 | Batch send, raffles, leaderboard |
To browse the old code: git checkout archive/peanut-to