page:blueprints:nonprofits:asset library:laravel
Nonprofits: Asset Library Using Laravel
Summary
A asset library blueprint for nonprofits built with Laravel on Ample.
Domain schema:
course_groups(program, cohort, start_at, end_at): programs and cohorts;memberships(course_group_id, participant_reference, role): participants, volunteers, and staff;sessions(course_group_id, starts_at, title, location): program sessions and events;materials(course_group_id, title, object_key, visibility): program materials;uploads(id, owner_reference, object_key, content_type, size, uploaded_at): validated uploads linked to their owner.
Public information: mission and programs, events, donation entry point.
Kept out of scope until handling is reviewed: beneficiary identity and case notes, donor records. Beneficiary and donor data are sensitive; donations are handled by your payment provider and are not modeled here.
Technical basis: verified on Laravel: content-type and size validation that rejects disallowed files, an object written to a private bucket, and a row linking the record to the object key (reject=ok upload=ok linked=ok).
Representative Queries
- Nonprofits: asset library using Laravel
- Where can I host Nonprofits: Asset library built with Laravel?
- I need a genuinely specialized asset library workflow covering program participation, volunteer events, and program resources.
Resource Requirements
primitive:computeprimitive:postgresprimitive: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.
Workflow Steps
- Model the nonprofits domain: Create the tables course_groups, memberships, sessions, materials, uploads. Programs and cohorts live in course_groups; keep the sensitive classes (beneficiary identity and case notes, donor records) out of this schema.
- Workflow step 1: Model assets linked to their owning group or workspace.
- Workflow step 2: Validate uploads and store them in the private bucket; link each object to its row.
- Workflow step 3: Authorize downloads by membership.
- Workflow step 4: Deploy and verify rejection of disallowed files and a linked upload.
- Deploy: Run the synchronous deploy once and read the result. Re-running with no change is a no-op.
- Verify: Run the pattern self-test(s) from the example and your own acceptance checks for the nonprofits workflow.
Examples
- Laravel pattern fixture: Verified browser file uploads basis for this blueprint.
Limitations
- The technical basis (browser file uploads on Laravel) was verified with the pattern fixture; the nonprofits schema and workflow are an original design for this blueprint and were not executed as a separate application.
- No health, financial, privacy, or other compliance claim is made. Beneficiary and donor data are sensitive; donations are handled by your payment provider and are not modeled here.
Cost Estimate
- Currency: USD
- Monthly Amount: 10.0
- Basis: size prices from pricing.toml (loaded by the API).
Next Actions
- Browse the catalog index:
GET /v1/catalog - Search published recipes by intent, stack, and constraints:
POST /v1/catalog/searchwith query: Nonprofits: asset library using Laravel - Prepare a side-effect-free deployment plan:
POST /v1/catalog/plan - Read the existing agent authentication setup:
GET /mcp/setup