BusinessPress
Apr 5, 2026 7 min read 0 views

BusinessPress for Developers: API-First, Extensible, Modern

BusinessPress for Developers: API-First, Extensible, Modern

Most business platforms make you choose: either a polished drag-and-drop experience with zero flexibility, or a raw framework that requires months of custom development. BusinessPress rejects that tradeoff entirely.

Built on Laravel 12, powered by GraphQL, and equipped with a built-in MCP server for AI integration, BusinessPress is a full business platform that developers can actually extend, customize, and self-host — without sacrificing the out-of-the-box features that non-technical users need.

This post is a deep dive into what makes BusinessPress a serious developer platform. If you write code for a living — whether you're building for yourself or for clients — this is for you.

The Tech Stack: Modern, Familiar, Proven

BusinessPress doesn't reinvent the wheel. It leans on the tools that millions of developers already know and trust:

  • Laravel 12 — The PHP framework powering the core. If you know Laravel, you're already home.
  • Livewire — Reactive, server-driven UI components for the dashboard — no JavaScript framework required.
  • PostgreSQL — The database engine. Rock-solid, scalable, and fully self-hostable.
  • Twig Templates — For the page builder's rendering engine, with seven custom extensions for asset handling, auth, URLs, and component tags.
  • GraphQL (Lighthouse) — A complete API layer with auto-generated schemas from your data models.

No proprietary runtime. No vendor SDK you have to learn from scratch. Just standard tools with thoughtful abstractions on top.

GraphQL API: Query Any Business Entity

Every entity in BusinessPress — pages, products, orders, leads, blog posts, subscriptions — is queryable through a GraphQL API. The schema is auto-generated from PHP model definitions, so as you extend your data models, the API grows with them.

Here's a real query to list published products with pricing:

{
  product_multiple(first: 10) {
    data {
      id
      name
      slug
      excerpt
      featured
      thumbnail
      getPrice(interval: "monthly")
      isInStock
      categories {
        data {
          id
          name
        }
      }
    }
  }
}

Need a single page by slug?

{
  page_single(slug: "pricing") {
    id
    name
    slug
    status
    meta_title
    meta_description
  }
}

The API follows a consistent {type}_single / {type}_multiple convention. Once you know the pattern, you can query any entity type without checking docs every time.

BusinessPress exposes three GraphQL schemas — storefront (public), dashboard (authenticated), and system — so you can choose the right access level for your use case. The storefront schema automatically applies security scopes. For example, products are always filtered to published status on the public API:

public static function getStorefrontAutoScopes(): array
{
    return ['published'];
}

This means you can safely expose the storefront GraphQL endpoint without worrying about leaking draft or private data.

MCP Server: Connect AI Assistants to Your Business Data

BusinessPress ships with a built-in Model Context Protocol (MCP) server. This means AI assistants like Claude can directly read, create, and update your business data — products, pages, orders, leads, and all 124+ entity types — through a standardized interface.

The MCP server is a first-class feature, not a plugin. It's secured with Laravel Sanctum tokens and supports nine tools out of the box:

  • introspect_schema — Discover entity types and their fields dynamically
  • list_entities / get_entity / search_entities — Read your data
  • create_entity / update_entity / delete_entity — Write operations with 2-step confirmation
  • upload_file — Upload media from URL or base64
  • execute_graphql — Raw GraphQL escape hatch for complex queries

Connecting Claude to your BusinessPress instance takes one command:

claude mcp add businesspress \
  --url https://your-site.com/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

Once connected, you can ask Claude to do things like "create a blog post about our new product launch" or "list all orders from this week" — and it will use the MCP tools to interact with your actual data. Every write operation requires confirmation, so there's no risk of accidental changes.

This isn't a chatbot bolted onto a dashboard. It's a real API integration that lets AI assistants understand your entire business data model and work with it programmatically.

WordPress-Style Hooks and Filters

If you've ever built a WordPress plugin, you'll feel right at home. BusinessPress implements the same add_filter / apply_filters / add_action / do_action pattern — but on top of Laravel's service container.

Here's a real example from the codebase that adds a custom item to the dashboard sidebar:

// app/Providers/AppServiceProvider.php

add_filter('dashboard.sidebar.menu.settings', function ($menu) {
    $menu[] = [
        'label'       => translate('MCP'),
        'icon'        => 'phosphor-plugs-connected',
        'route'       => route('dashboard.mcp'),
        'route_name'  => 'dashboard.mcp',
        'is_active'   => is_current_route(['dashboard.mcp']),
        'user_scope'  => 'admin',
        'permissions' => ['only_admin'],
        'enabled'     => true,
    ];
    return $menu;
}, 10);

