processing / processing/p5.js-web-editor
improvement: simplify local development by replacing external services with Docker alternativess
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 1.7k
- Forks
- 1.7k
- Avg merge
- 3d 4h
- Merged PRs (30d)
- 8
Description
Increasing Access
This improvement increases access by lowering the barrier for new contributors
to set up a local development environment. Currently, contributing to features
like file uploads or email verification requires creating AWS and Mailgun
accounts — both of which may require credit cards and can be confusing for
first-time open source contributors, students, or people in regions where
these services are restricted.
By replacing these with zero-config Docker alternatives (MinIO for S3, MailHog
for email), any contributor can run the full application locally with a single
docker compose up — no accounts, no credit cards, no 30-minute setup detours.
Feature enhancement details
Problem
Setting up the p5.js Web Editor for local development currently requires
creating accounts and generating API keys for external paid/third-party
services .This creates unnecessary
friction for contributors.
The two biggest pain points are:
1. AWS S3 (file uploads)
The contributor_docs/s3_configuration.md guide requires contributors to:
- Create an AWS account
- Create an S3 bucket
- Configure bucket CORS policy
- Create an IAM user with S3 permissions
- Generate and copy access keys into
.env
This is a ~30-45 minute detour just to test the file upload feature locally.
2. Mailgun (email)
Email features (signup verification, password reset) require:
- Creating a Mailgun account
- Registering and verifying a domain
- Generating an API key
Currently server/utils/mail.ts throws an error at startup if
MAILGUN_KEY is missing, meaning contributors working on unrelated
features still cannot run the server without a Mailgun key.
Proposed Solution
Add local service alternatives to docker-compose-development.yml that
require zero external accounts:
S3 → MinIO
MinIO is a fully S3-compatible object storage server
that runs in Docker. The existing AWS SDK code works with it unchanged —
only the endpoint needs to point to the local container.
minio:
image: minio/minio
command: server /data --console-address ":9001"
ports:
- '9000:9000'
- '9001:9001'
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
volumes:
- miniodata:/data
.env.example defaults for local dev:
AWS_ACCESS_KEY=minioadmin
AWS_SECRET_KEY=minioadmin
AWS_REGION=us-east-1
S3_BUCKET=p5-local
S3_ENDPOINT=http://minio:9000
S3_BUCKET_URL_BASE=http://localhost:9000/p5-local
A small init script or startup instructions in the docs would handle
bucket creation and CORS on first run via the MinIO console at
http://localhost:9001.
Mailgun → MailHog
MailHog is a local SMTP server
that captures all outgoing emails and displays them in a web UI at
http://localhost:8025. No emails are actually sent.
mailhog:
image: mailhog/mailhog
ports:
- '1025:1025' # SMTP
- '8025:8025' # Web UI
server/utils/mail.ts would need a small change to use SMTP transport
when a SMTP_HOST env var is set, falling back to Mailgun in production:
SMTP_HOST=mailhog
SMTP_PORT=1025
Benefits
- New contributors can run the full application including uploads and
email with a single docker compose up - No AWS account, no Mailgun account, no credit card required
- Production behavior is unchanged — these are dev-only defaults
- Significantly lowers the barrier for first-time contributors
Related Files
- contributor_docs/installation.md
- contributor_docs/s3_configuration.md
- server/utils/mail.ts
- docker-compose-development.yml
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with docker-compose-development.yml, contributor_docs/installation.md, contributor_docs/s3_configuration.md, and server/utils/mail.ts. Run the existing development Compose setup and trace the upload and email configuration paths. Done means local development can use the documented Docker services without AWS or Mailgun credentials while production behavior remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, javascript
- Domain
- developer-experience, devops, infrastructure
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100