Security infrastructure for people who cannot fail safely.
Secure Pride is an open-source security project for LGBTQ+ communities and other people operating under elevated exposure, surveillance, or institutional risk.
It treats legal risk, identity exposure, cognitive load, limited staffing, and the cost of a wrong security decision as engineering inputs—not edge cases.
Visit the project · Use the AI Safety Scanner · Read the security policy · Contribute
A privacy failure is not equally recoverable.
For someone operating under elevated exposure:
- A leaked identity signal can create legal, employment, or personal risk.
- Behavioral telemetry can become a targeting mechanism.
- A control that assumes time, expertise, and ideal conditions can fail when it matters most.
Secure Pride designs from that condition outward.
| Surface | What it provides | Runtime / boundary |
|---|---|---|
| Secure Pride web platform | Public project entry point, documentation, and security resources | Astro on the secure-pride Worker |
| AI Safety Scanner | A manual check for known personal-data, credential, and prompt-injection patterns. A no-match is not clearance. | Rust engine as WASM on the Worker /api/scan route |
| Static distribution | Self-contained build for containerized local use | Docker serves the static build only |
| Security development controls | Contribution rules, AI-development guidance, architecture decisions, and release procedures | Version-controlled documentation |
Scope boundary:
/api/scanand/api/healthrun in the Worker, not in the Docker image.npm run devstarts Astro only.npm run deploybuilds the site, compilesfunctions/, and runswrangler deploy.
The AI Safety Scanner checks a draft you are authorized to share. Porcelain is the working surface. Charcoal marks the processing boundary and a result the scanner says to withhold. Fire opal fills the check. /api/scan calls the Rust engine compiled to WASM. The check cannot establish that text is safe.
These snapshots use the invented example only.
A review stays on porcelain and includes a redacted draft.
A withhold result is a charcoal plate. The findings name the pattern. They do not repeat the submitted text.
The same page at a narrow width.
| Invariant | Engineering consequence |
|---|---|
| Privacy is a baseline | No analytics, tracking, or behavioral telemetry; minimize sensitive data at design time. |
| Threats are adversarial | Model legal, social, institutional, and technical exposure; prefer safe defaults over convenience. |
| Accessibility is a security property | Design for cognitive load, imperfect conditions, and users who cannot rely on ideal workflows. |
| AI is not an authority | Treat AI output as untrusted input; verify generated code and security claims before use. |
| Production readiness matters | Validate code, security, accessibility, and documentation before release. |
flowchart LR
R[Elevated exposure] --> C[Engineering constraint]
C --> G[Guardrail]
G --> V[Verification]
R1[Identity leakage] --> C1[Minimize data collection]
C1 --> G1[No analytics or behavioral telemetry]
G1 --> V1[Code review and repository controls]
R2[Cognitive load] --> C2[Accessible security workflows]
C2 --> G2[Usable under imperfect conditions]
G2 --> V2[Accessibility validation]
R3[AI-assisted change risk] --> C3[AI output is untrusted]
C3 --> G3[Review, tests, and security checks]
G3 --> V3[Release gate]
A stated risk should produce a concrete engineering constraint, a guardrail, and a way to verify that the constraint is being enforced.
Built with Astro and deployed as the secure-pride Worker.
npm install
npm run dev
npm run build
npm run checknpm run dev starts the Astro server. It does not run /api/scan or /api/health. To run the Worker and the built site together:
npm run build
npm run build:worker
npx wrangler devFor the static container:
docker build -t secure-pride .
docker run -p 8080:8080 secure-pridePublished image: ghcr.io/secure-pride/secure-pride (releases before 2026-10-21: ghcr.io/mazze93/secure-pride). Release, scan-gate, and
publish pipeline: docs/DOCKER_IMAGE_WORKFLOW.md.
A change is not ready to merge unless it:
- Preserves the no-telemetry and sensitive-data-minimization baseline.
- Meets applicable accessibility, test, lint, and security checks.
- Documents changed behavior, threat assumptions, or operational procedures.
Read CONTRIBUTING.md, the AI Development Charter, and the Quick Reference before opening a pull request.
Do not open a public issue for a suspected vulnerability.
Report privately through GitHub Security Advisories (preferred) or email security@securepride.org. You will get an acknowledgment within 72 hours; the default public disclosure deadline is 90 days. See SECURITY.md for the full policy.
For non-security questions: hello@securepride.org.
Planned work is intentionally separate from the shipped surface.
- Reproducible, auditable container templates
- Privacy-preserving deployment pipelines
- Accessibility validation tooling
- Community security playbooks
See the project documentation for implementation milestones and historical work.
Apache License 2.0. See LICENSE.



