nimble

Security

Morning Signal is designed to be safe to demo publicly in DEMO_MODE=true. Live mode requires provider credentials and should be handled carefully.

Secrets

Never commit:

Use hosting-provider environment variables for live deployments.

Public Demo Mode

The public Vercel deployment should run with:

DEMO_MODE=true

In demo mode, the app uses deterministic fixtures and does not require Nimble or OpenAI secrets.

Live Mode

Live mode requires:

NIMBLE_API_KEY=
OPENAI_API_KEY=

Keep these values server-side only. They must never be sent to the browser.

URL Safety

Company discovery validates public HTTP/HTTPS URLs and rejects private/local hosts. Keep this protection if you extend the app to fetch arbitrary URLs.

Email Safety

Newsletter delivery uses an allowlist through:

NEWSLETTER_ALLOWED_RECIPIENTS=

Do not remove the allowlist unless you add authentication, abuse prevention, and rate limiting.

Reporting Issues

If you find a security issue, do not open a public issue with sensitive details. Contact the repository owner privately.