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
Frontend
redberry/mailbox-for-laravel
cursor
mail
testing
email
development
laravel
inbox
redberry
mailbox-for-laravel

Rules for working on Vue/TS/CSS frontend code in resources/

Install
php artisan boost:add-skill redberry/mailbox-for-laravel

Save this content to: .cursor/rules/frontend.md

# Frontend Rules

The package runs a fully isolated Vue 3 application that must not interfere with the host app. **Inertia.js is not used** — the Vue app is standalone and talks to the package's own JSON endpoints via axios.

- Entry point: `resources/js/dashboard.js` — creates its own Vue app instance
- Initial state is embedded as JSON by the Blade layout (`<script id="mailbox-data" type="application/json">`) and parsed at boot
- Shared state lives in `resources/js/lib/mailboxStore.ts` (a plain reactive object) — components read/mutate the store directly, no prop drilling
- All assets build to `public/vendor/mailbox/` (NOT `public/build/`)
- Hot file at `public/vendor/mailbox/mailbox.hot`
- UI components use Reka UI (radix-vue successor)
- TailwindCSS v4 — classes must be scoped/prefixed to avoid host app collisions
- Use `<script setup>` with TypeScript for all new files
- Define data interfaces in `resources/js/types/mailbox.ts`
- The Vue app must NOT import anything from the host Laravel application
- Use `axios` for all server interactions; build URLs with `mailboxUrl(path)` from the store so the configurable `mailbox.path` prefix is respected
- Accessibility: use semantic elements, keyboard navigation, focus management

Frontend Rules

The package runs a fully isolated Vue 3 application that must not interfere with the host app. Inertia.js is not used — the Vue app is standalone and talks to the package's own JSON endpoints via axios.

  • Entry point: resources/js/dashboard.js — creates its own Vue app instance
  • Initial state is embedded as JSON by the Blade layout (<script id="mailbox-data" type="application/json">) and parsed at boot
  • Shared state lives in resources/js/lib/mailboxStore.ts (a plain reactive object) — components read/mutate the store directly, no prop drilling
  • All assets build to public/vendor/mailbox/ (NOT public/build/)
  • Hot file at public/vendor/mailbox/mailbox.hot
  • UI components use Reka UI (radix-vue successor)
  • TailwindCSS v4 — classes must be scoped/prefixed to avoid host app collisions
  • Use <script setup> with TypeScript for all new files
  • Define data interfaces in resources/js/types/mailbox.ts
  • The Vue app must NOT import anything from the host Laravel application
  • Use axios for all server interactions; build URLs with mailboxUrl(path) from the store so the configurable mailbox.path prefix is respected
  • Accessibility: use semantic elements, keyboard navigation, focus management
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.
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums