Skip to content

gurpreetkaits/screensense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScreenSense

Screen recording and sharing made simple. Record, share, and collaborate with instant shareable links.

License: MIT Laravel

What is ScreenSense?

ScreenSense is an open-source screen recording and sharing platform that makes it easy to capture your screen, automatically generate shareable links, and collaborate with your team. Built with modern web technologies, it provides a seamless recording experience with instant sharing capabilities.

Key Features

  • Screen Recording - Record your screen, browser tab, or application window with one click
  • Instant Sharing - Automatic shareable link generation after recording stops
  • Video Management - Organize, edit titles, and manage your recordings
  • Secure Sharing - 64-character cryptographic tokens for secure video sharing
  • Profile Management - Customize your profile with avatar, bio, and website
  • Comments & Engagement - Add comments and reactions to videos
  • Chrome Extension - Record directly from your browser with our extension
  • Video Streaming - Efficient streaming with range request support for instant seeking
  • HLS Adaptive Streaming - Multiple quality variants (360p to 4K) with automatic quality switching
  • Privacy Controls - Toggle videos between public and private
  • Subscription Support - Integrated with Polar.sh for premium features

Screenshots

Coming soon

Tech Stack

Backend:

  • Laravel 12 (PHP 8.3+)
  • MariaDB/MySQL
  • Spatie Media Library (file management)
  • FFmpeg (video processing)
  • Queue system for background jobs

Frontend:

  • Vue 3
  • Vite 5
  • Tailwind CSS 3
  • Vue Router 4

Browser Extension:

  • Chrome Extension Manifest V3
  • MediaRecorder API

Quick Start

Prerequisites

  • PHP 8.3 or higher
  • Composer
  • Node.js 18+ and npm
  • MariaDB or MySQL
  • FFmpeg (for video processing)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/screensense.git
    cd screensense
  2. Install backend dependencies

    composer install
  3. Install frontend dependencies

    cd frontend
    npm install
    cd ..
  4. Configure environment

    cp .env.example .env
    php artisan key:generate
  5. Update .env with your database credentials

    DB_CONNECTION=mariadb
    DB_DATABASE=screensense
    DB_USERNAME=your_username
    DB_PASSWORD=your_password
  6. Run migrations

    php artisan migrate
  7. Create storage link

    php artisan storage:link
    chmod -R 775 storage/ bootstrap/cache/
  8. Start the development servers

    You need three terminals running simultaneously:

    Terminal 1: Backend

    php artisan serve
    # Runs on http://localhost:8000

    Terminal 2: Frontend

    cd frontend
    npm run dev
    # Runs on http://localhost:3000

    Terminal 3: Queue Worker (for video processing)

    php artisan queue:work --queue=default --tries=3 --timeout=1800
  9. Open your browser Navigate to http://localhost:3000

FFmpeg Setup

Install FFmpeg for video processing:

macOS:

brew install ffmpeg

Ubuntu/Debian:

sudo apt install ffmpeg

Windows: Download from ffmpeg.org

Update .env with FFmpeg paths:

FFMPEG_BINARIES=/path/to/ffmpeg
FFPROBE_BINARIES=/path/to/ffprobe

Docker Setup (Recommended)

The easiest way to run ScreenSense is with Docker. No need to install PHP, Node, MariaDB, or FFmpeg manually.

Prerequisites

Quick Start with Docker

# Clone the repository
git clone https://github.com/yourusername/screensense.git
cd screensense

# Copy Docker environment file
cp .env.docker .env

# Make sail script executable
chmod +x sail

# Start all services
docker compose up -d

# Generate application key
./sail artisan key:generate

# Run migrations
./sail artisan migrate

# Create storage link
./sail artisan storage:link

Access the Application

Service URL
Frontend http://localhost:3333
Backend API http://localhost:8888

Using the Sail Helper Script

We provide a ./sail helper script that makes it easy to run commands inside Docker containers. This is not Laravel Sail - it's a lightweight wrapper script for convenience.

# Run artisan commands
./sail artisan migrate
./sail artisan queue:work
./sail artisan videos:convert-hls

# Run composer commands
./sail composer install
./sail composer require some/package

# Run PHP commands
./sail php -v

# Access the container shell
./sail shell

# Run tests
./sail test

# Open tinker
./sail tinker

Docker Compose Commands

# Start services
docker compose up -d

# Stop services
docker compose down

# View logs
docker compose logs -f

# View specific service logs
docker compose logs -f app
docker compose logs -f queue

# Rebuild containers (after Dockerfile changes)
docker compose build --no-cache
docker compose up -d

Docker Services

Service Description Port
app PHP-FPM application 9000 (internal)
nginx Web server 8888
db MariaDB database 3307
redis Cache & sessions 6380
queue Queue worker -
frontend Vite dev server 3333

Documentation

API Endpoints

Videos

  • GET /api/videos - List videos
  • POST /api/videos - Upload video
  • GET /api/videos/{id} - Get video details
  • GET /api/videos/{id}/stream - Stream video with range support
  • PUT /api/videos/{id} - Update video
  • DELETE /api/videos/{id} - Delete video
  • POST /api/videos/{id}/toggle-sharing - Toggle public/private
  • POST /api/videos/{id}/regenerate-token - Generate new share link

Sharing

  • GET /api/share/video/{token} - View shared video (public)

Profile

  • GET /api/profile - Get user profile
  • POST /api/profile - Update profile
  • DELETE /api/profile/avatar - Delete avatar

Contributing

We welcome contributions! Please see CONTRIBUTING.md for details on how to get started.

Development Workflow

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests (composer test)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to your branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Security

If you discover a security vulnerability, please review our Security Policy for responsible disclosure instructions.

Business Model

ScreenSense is open-source software with an optional commercial subscription service. The entire codebase is available under the MIT License, allowing you to:

  • Use it for free
  • Modify it for your needs
  • Self-host your own instance
  • Contribute improvements back

We offer a hosted subscription service at screensense.com with premium features:

  • Unlimited storage
  • Advanced analytics
  • Priority support
  • Custom branding
  • Team collaboration features

This model is similar to other successful open-source projects like GitLab, Ghost, and Cal.com.

License

ScreenSense is open-source software licensed under the MIT License.

Support

Acknowledgments

Built with amazing open-source technologies:

Roadmap

  • Mobile app (iOS/Android)
  • Real-time collaboration
  • Video editing features
  • Custom domains for sharing
  • Analytics dashboard
  • Team workspaces
  • API access for integrations

Made with ❤️ by the ScreenSense community

About

Screen Recording and sharing

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published

Contributors 3

  •  
  •  
  •