PHPackages                             redot/updater - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. redot/updater

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

redot/updater
=============

Update your redot dashboard with ease

v0.1.2(3w ago)1549MITPHPPHP ^8.1

Since Jul 16Pushed 3w agoCompare

[ Source](https://github.com/redot-src/updater)[ Packagist](https://packagist.org/packages/redot/updater)[ RSS](/packages/redot-updater/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (10)Versions (11)Used By (0)

Redot Updater
=============

[](#redot-updater)

🚨 **Experimental Package** - This package is currently in experimental status. Use with caution in production environments.

A Laravel package that provides seamless integration with [Redot.dev](https://redot.dev) dashboard scaffold. Keep your Redot-based Laravel project up to date with the latest scaffold improvements and features.

About
-----

[](#about)

Redot Updater is a command-line tool designed to help you maintain and update your Redot dashboard scaffold. It connects to the Redot platform to sync the latest updates, preview changes, and manage your project's evolution over time.

Requirements
------------

[](#requirements)

- PHP ^8.1
- Laravel ^10.0|^11.0|^12.0

Installation
------------

[](#installation)

Install the package via Composer:

```
composer require redot/updater
```

The package will automatically register its service provider via Laravel's package auto-discovery.

Usage
-----

[](#usage)

The package provides four main commands to manage your Redot dashboard:

### 1. Login to Redot

[](#1-login-to-redot)

Authenticate with your Redot account and get your project token and slug:

```
php artisan redot:login
```

This command will prompt you for your credentials and store the necessary authentication tokens for subsequent operations.

### 2. Logout

[](#2-logout)

Clear your stored authentication credentials:

```
php artisan redot:logout
```

### 3. Preview Changes

[](#3-preview-changes)

Generate a URL to preview the differences between your current project and the latest scaffold:

```
php artisan redot:diff
```

This command outputs a URL that you can visit on [Redot.dev](https://redot.dev) to review the changes before applying them.

### 4. Update Project

[](#4-update-project)

Update your project to the latest Redot scaffold:

```
php artisan redot:update
```

This command performs a **git-style 3-way merge**. It downloads two scaffold snapshots — your current commit (the "base") and the latest (the "incoming") — and merges each changed file against the version in your project using `git merge-file`. Files you have not touched update cleanly; files you have customized are merged with your changes preserved when possible.

**Default behavior**

By default the merge is applied to your project. When a file conflicts, the incoming changes are written with conflict markers in place (the same `` markers `git merge` produces). Open each conflicted file, resolve the markers, and commit. **You do not need to re-run `redot:update` afterwards** — the merge is already applied.

**Dry run**

To preview the merge plan without modifying any files, pass `--dry`:

```
php artisan redot:update --dry
```

This prints what would be written, deleted, or conflicted and exits without touching your project. Re-run without `--dry` to apply the merge.

**Resolving conflicts in your editor**

When your project is a git repository, conflicted files are also recorded as **unmerged entries in the git index** (the same stage 1/2/3 state a real `git merge` leaves behind). This makes editors treat them as genuine merge conflicts rather than plain modified files:

- In **VS Code** they appear under **Source Control → Merge Changes**, and opening one launches the built-in 3-way **Merge Editor** with *Accept Current / Accept Incoming / Accept Both* actions.
- `git status` reports them as unmerged (`UU`, or `DU` when the file was deleted upstream).
- The inline `` markers are still written to the file, so the CodeLens conflict bar works too — and editors without git integration fall back to those markers.

How it maps the three sides into the index:

StageSideSource1basethe scaffold version at your current commit2oursyour project's file before the merge3theirsthe latest incoming scaffold version (absent when the file was deleted upstream)Resolve each file as you normally would, then `git add` it to clear the unmerged state and commit. There is **no need to re-run `redot:update`** — the merge is already applied.

This step is best-effort: if the project is not a git repository (or a git command fails), the conflict markers in the files remain the source of truth and the update still completes.

**Commit Changes**

Even with the 3-way merge in place, it is still good practice to commit (or stash) your local changes before running the update command, so you can review the resulting diff and roll back if needed.

Limitations
-----------

[](#limitations)

⚠️ **Requires `git`**: The update command shells out to `git merge-file` for the 3-way merge, so the `git` binary must be on your `PATH`. Your project itself does not need to be a git repository — but if it is one, conflicts are additionally surfaced in your editor's Source Control view (see [Resolving conflicts in your editor](#4-update-project)).

⚠️ **Binary files are not merged**: `git merge-file` only handles text. When a binary file changes upstream, the incoming version replaces your copy (logged as `binary`). Back up any binaries you have customized before updating.

Contributing
------------

[](#contributing)

This is an experimental package. Contributions are welcome, but please note that the API and functionality may change significantly in future versions.

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE) for more information.

Disclaimer
----------

[](#disclaimer)

This package is experimental and should be used with caution. Always backup your project before running update commands. The package maintainers are not responsible for any data loss or issues that may occur during the update process.

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance94

Actively maintained with recent releases

Popularity19

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~41 days

Recently: every ~21 days

Total

9

Last Release

21d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/2fe62c6597d6411df01b9d1c769a0134d825b1462dc7bad4c2524d4150019a5a?d=identicon)[AbdelrhmanSaid](/maintainers/AbdelrhmanSaid)

---

Top Contributors

[![AbdelrhmanSaid](https://avatars.githubusercontent.com/u/70618755?v=4)](https://github.com/AbdelrhmanSaid "AbdelrhmanSaid (29 commits)")

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/redot-updater/health.svg)

```
[![Health](https://phpackages.com/badges/redot-updater/health.svg)](https://phpackages.com/packages/redot-updater)
```

###  Alternatives

[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17878.9k](/packages/markwalet-nova-modal-response)[crumbls/layup

A visual page builder plugin for Filament 5 — Divi-style grid layouts with extensible widgets.

592.7k2](/packages/crumbls-layup)[team-nifty-gmbh/tall-datatables

Server-side rendered datatables for Laravel and Livewire

1320.9k4](/packages/team-nifty-gmbh-tall-datatables)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
