The open-source quantitative modeling and data notebook.
Decipad is a low-code notebook that helps you gather data, build interactive models, and share reports. This repository contains the source code for the Decipad application.
Follow these instructions to get Decipad running on your local machine for development and testing purposes.
Before you begin, ensure you have the following installed:
- Node.js: Version 24.0.0 or higher. You can download it from the official Node.js website.
- Yarn: We use Yarn for package management. If you don't have it, you can install it globally via npm:
npm install -g yarn
- Rust and wasm-pack: Some parts of Decipad are written in Rust and compiled to WebAssembly.
- Install Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install wasm-pack:
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- Install Rust:
- Git: You'll need Git to clone the repository. You can download it from the official website.
-
Clone the repository:
git clone https://github.com/decipad/decipad.git cd decipad
-
Install dependencies:
yarn install
This command will install all the necessary packages for the monorepo.
-
Set up environment variables:
cp .env.example .env.local # Create backend environment file touch apps/backend/.env # Edit .env.local with your actual API keys and secrets # IMPORTANT: Set NEXTAUTH_URL to http://localhost:3000/api/auth and DECI_APP_URL_BASE to http://localhost:3000 in apps/backend/.env
To run the frontend and backend services simultaneously, use the following command:
yarn start
This will start the development servers, and a browser window should automatically open with the application.
This project uses environment variables for all sensitive configuration. Never commit real API keys or secrets to the repository.
- Copy
.env.example
to.env.local
- Fill in your actual API keys and secrets
- Never commit
.env.local
or any file containing real secrets
See SECURITY.md for detailed security information and best practices.
If you discover a security vulnerability, please report it responsibly:
- DO NOT create a public GitHub issue
- Email security concerns to: security@decipad.com
- We will respond within 48 hours
This project is a monorepo managed with Nx. All applications and libraries are located in the apps
and libs
directories, respectively.
apps/
: Contains the main applications, such as the frontend and backend.libs/
: Contains shared libraries and modules used across different applications.
Here are some of the most common scripts you'll use during development:
-
Running tests:
yarn test
-
Linting files:
yarn lint
-
Formatting code:
yarn format
-
Building all packages:
yarn build
For more advanced commands and to leverage the full power of Nx, please refer to the official Nx documentation.
For detailed instructions on setting up a local development environment, including AWS configuration, environment variables, and debugging, please see our Local Setup Guide.
For instructions on how to deploy the application to AWS, please refer to our Deployment Guide.
For instructions on how to set up a CI environment similar to our GitHub Actions workflows, please see our CI Setup Guide.
We welcome contributions from the community! If you're interested in contributing, please take a look at our contributing guidelines (coming soon).
All members of our community are expected to follow our Code of Conduct.
This project is licensed under the MIT License. See the LICENSE file for details.