page:blueprints:architecture practices:client portal:laravel
Architecture practices: client portal using Laravel
A client portal blueprint for architecture practices built with Laravel on Ample. Domain schema:
- client_entities (name, entity_type, site_address): clients and project sites;
- projects (client_entity_id, project_name, stage, period_start, period_end): engagement periods by RIBA/AIA-style stage;
- drawing_sets (project_id, set_name, revision, object_key, issued_at): versioned drawing issues;
- approvals (project_id, drawing_set_id, approver_role, decided_at, decision): client sign-offs per issue;
- document_access (document_id, principal_reference, role, granted_at): who may read which document.
Public information includes: portfolio and services, team and accreditations, studio locations. Drawings and surveys are client-confidential until issued; the portal models per-project authorization only.
Representative Queries
- Architecture practices: client portal using Laravel
- Where can I host Architecture practices: Client portal built with Laravel?
- I need a genuinely specialized client portal workflow covering project phases, drawing versions and reviewer access.
Resource Requirements
- Compute
- Postgres
- S3-compatible object storage
Infrastructure Requirements
- Compute: Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.
- Postgres: Managed PostgreSQL 16 runs in its own microVM and is auto-provisioned when an app needs a database and no DATABASE_URL is supplied.
- S3-compatible object storage: Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary.
Framework and Workload
- Framework: Laravel
- Workload: Client portal
- Industry: Architecture practices
Prerequisites
- A Laravel project (composer install --no-dev from composer.lock, then FrankenPHP serving public/ (php-server with the index.php fallback) reading PORT on the php-8.5 template)
- A PostgreSQL driver reading DATABASE_URL (auto-provisioned when omitted)
- Bucket credentials from
ample bucket createpassed as encrypted S3_* environment variables - A review of which architecture practices data classes may be handled at all; this blueprint models public information only.
Tested Configuration
- Template: php-8.5
- Runtime: php
- Size: s-1vcpu-1gb
- Install: composer install --no-dev --prefer-dist --no-interaction --no-progress --optimize-autoloader
- Start: frankenphp php-server --listen :$PORT --root public
Workflow Steps
- Model the architecture practices domain: Create the tables client_entities, projects, drawing_sets, approvals, document_access.
- Model client entities and engagement periods; every document belongs to one engagement.
- Authorize by client entity and role before any storage access.
- Store documents in the private bucket and stream them through the app.
- Deploy and verify the negative authorization tests and an authorized download.
- Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
- Run the pattern self-test(s) from the example and your own acceptance checks for the architecture practices workflow.
Cost Estimate
- Monthly Amount: 10.0 USD
- Components:
- App server: s-1vcpu-1gb (5.0 USD)
- Managed PostgreSQL database: s-1vcpu-1gb (5.0 USD)
Limitations
- The technical basis (private document library on Laravel) was verified with the pattern fixture; the architecture practices schema and workflow are an original design for this blueprint and were not executed as a separate application.
- Public content and synthetic examples only until actual data-handling requirements have been reviewed.
Evidence Summary
- Canary Run: Laravel pattern fixture deployed on Ample; the private document library checks passed; this blueprint's schema and workflow build on that verified basis.
Next Actions
- Browse the catalog index
- Search published recipes by intent, stack, and constraints.
- Prepare a side-effect-free deployment plan for an authorized project.