JS/TS monorepo for Recall
- Background
- Project Structure
- Prerequisites
- Installation
- Usage
- Development
- Development with Cursor
- Contributing
- License
This repository contains packages and applications for Recall, written in JavaScript/TypeScript. It's structured as a monorepo using Turborepo and pnpm workspaces for efficient package management and build orchestration.
js-recall/
├── apps/ # Application packages
│ ├── portal/ # Main web application
│ └── faucet/ # Faucet application
├── packages/ # Shared packages
│ ├── sdk/ # Core SDK implementation
│ ├── sdkx/ # Extended SDK features
│ ├── ui/ # Shared UI component library
│ ├── contracts/ # Smart contract interfaces
│ ├── chains/ # Chain-specific configurations
│ ├── address-utils/ # Address manipulation utilities
│ ├── bigint-utils/ # BigInt manipulation utilities
│ ├── fvm/ # FVM-specific functionality
│ ├── network-constants/ # Network configuration constants
│ ├── fonts/ # Shared font resources
│ ├── eslint-config/ # Shared ESLint configuration
│ └── typescript-config/ # Shared TypeScript configuration
└── .changeset/ # Changesets for version management
- Node.js >= 20
- pnpm 9.12.3 or higher
- Git
-
Clone the repository:
git clone https://github.com/recallnet/js-recall.git cd js-recall
-
Install dependencies:
pnpm install
-
Build all packages:
pnpm build
Each package in the monorepo has its own specific usage instructions. Here's a quick overview:
-
Portal (
apps/portal
): Main web applicationcd apps/portal pnpm dev
-
Faucet (
apps/faucet
): Faucet applicationcd apps/faucet pnpm dev
-
SDK (
@recallnet/sdk
): Core SDK implementationimport { RecallSDK } from "@recallnet/sdk";
-
UI Library (
@recallnet/ui
): Shared UI componentsimport { Button } from "@recallnet/ui";
See individual package READMEs for detailed usage instructions.
The monorepo uses Turborepo for task orchestration. The following commands are available from root:
pnpm build
: Build all packagespnpm dev
: Run all packages in development mode (concurrency: 20)pnpm lint
: Run all linterspnpm format
: Format all filespnpm clean
: Clean all dependencies
pnpm changeset
: Create a new changesetpnpm version-packages
: Update package versionspnpm publish-packages
: Publish to registry
The project includes configurations for:
- ESLint for code linting
- Prettier for code formatting
- TypeScript for type checking
- Changesets for version management
The repository includes configurations for:
- VSCode
- Cursor
- Zed
This project is optimized for development using Cursor, a modern IDE built for AI-assisted development. The repository includes .cursorrules
configuration to ensure consistent development experience across the team.
The repository uses Cursor's Agent mode for advanced development assistance:
.agent/
directory is git-ignored and used by Cursor Agent for:- Task tracking
- Development plans
- Contextual information
- Specifications
To get the most out of Cursor's AI features, add the following documentation to your Cursor Settings (Settings → Cursor Settings → Features → Docs):
-
Recall TypeScript SDK
https://docs.recall.network/tools/sdk/javascript
-
Recall Rust SDK
https://docs.recall.network/tools/sdk/rust
-
TypeDoc Documentation
https://typedoc.org/
-
Turborepo Documentation
https://turbo.build/repo/docs
- Use Agent mode when working on complex features or refactoring
- Let the Agent create development plans in
.agent/developer_plan.md
- For new features, have the Agent create specifications in
.agent/spec.md
- Reference GitHub issues in Agent-generated specs for traceability
- Review and approve Agent-generated plans before implementation
- The Agent can help navigate the monorepo structure
- Use Agent mode for code generation that follows project patterns
- Let the Agent assist with documentation and test creation
- Agent can help ensure compliance with project standards
Here are some useful prompts to help you work with the Cursor Agent:
Use the gh CLI to read and then create a spec for a project to fix this issue: https://github.com/recallnet/js-recall/issues/126
Review the changes in the current branch and create a PR description that follows our standards. Include a summary of changes, testing notes, and any breaking changes.
Create a development plan for implementing feature X. Break it down into phases and include any necessary research links or documentation references.
Help me understand how the authentication flow works in this codebase. Show me the relevant files and explain the process.
Review my changes and suggest appropriate test cases. Include unit tests, integration tests, and edge cases we should consider.
PRs accepted. Please ensure your changes follow our coding standards and include appropriate tests.
Small note: If editing the README, please conform to the standard-readme specification.
MIT OR Apache-2.0, © 2025 Recall Contributors