Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Framework Laravel Package

salaab/framework

Salaab Framework is a PHP package offering a structured foundation for Laravel-style applications. It bundles reusable components and conventions to streamline setup, encourage consistent architecture, and help teams build maintainable web projects with less boilerplate.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Confirm the stack before installing. boost-tchiowa is a fork of Laravel Boost 12.x adapted for the Tchiowa framework (salaab/framework) without laravel/framework. It expects PHP ^8.4, illuminate/* ^10.x, bladeone ^4.9, Phinx ^0.13, plus Vite + Tailwind. If your project still pulls in laravel/framework, stop and resolve that first — this package is not a drop-in for a stock Laravel app.
  • Install as a dev dependency and let it ship the .ai/ tree (7 guidelines, 3 skills) and the mcp/tchiowa/ server into your project. Treat the .ai/ files as project config you will edit, not vendor code you never touch.
  • Look first at .ai/guidelines/core.md, then php-strict.md and illuminate.md. These describe the conventions the rest of the package (and your AI assistant) will assume. The three skills — crud-tchiowa, frontend-tchiowa, phinx-migration — are the fastest read for "what does a normal task look like here."
  • Wire up the MCP server. The committed mcp/tchiowa/dist/ is a Node stdio server exposing 4 tools. Point your client at dist/index.js in .mcp.json, opencode.json, and tchiowa.json (all three are registered by the package — see Gotchas). If you plan to modify the server, run npm install && npm run build inside mcp/tchiowa/.
  • Discover the console surface. v1.1.0 ships 17 commands under a Tchiowa console entrypoint. Start with the list command for your binary (php tchiowa list, or your project's equivalent) and read the DatabaseExporter command — it is the new piece and feeds schema context to the MCP tools.
  • First use case: open the CRUD skill, ask your assistant to scaffold one resource end-to-end (migration → model → controller → BladeOne views), and use the MCP tools to answer "what tables/columns exist" instead of pasting schema by hand.

Implementation Patterns

  • Guidelines as the assistant's rulebook. Reference the specific file in your prompt rather than the whole .ai/guidelines/ directory — e.g. "follow .ai/guidelines/phinx.md for this migration." The split (core / php-strict / illuminate / bladeone / phinx / frontend / pest) exists so you can load 1–2 relevant ones per task instead of burning context on all seven.
  • Skill-driven workflows. The three skills map cleanly onto the three recurring jobs:
    • crud-tchiowa → new resource scaffolding (controller + model + views + routes).
    • phinx-migration → schema changes via Phinx (^0.13), not Laravel migrations.
    • frontend-tchiowa → Vite/Tailwind assets and BladeOne templates. Invoke the skill explicitly ("use the phinx-migration skill") so the assistant pulls in the right conventions and file layout.
  • MCP tools for live app introspection. The 4 tools are the day-to-day value: use them for schema, config, and route/database questions so the assistant reads the real app instead of hallucinating table names. Keep DatabaseExporter output fresh (re-run the exporter command) before sessions where schema accuracy matters.
  • BladeFactory MODE_AUTO. With no laravel/framework, view resolution is handled by this factory. In MODE_AUTO it resolves conventional paths automatically — rely on it for standard resources, but fall back to explicit view names when a template sits outside the conventional tree (see Gotchas).
  • Guarded helpers. The illuminate helpers are wrapped in function_exists guards, so including them from multiple entrypoints (console, HTTP, MCP-adjacent scripts) is safe. Prefer them over re-implementing config()/env()-style shims — you get consistent behavior across the console and web paths.
  • Tooling as the quality gate. Run pint --test and phpstan (level 5) in CI. pint.json uses the Laravel preset, so formatting is one command: pint. phpstan.neon at level 5 is a reasonable floor for illuminate/* code — raise it per-directory rather than globally at first.
  • phinx.php + Dotenv. Migrations read config from .env through phinx.php. Keep DB credentials in .env locally; in CI, inject the same variables so phinx migrate doesn't fall back to defaults.

Gotchas and Tips

  • Three MCP registration files must stay in sync. .mcp.json, opencode.json, and tchiowa.json all point at the server. Edit one and your client may still launch an old path/args — update all three, or pick one as source of truth and script the rest.
  • dist/ is committed but can go stale. If a tool behaves differently from what src/index.ts says, rebuild (npm run build) before debugging. Add a CI check that dist is current relative to src.
  • DatabaseExporter is a data-leak and context-bloat risk. Scope it (exclude tables, limit columns/rows), and never commit exported schema or data dumps. A schema dump with PII in it will get pasted straight into an AI prompt.
  • BladeFactory MODE_AUTO can silently pick the wrong template. If a view renders content you didn't expect, name the view explicitly and check for a same-named file in a higher-priority path before assuming a caching bug.
  • Guarded helpers hide collisions. If you define your own helper with the same name, the guard may mean yours never loads (or never overrides). When a helper "does nothing," check definition order and whether the package's version won.
  • PHP 8.4 + illuminate/* ^10.x is a version-skew corner. Illuminate 10 predates 8.4; expect deprecation notices and occasional type strictness surprises. Pin your illuminate/* minors and run the test suite (Pest, per the guidelines) on 8.4 explicitly rather than trusting it implicitly.
  • Don't follow upstream Laravel Boost docs verbatim. This is a Tchiowa adaptation with no laravel/framework; artisan-centric instructions, laravel/framework service providers, and stock migration commands do not apply. Read .ai/guidelines/core.md as the authoritative "how this differs" doc.
  • Pint's Laravel preset may fight an existing codebase. Expect a large first-run diff. Either commit the reformat as an isolated PR or scope Pint to new/changed files until the rest catches up.
  • Phinx env loading is silent. If phinx.php can't see the expected env vars (e.g. in a container, cron, or CI without Dotenv context), it uses defaults instead of erroring — always verify the target database before running migrate/rollback.
  • Treat .ai/ as your extension point for conventions. When the team settles on a pattern the guidelines don't cover, add it to the relevant guideline or a new skill file. That is the intended customization surface, and it's what makes the assistant's output converge over time.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource