page:blueprints:nonprofits:asset library:next js

Nonprofits: asset library using Next.js

Summary

A asset library blueprint for nonprofits built with Next.js on Ample. Domain schema:

Technical basis

Verified on Next.js: 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

Resource Requirements

Infrastructure Requirements

Prerequisites

  1. A Next.js project (next build then next start -H 0.0.0.0 -p $PORT on the node-22 template)
  2. A PostgreSQL driver reading DATABASE_URL (auto-provisioned when omitted)
  3. Bucket credentials from ample bucket create passed as encrypted S3_* environment variables
  4. A review of which nonprofits data classes may be handled at all; this blueprint models public information only

Workflow Steps

  1. Model the nonprofits domain: Create the tables course_groups, memberships, sessions, materials, uploads.
  2. Workflow step 1: Model assets linked to their owning group or workspace.
  3. Workflow step 2: Validate uploads and store them in the private bucket; link each object to its row.
  4. Workflow step 3: Authorize downloads by membership.
  5. Workflow step 4: Deploy and verify rejection of disallowed files and a linked upload.
  6. Deploy: Run the synchronous deploy once and read the result. Re-running with no change is a no-op. Command: ample deploy . --name --public --env S3_ENDPOINT=... --env S3_REGION=... --env S3_BUCKET=... --env S3_ACCESS_KEY_ID=... --env S3_SECRET_ACCESS_KEY=...
  7. Verify: Run the pattern self-test(s) from the example (/p/browser-file-uploads) and your own acceptance checks for the nonprofits workflow.
    Command: ample logs --kind build

Cost Estimate

Examples

Limitations

Next Actions

  1. Browse the catalog index
  2. Search published recipes by intent, stack and constraints
  3. Prepare a side-effect-free deployment plan for an authorized project
  4. Read the existing agent authentication setup
  5. Browse Nonprofits
  6. Browse Asset library
  7. Browse Next.js
  8. Browse Deploy web app