Projects

Shared infrastructure

The foundations behind connected applications and AI agents.

I build reusable services and libraries for identity, agent access, document processing, and deployment. SVC and PHR put those foundations to work in different domains, with explicit permissions, inspectable behavior, and practical operating constraints.

Work with the agent you use.

An agent needs a way to discover operations, understand their inputs, and act with the permissions you grant. The applications expose versioned REST APIs and explicit MCP tool catalogs, backed by the same application operations and access rules.

REST API · OpenAPI

Meta Muse and HTTP-capable agents

An agent can work directly with documented HTTP operations. For Meta Muse, this is the integration path: API documentation, an authorized connection, and instructions for the workflow it needs to complete.

MCP · Plugins

ChatGPT dots and compatible clients

MCP exposes a selected set of application tools. PHR includes a ChatGPT plugin package with connection settings and workflow instructions; a dot can use supported plugins enabled for its account.

Application operations and permission checks

Current access, granted scopes, validation, and domain rules apply whichever interface a client uses.

SVC

Workspace-scoped clients, projects, time, and billing.

PHR

Patient-scoped records, source documents, and review.

Two connection paths into application-owned workflows. Available actions depend on the configured client, the person's current access, and the permissions granted to the connection.

From a work session to a time entry

In SVC, an authorized agent can find a project and log time from the repository where the work happened. Idempotent writes make retries safe, and version checks prevent a stale edit from silently replacing a newer one. Invoice preparation has additional capability gates.

From a document to a reviewable proposal

In PHR, an authorized REST or MCP client can claim document-processing work, retrieve its source with an authenticated download, and return structured extraction results. Those results enter the application's review workflow; a person decides what to accept.

SVC agent interfaces PHR processing workflow ChatGPT dot connections

Shared services and open-source libraries.

Recurring needs across the applications earned reusable implementations. Each project has a defined responsibility, concrete consumers, and a source repository where its design can be inspected.

Identity service

auth-manager

A deployable identity provider for shared sign-in, passkeys, account administration, and the credential lifecycle.

Design decision

Centralize identity while each connected application retains its business data and fine-grained permissions. The provider controls admission to an application; the application decides what a person can do inside it.

Used by SVC, PHR, This site

View source

Authentication library

auth-laravel

Shared OAuth, passkey, consent, and account-security services for Laravel applications.

Design decision

Reuse protocol and credential handling across applications, with explicit adapters for local policy. Resource-bound credentials and scoped consent keep one integration from acquiring access to another.

Used by auth-manager, SVC, PHR, This site

View source

Agent integration library

mcp-laravel-bridge

Shared infrastructure for exposing an explicit MCP tool catalog alongside a versioned REST API.

Design decision

Keep application operations and their schemas aligned across interfaces. Applications own their tool catalogs, scopes, and domain rules; the bridge supplies transport, validation, and conformance helpers.

Used by SVC, PHR

View source

AI integration library

genai-laravel

A generative-AI client supporting multiple providers, document conversion, and execution by an external subscription client.

Design decision

Keep provider differences visible and support tenant-specific credentials. An external client can claim document-processing work over REST or MCP and return a structured result for application-owned review.

Used by PHR

View source

Deployment tooling

shared-cpanel-deployment

A reusable GitHub Action for deploying Laravel applications to versioned releases on shared hosting.

Design decision

Scope deployment locks, persistent storage, and scheduler changes to one application. Validate a candidate and verify the selected runtime, with explicit recovery behavior when a deployment is interrupted.

Used by auth-manager, SVC, PHR, This site

View source

Design for correctness, then grow deliberately.

Scalability starts with knowing which work can run independently, which state must be shared, and which operations must serialize. These are concrete decisions in the applications and libraries.

Concurrency and safe retries
SVC uses idempotency receipts, record versions, and deliberate lock ordering for billing operations. A repeated request can recover its original result, while a conflicting edit requires the caller to read the current state.
Bounded background work
PHR separates document processing from interactive requests. External workers claim leased work and renew it while processing. Worker concurrency and memory budgets need to fit the host, with a recovery path for an interrupted job.
Identity across processes
OAuth flows need shared state with atomic consumption when requests reach different workers. Revocation also has an availability cost: checking the identity provider freshly makes that provider part of the request's dependency chain. Caching decisions must account for stale access.
A measured path to more capacity
I would use request latency, queue age, memory headroom, database contention, and storage growth to decide when to resize a host or separate a workload. Supporting more traffic should follow an observed bottleneck and a verified capacity change.

Operating efficiently

Useful infrastructure on a small footprint.

For workloads that fit, I use AWS Lightsail instances with 2–4 GB of memory. Bundled compute, SSD storage, and data transfer provide a predictable baseline cost. Shared hosting is another deployment option for these Laravel applications; each workload needs an execution model its host supports.

AWS Lightsail Linux bundles with public IPv4 · 22 October 2026
Memory USD / month Included resources
2 GB $12 2 vCPUs 60 GB SSD 3 TB transfer
4 GB $24 2 vCPUs 80 GB SSD 4 TB transfer

These are published instance-bundle prices, not a total application bill. Transfer allowances vary by region; snapshots, overages, and other services contribute separately. The vCPUs have burstable capacity. AWS bundle specifications and CPU burst capacity.

  • Keep worker concurrency and per-process memory within the instance's actual headroom.
  • Use background processing for work that can wait, with an explicitly configured worker.
  • Run supported AI processing through external models or authorized subscription clients.
  • Reuse deployment and monitoring practices, and watch for memory pressure, queue growth, and sustained CPU demand.

Make deployment and recovery part of the design.

The shared deployment tooling grew out of operating several applications on one hosting account. It scopes changes to the application being deployed, preserves runtime storage, and verifies the selected release and its serving state.

Candidate validation
Validate configuration and the candidate runtime before activation, then verify HTTP and application-specific contracts after selection.
Persistent state
Uploads, credentials, and database state have a lifecycle separate from code releases. Backups and restore procedures need their own checks.
Explicit recovery
An interrupted deployment needs a known serving state and a deliberate recovery path. Rolling code back also depends on compatibility with any database changes.
Explore the applications