Skip to content

About

This project aims to make speakers' life easier by supplying an app to remotely control their slideshow.

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

1 watching

Forks

 
 

Latest commit

 

History

657 Commits

Folders and files

Repository files navigation

TalkControl

version license open issues CI develop

TalkControl lets speakers remotely control their slideshow from any device — phone, tablet, or second screen — via a web interface synchronized with the presentation.

Requirements

  • Node.js 24 (LTS)
  • npm 10+

Getting started

npm install --legacy-peer-deps
npm start

Then open a browser at http://localhost:3000 (controller).

The app starts three services in parallel:

Service Port Description
Controller 3000 Remote control interface (Vite dev server)
Server 3001 Express 5 WebSocket server
Showcase 3002 Static file server for the presentation

Development

# Run in watch mode
npm run test:watch

# Unit + integration tests (Vitest, jsdom)
npm test

# Web component tests (Vitest browser mode, Playwright)
npm run test:components

# End-to-end tests (Playwright)
npm run test:e2e

# Build for production
npm run build

# Lint (ESLint 9 flat config)
npm run lint

# Coverage report
npm run coverage

Documentation

npm run docs:dev    # Local VitePress dev server
npm run docs:build  # Build static docs

Tech stack

Concern Tool
Runtime Node.js 24 LTS
Language TypeScript (strict)
Bundler Vite 5
Server Express 5 + Socket.IO 4
Tests Vitest 4 (jsdom + browser mode), Playwright
Linter ESLint 9 flat config
Docs VitePress

Contribute

See CONTRIBUTING.md for commit conventions and pull request guidelines. Issues: github.com/sfeir-open-source/talk-control/issues

Troubleshoot

Error: listen EADDRINUSE :::3001 — another process holds the port:

lsof -i :3001
kill -9 <PID>

About

This project aims to make speakers' life easier by supplying an app to remotely control their slideshow.

Resources

Code of conduct

Contributing

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages