/slidr

Interactive presentation framework

Primary LanguageTypeScriptISC LicenseISC

Slidr

CI/CD codecov

Crazy interactive presentation framework 🎉

Start using Slidr now:
https://slidr.app



Presentation

Main presentation view



Speaker

Speaker view with notes



Audience

Mobile friendly audience view... go ahead, throw some confetti on the main screen 🎉!



Quickstart

  1. Create an account at https://slidr.app/signin
  2. Upload a 16x9 pdf presentation to https://slidr.app/upload
  3. Enjoy!

Dev

Install

pnpm run install

Build

pnpm run build

Debug

Debugging in dev mode uses local emulators for the database, storage, and authentication. This allows the development to work offline (note that the fonts may not get loaded when offline).

💡 A magic signin button will appear on the signin page when running in development mode to replace the email link signin.

pnpm run dev

Lint

pnpm run lint

Test

Testing uses the emulator suite to enable tests to run locally (no internet connection required) and predictably.

pnpm run test

In order to pass parameters to vitest other than those in the test script, the emulators and vitest should be started in separate terminal instances:

pnpm run emulators
pnpm run test:start [args for vitest]

E2E Tests

pnpm run test:e2e

Snapshots are platform dependent. To update the snapshots with docker (required when developing with mac):

docker run --rm --network host -v $(pwd):/work/ -w /work/ -it mcr.microsoft.com/playwright:jammy /bin/bash
# host is now at 192.168.5.2 or host.docker.internal
npm install -g pnpm
apt update
apt install default-jre
# I don't think this is needed with the pnpm.override in the package.json
# remove @vite-pwa/assets-generator from package.json
# or apt install default-jre libvips libvips-dev build-essential
pnpm install
pnpm run test:e2e:snapshots

Build

Create a production build:

pnpm run build

💡 Several environment variables are required to build a working site. See .env.emulator for a list of required environment variables.

Deployment

The main branch is automatically deployed to the staging environment: https://staging.slidr.app

The production branch is automatically deployed to the production environment: https://slidr.app