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

Badaso Blog Module Laravel Package

uasoft-indonesia/badaso-blog-module

Badaso Blog Module extends the Badaso Laravel CMS with blog content management, including posts, categories, and tags, so you can create, organize, and publish articles from the admin dashboard.

View on GitHub
Deep Wiki
Context7

Getting Started

badaso-post-module is a Badaso CMS add-on that ships a blog/post domain (posts, categories, tags, comments) as a ready-made CRUD + API surface. It is not a standalone package — it only makes sense inside a Badaso application.

  1. Install into the same app as badaso/core:
    composer require uasoft-indonesia/badaso-post-module
    
  2. Run the module's migrations and seeders the Badaso way (not plain artisan migrate):
    php artisan badaso:migrate badaso-post-module
    php artisan db:seed --class=BadasoPostModuleSeeder
    
  3. Log into the Badaso admin at /admin, open Modules → badaso-post-module, and confirm the generated CRUDs (posts, post_categories, post_tags, post_comments) appear.
  4. First use case: create a category, create a post with a featured image, publish it, then hit GET /api/v1/posts to verify the public read path before wiring it into your frontend.

If you are upgrading from 2.3.x, start by aligning badaso/core to the version this release targets, then re-run php artisan badaso:migrate badaso-post-module and clear caches.

Implementation Patterns

  • Module-as-CRUD provider. The module registers Badaso CRUD entities; the admin UI, permissions, and API are all derived from those definitions. Extend behaviour by editing the generated CRUD config rather than forking controllers.
  • Frontend split. Keep the admin/authoring side in Badaso and consume posts through the JSON API in a separate SPA or Blade site. Treat /api/v1/posts as your contract and version-gate any custom fields you add.
  • Custom fields. Add columns via a new migration on posts, then update the CRUD definition so the admin form and API serializer pick them up. Prefer this over overriding the module's models.
  • Media handling. Use Badaso's media manager for featured images and store the returned path/id on the post; generate URLs in your own resource layer so storage driver changes don't ripple through templates.
  • Permissions. Wire post authoring to Badaso roles (e.g. editor, author) using the seeded permission entries; enforce ownership in a policy if authors should only edit their own posts.
  • Seeding content. For demo/staging environments, seed categories, tags, and a handful of posts through the Eloquent models — this doubles as a smoke test after the core update.

Gotchas and Tips

  • Version lock-step with badaso/core. 2.4.0 is essentially a core-alignment release. A mismatched core is the most common source of broken migrations, missing entities, and admin pages that render blank. Pin both packages and upgrade together.
  • Migrations must go through Badaso. Running php artisan migrate directly can leave the module's badaso_* bookkeeping tables out of sync; always use badaso:migrate.
  • Seeder omission = invisible module. If the module doesn't show in the sidebar or API returns 404s, the menu/permission seeder almost certainly wasn't run.
  • Clear caches after every upgrade: php artisan config:clear && php artisan cache:clear && php artisan route:clear. Badaso caches CRUD definitions aggressively, so stale config mimics bugs.
  • php artisan storage:link is required for featured images to resolve on the API — otherwise you get 404s on media URLs.
  • API shape is core-controlled. Response envelopes, pagination, and auth middleware come from badaso/core config; don't assume they're stable across core bumps — snapshot the JSON in tests before upgrading.
  • Slug and uniqueness. Post slugs are generated on save; adding multilingual or duplicate-title content can collide. Add a unique index and a suffix strategy if you allow drafts with identical titles.
  • Debugging tip. When the admin form misbehaves, inspect the CRUD definition JSON in the database (badaso_cruds / badaso_crud_data) first — most "module bugs" are data-definition drift after a core update.
  • Extension points. Override resource/serializer classes via config, add observers on post save for cache invalidation or sitemap pings, and use Badaso's event hooks for publish-state transitions rather than editing vendor code.
  • Watch the changelog granularity. Recent releases (like 2.4.0) are terse core-bumps; read the badaso/core diff, not just this repo's PR title, to know what actually changed.
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.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel