Skip to content

oxen-io/websites

Repository files navigation

Session Websites

Session Websites is a collection of websites and libraries for the Session Web ecosystem.

Apps and Packages

This repository is a monorepo that contains multiple apps and packages. Each app and package is located in its own directory.

  • apps directory contains all the apps.
  • packages directory contains all the packages.

An app is a standalone application that can be run independently. A package is a library that can be used by other apps or packages.

This repository contains the following apps and packages:

Apps

Packages

  • @session/auth: Auth package for handling third-party authentication using NextAuth.js. Read more.
  • @session/contracts: Session smart contract js library for interacting with the Session smart contracts. Read more.
  • @session/eslint-config: eslint configurations. Read more. Read more.
  • @session/feture-flags: Feature flags library for Next.js apps. Supporting client, server, and remote flags. Read more.
  • @session/logger: An opinionated logging wrapper. Read more.
  • @session/sanity-cms: A Sanity CMS integration library. Read more.
  • @session/sent-staking-js: Session Token Staking js library for interacting with the Session Token staking backend. Read more.
  • @session/testing: A testing utility library. Read more.
  • @session/typescript-config: tsconfig.json configurations. Read more.
  • @session/ui: Session UI component library is a collection of UI components for Next.js apps and uses Tailwind CSS, Radix UI, and shadcn-ui. Read more.
  • @session/util-crypto: A crypto utility library for common crypto functions. Read more.
  • @session/util-js: A JS utility library for common functions. Read more.
  • @session/util-logger: A logger utility library for initializing the pino logger with @session/logger as a wrapper. Read more.
  • @session/wallet: A wallet library for interacting with the Session Token. Read more.

Utilities

Build

To build all apps and packages, run the following command:

pnpm build

Pre-requisites

We recommend using a node version manager like asdf to manage your node versions. The .tool-versions file in the root of the project specifies the node version to use. We also have an .nvmrc file that specifies the same node version to use. You can enable support for Using Existing Tool Version Files in asdf to use these files.

Getting Started

To get started, install the dependencies:

pnpm install

This will install all the dependencies for all the apps and packages.

Contributing

We welcome contributions to the Session Web Ecosystem. Please read our contributing guidelines for more information on how to contribute.

Development

You can find a README.md file in each app and package directory that explains how to develop and test that specific app or package.

Developer Telemetry

Some tools used in this repo have anonymous developer telemetry enabled by default. This is developer telemetry that tools creators use to report usage from developers and does not apply to any apps created using these tools. We have disabled all telemetry, you can ensure developer telemetry is disabled in all packages by running pnpm check-telemetry. We have disabled telemetry by aliasing the turbo command in the repository root with NEXT_TELEMETRY_DISABLED=1 DO_NOT_TRACK=1.

Testing

Our testing suite is a work in progress and any contributions are welcome.

Jest

We use Jest for unit testing. You can run the tests with the following command:

pnpm test

BrowserStack

This project is tested with BrowserStack.

BrowserStack is used for cross-browser, accessibility, and regression testing.