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
filepg
: 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"
}