Skip to content

mwritter/os-presenter

Repository files navigation

OS Presenter Logo

OS Presenter

A powerful, cross-platform presentation software designed for live events, churches, conferences, and stage productions.

Version Platform License Status


⚠️ Early Development: This project is currently in early-stage development working towards an Alpha release. Features are actively being built and refined. Expect breaking changes and incomplete functionality.

Overview

OS Presenter is a desktop application that enables you to create, manage, and display professional presentations with rich multimedia content. With an intuitive interface and robust feature set, it's designed to handle the demands of live production environments.

IMG_20260119_131319

Key Features

  • 🎨 Rich Slide Editor: Create and edit slides with text, images, videos, and shapes
  • πŸ“š Media Library: Organize and manage your media assets in one place
  • 🎭 Live Show Mode: Present with confidence using a dedicated show view
  • 🎯 Flexible Object Editing: Position, resize, and style objects with precision
  • 🎨 Advanced Typography: Access system fonts with support for font variants and styling
  • πŸ–ΌοΈ Multiple Object Types: Support for text, images, videos, and custom shapes
  • πŸ’Ύ Persistent Storage: Automatically save your work with local storage
  • ⚑ Native Performance: Built with Rust backend for speed and reliability
  • πŸ–₯️ Cross-Platform: Works on macOS, Windows, and Linux

Technology Stack

Frontend

  • React 19 with TypeScript
  • React Router for navigation
  • Zustand for state management
  • Tailwind CSS for styling
  • Shadcn UI for accessible components
  • Motion for animations
  • React Moveable for object manipulation

Backend

  • Tauri 2.0 - Native desktop framework with Rust
  • Custom Plugins for system integration (fonts, etc.)

Installation

Releases are not yet available. Once we reach our Alpha milestone, pre-built installers will be available for download for macOS, Windows, and Linux.

For now, you can build from source if you'd like to try the software or contribute to development. See the Building from Source section below.

Building from Source

Prerequisites

Before building, ensure you have the following installed:

  • Node.js (v18 or higher)
  • npm or pnpm
  • Rust (latest stable version)
  • Tauri CLI dependencies for your platform (see Tauri prerequisites)

Setup

  1. Clone the repository:
git clone git@github.com:mwritter/os-presenter.git
cd os-presenter
  1. Install dependencies:
npm install
  1. Run in development mode:
npm run tauri dev

Creating a Production Build

To create a production build:

npm run tauri build

This will create platform-specific installers in src-tauri/target/release/bundle/.

Development

Project Structure

presenter-final/
β”œβ”€β”€ src/                      # React frontend source
β”‚   β”œβ”€β”€ components/          # React components
β”‚   β”‚   β”œβ”€β”€ feature/        # Feature-specific components (slides, color picker)
β”‚   β”‚   β”œβ”€β”€ presenter/      # Main presenter UI components
β”‚   β”‚   └── ui/            # Reusable UI components
β”‚   β”œβ”€β”€ stores/            # Zustand state stores
β”‚   β”œβ”€β”€ services/          # Business logic and services
β”‚   └── hooks/             # Custom React hooks
β”œβ”€β”€ src-tauri/              # Rust backend
β”‚   β”œβ”€β”€ src/               # Rust source code
β”‚   └── plugins/           # Custom Tauri plugins
└── public/                # Static assets

Available Scripts for Development

  • npm run dev - Start React development server only
  • npm run tauri dev - Start full application in development mode (recommended)
  • npm run build - Build the React app for production
  • npm run tauri build - Build the complete application with installers
  • npm run storybook - Run Storybook for component development and testing

Storybook

Component documentation and testing is available through Storybook:

npm run storybook

Visit http://localhost:6006 to browse components.

Features in Detail

Slide Editor

Create and edit presentation slides with a powerful WYSIWYG editor. Add text, images, videos, and shapes with precise control over positioning, sizing, and styling.

Media Library

Manage all your presentation assets in a centralized library. Import media files and quickly add them to your slides.

Show View

Present your slides with a dedicated show interface designed for live production. Navigate through slides smoothly and manage your presentation flow.

Object Editing

Each slide object (text, image, video, shape) can be individually edited with:

  • Position and size controls
  • Rotation and transformation
  • Layer ordering (bring forward/send backward)
  • Color and style customization
  • Font and typography settings (for text)

Custom Shapes

Built-in shape library including:

  • Rectangles
  • Circles/Ellipses
  • Triangles
  • And more...

Plugin System

Presenter uses custom Tauri plugins to extend functionality:

  • font-variants: System font integration with support for font families and variants

Development Status

Current Stage: Pre-Alpha β†’ Alpha

We are actively working towards our first Alpha release. Current focus areas:

  • βœ… Core slide editing functionality
  • βœ… Media library management
  • βœ… Basic object manipulation (text, images, shapes, videos)
  • 🚧 Show/presentation mode improvements
  • 🚧 Performance optimizations
  • 🚧 Additional output options
  • πŸ“‹ Multi-screen support
  • πŸ“‹ Advanced transitions and effects
  • πŸ“‹ Template / Theme system

Legend: βœ… Implemented | 🚧 In Progress | πŸ“‹ Planned

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Development Guidelines

  1. Follow TypeScript best practices
  2. Use existing UI components from src/components/ui/
  3. Maintain consistent code style
  4. Test your changes thoroughly

Acknowledgments

Built with Tauri, React, and other amazing open-source technologies.


Note: This project is in early-stage development working towards an Alpha release. Features, APIs, and file formats may change significantly. Not recommended for production use yet.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages