Download the PHP package bayuasrori/ultramod without Composer

On this page you can find all versions of the php package bayuasrori/ultramod. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package ultramod

# Ultramod **A code-first modular application platform for Laravel.** Install apps. Extend them without forking. Keep writing normal Laravel. [![Laravel](https://img.shields.io/badge/Laravel-13.x-FF2D20?style=flat-square&logo=laravel)](https://laravel.com) [![PHP](https://img.shields.io/badge/PHP-8.2%2B-777BB4?style=flat-square&logo=php)](https://php.net) [![Tests](https://img.shields.io/badge/tests-89%20passing-brightgreen?style=flat-square)]() [![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)]() *"Apps are code. The platform provides infrastructure. Applications provide behavior. Apps should be extensible without being forked."*

Why Ultramod?

Every Laravel project rebuilds the same things: auth, roles, settings, audit logs, file handling, a dashboard, a navigation menu. Ultramod ships all of that as platform capabilities — and gives you a module system where applications are regular Laravel code living in apps/, independently installed, enabled and removed.

The one thing you must see: an app can extend another app without touching its source code. Upgrade the base app; the extension keeps working. That is the whole point of this project.

It's just Laravel

No DSL. No visual builder. No schema builder. No magic abstraction layer.

An Ultramod app contains the things you already know:

Open any app and you will think: "this is just Laravel." That is deliberate.

Start a project

That is the whole install. create-project generates the app key, creates database/database.sqlite, runs the migrations, seeds the admin account and scans apps/ — so the platform is up on the first run.

Not on Packagist yet? Point Composer straight at the repository:

Log in at http://localhost:8000 with the seeded admin:

Email Password
[email protected] password

The first user to self-register on a fresh install automatically becomes the super admin.

A new project starts with every bundled app discovered but not installed — the launcher is empty on purpose. Install what you actually want:

...or do it from Apps in the navbar.

Prefer a different database? Set DB_CONNECTION in .env before the first php artisan migrate --seed.

Working on Ultramod itself

Meet the starter apps

Six working applications ship in the box — not skeletons, real features:

App What you get
Notes Markdown notes, tags, search, attachments, revision history + restore
Kanban Boards, columns, drag-and-drop tasks, priority, due dates, assignees, tags
Calendar Month grid, events, all-day, locations, attendees, reminders
Bookmarks Collections, tags, favorites, search, async metadata/favicon fetching (queued)
AI Assistant Conversations, chat UI, OpenAI-compatible + Ollama, per-app settings
Notes Status The showcase extension — see below

Enable what you need, ignore the rest:

The showcase: Notes + Notes Status

This is the architectural proof the platform is built around.

notes-status is a separate package that adds a status workflow (Draft → Review → Published → Archived) to Notes. It owns its own tables (note_statuses, note_status_assignments), defines its own permissions, and injects its UI into Notes pages — without changing a single line of Notes code.

Try the full lifecycle yourself:

How extensions plug in

Four small, intentional mechanisms — all Laravel-native:

Mechanism How
Events Apps dispatch NoteCreated, NoteUpdated, …; extensions listen. The app never knows who's listening.
UI slots Apps render <div>@extensionslot('note.metadata', ['note' => $note])</div>; extensions register views for that slot. Generic — no app names hardcoded.
Permissions Extensions declare notes-status.view etc. in their manifest; the platform registers gates automatically.
Menus Any enabled app can contribute nav entries via MenuProvider.

Build your own app in 60 seconds

Scaffolds a working skeleton under apps/weather/ — service provider, controller, route, view, migration folder, manifest, Composer autoload entry — then install & enable it from the dashboard or CLI.

Want full CRUD? Use the scaffolder in the web UI (/platform/apps/create): enter a table name and columns, and Ultramod generates migration, model (fillable + casts), controller, form request with validation, resource routes and Bootstrap index/form views. Generated code is ordinary Laravel — edit it freely.

Column types are the common ones only: string, text, integer, float, decimal, boolean, date, datetime. id, created_at and updated_at are generated for every table and cannot be declared by hand.

Core capabilities

Infrastructure every app consumes — no app rebuilds these:

Capability What it provides
Identity & Auth Login/register/logout (rate-limited), login history, profile, password change
Roles & Permissions Roles UI, per-app permission catalogues, dynamic gates, super-admin bypass. Apps just declare notes.create and call $user->can('notes.create')
Settings SettingsManager — platform-wide and per-app key/value settings with cache
Files FileManager — upload/download/delete with metadata; morph attachments to any app model
Audit log AuditLogger — actor, action, target, metadata for every meaningful event
App registry Discovery, lifecycle, version constraint checks, dependency graph

All admin pages (users, roles, apps) are Bootstrap, responsive, and permission-gated.

App lifecycle

Upgrading an app

Bump the version in platform.json, ship the new code, and the dashboard shows 1.0.0 → 1.1.0 · upgrade available next to the app with an Upgrade button. Clicking it opens the plan — pending migrations, upgrade steps, permission changes, apps that have to come along — and confirming runs the whole thing:

Data migrations that belong to one version live next to the app, and are returned the way a Laravel migration is returned — no autoload entry needed:

Going from 1.0 to 1.2 runs the 1.1 steps and then the 1.2 steps — versions are never skipped. Every step is recorded in platform_app_upgrades, so a step that already succeeded is not run again and a half-failed upgrade can simply be retried. If a step throws, the version is not bumped, the migration batch is rolled back and the error is shown on the dashboard.

An app that depends on the one being upgraded either comes along in the same plan or the upgrade is refused — notes-status ^1.0 will not be left behind on notes 2.0.

Manifest presentation fields

How an app shows up in the launcher and the navbar is declared, not hardcoded:

Field Effect
icon What sits in the launcher tile. Falls back to the app's initials.
color Tile colour, #rrggbb. Falls back to a colour derived from the app id, so every app looks distinct with no config.
menu_order Position in the navbar and the launcher, ascending. Defaults to 100; ties break on label.

These are mirrored into the registry by discovery, so editing them takes effect on the next page load — no upgrade, no cache clear.

Dependencies are declared in the manifest and enforced in every direction:

Project layout

Core owns platform_* tables. Apps own their own tables (notes, kanban_*, calendar_events, …). Extensions own the data they introduce — Notes Status never adds a column to notes.

Testing

Coverage includes app lifecycle & dependency rules, the Notes ⇄ Notes Status extension contract (install/enable/disable, data isolation, upgrade safety), auth (login, rate limit, registration), role/permission enforcement, and end-to-end feature tests for all starter apps.

Non-goals (on purpose)

Ultramod is a modular monolith, not a framework factory. It will never grow into a marketplace, low-code builder, plugin sandbox, or microservice runtime. If you're looking for Filament/Nova-style admin generation or a visual app builder, this is not that — and that's the point.

License

MIT


All versions of ultramod with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
laravel/framework Version ^13.17
laravel/tinker Version ^3.0
league/commonmark Version ^2.10
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package bayuasrori/ultramod contains the following files

Loading the files please wait ...