The hook system touches everything: sidebar menus, app settings, model fields, access control, and more. Some examples of available filter hooks:

HookWhat It Extends
dashboard.sidebar.menu.generalDashboard, Leads, Orders navigation
dashboard.sidebar.menu.contentPages, File Manager navigation
dashboard.sidebar.business.itemsProducts, Orders section
dashboard.sidebar.menu.settingsSettings, Integrations section
app-settingsApp settings definitions
{model}.wef.data-typesCustom fields per model

Hooks are also available inside Twig page-builder templates, so even your frontend templates can tap into the extension system.

Custom Dashboard Pages with Livewire

Need a custom dashboard page? BusinessPress makes it straightforward with Livewire components. You write a PHP class, a Blade view, register a route, and hook it into the sidebar.

Here's a simplified version of a real dashboard page — the MCP token management page:

namespace App\Livewire\Dashboard\Pages;

use Livewire\Component;
use Livewire\Attributes\Layout;
use BusinessPress\Core\Traits\Livewire\DispatchSupport;

class McpPage extends Component
{
    use DispatchSupport;

    public string $tokenName = 'MCP Token';
    public ?string $newToken = null;

    public function generateToken()
    {
        $token = Auth::user()->createToken($this->tokenName);
        $this->newToken = $token->plainTextToken;
        $this->notify(translate('Token created!'), 'success');
    }

    #[Layout('dashboard.layouts.main')]
    public function render()
    {
        return view('livewire.dashboard.pages.mcp', [
            'mcpEndpoint' => url('/mcp'),
        ]);
    }
}

Register the route and sidebar item in your AppServiceProvider, and you have a fully integrated dashboard page — complete with real-time updates, toast notifications, and the BusinessPress design system.

The key pattern: your app/ directory is where extensions live. The core platform is in packages/businesspress/. You never need to modify core code to add functionality.

Self-Hosting: Full Control, No Lock-In

BusinessPress is designed to run on your own infrastructure. There's no required cloud service, no usage-based pricing that scales with your traffic, and no phone-home telemetry.

Deployment is standard Laravel:

# Install dependencies
composer install
npm install && npm run build

# Configure environment
cp .env.example .env
php artisan key:generate

# Run migrations
php artisan migrate --seed

# Start development server
composer dev

You can run it on a $5/month VPS, a Kubernetes cluster, or anything in between. The database is PostgreSQL — widely supported, easy to back up, and scales with your business.

For agencies, this means you can deploy client sites on your own infrastructure and maintain full control over updates, backups, and scaling. No surprise price increases, no forced migrations, and no dependency on a vendor's uptime.

What You Can Build

Because BusinessPress combines a CMS, e-commerce engine, CRM, and API layer in one platform, the range of what you can build is broad:

  • Client websites with e-commerce — Pages, products, Stripe payments, lead forms — all managed from one dashboard.
  • Multi-vendor marketplaces — Built-in shop and vendor support with separate product catalogs.
  • Subscription businesses — Recurring billing, subscription management, and access control for gated content.
  • Headless frontends — Use the GraphQL API to power a Next.js, Nuxt, or any other frontend while keeping BusinessPress as your backend.
  • AI-powered workflows — Connect AI assistants via MCP to automate content creation, order management, or customer communication.
  • Custom internal tools — Build Livewire dashboard pages for any workflow your business needs.

Getting Started

If you're a developer who's tired of fighting with rigid platforms or stitching together a dozen SaaS tools, BusinessPress offers a different path: a real platform you can extend with code you understand.

Here's how to start:

  1. Clone and deploy — Standard Laravel setup. If you've deployed a Laravel app before, you know the drill.
  2. Explore the GraphQL API — Use the introspect_schema MCP tool or browse the auto-generated schema to see what's available.
  3. Extend the dashboard — Add a custom Livewire page. Follow the pattern in app/Livewire/Dashboard/Pages/.
  4. Connect an AI assistant — Generate a Sanctum token, add the MCP server to Claude, and start querying your data with natural language.

BusinessPress is API-first, extensible, and built for developers who want to move fast without giving up control. It's the business platform you'd build if you had the time — but don't have to, because it already exists.

Share this article:

Cart