Installing dependencies

The server is all based on effect and nodejs.

effect and @effect/platform are the core building blocks shared with api-client.

On top of that, the server uses also:

  • @effect/platform-node: executes nodejs APIs with effect
  • @effect/sql: core SQL database abstraction
  • @effect/sql-pg: postgres specific SQL database implementation
  • @effect/sql-drizzle: Drizzle implementation with effect

The server used Drizzle to define the database, manage migrations and execute queries:

pnpm add drizzle-orm drizzle-kit

Paddle provides a node SDK client used in the project to verify the webhook signature:

pnpm add @paddle/paddle-node-sdk

The other dependencies are:

  • dotenv: loads environment variables from a .env file
  • pg: postgres client

server also includes the shared API definition from @app/api-client.

package.json
"dependencies": {
  "@app/api-client": "workspace:*",
  "@effect/platform": "^0.69.9",
  "@effect/platform-node": "^0.64.10",
  "@effect/sql": "^0.18.10",
  "@effect/sql-drizzle": "^0.16.10",
  "@effect/sql-pg": "^0.18.10",
  "@paddle/paddle-node-sdk": "^1.7.0",
  "dotenv": "^16.4.5",
  "drizzle-kit": "^0.25.0",
  "drizzle-orm": "^0.34.1",
  "effect": "^3.10.4",
  "pg": "^8.13.0"
}