# Vegan Grove Docs > How the Vegan Grove platform works, in the open ## Docs - [Architecture decision records](https://docs.vegangrove.org/architecture/adrs.md): The index of Vegan Grove's ADRs, the format they follow, and how a new one is added. - [ADR-0001: Polyrepo](https://docs.vegangrove.org/architecture/adrs/adr-0001-polyrepo.md): Vegan Grove is four repositories with one shared API, mirroring The Trick Book, with consistent names. - [ADR-0002: Backend hosting](https://docs.vegangrove.org/architecture/adrs/adr-0002-backend-hosting.md): The API runs on one EC2 t4g.micro with PM2 and nginx, chosen over Lambda because a fixed egress IP keeps the database allowlist closed. - [ADR-0003: Authentication](https://docs.vegangrove.org/architecture/adrs/adr-0003-auth.md): Members sign in with a password, a magic link, Apple, or Google, and every method produces the same opaque, revocable, server-side session. - [ADR-0004: Profiles never public](https://docs.vegangrove.org/architecture/adrs/adr-0004-profiles-never-public.md): There is no public profile page, no user lookup endpoint outside a friendship, and discovery is by invite code, not search. - [ADR-0005: Data minimization](https://docs.vegangrove.org/architecture/adrs/adr-0005-data-minimization.md): The complete list of personal fields Vegan Grove stores, the rule that device location never reaches the server, and EXIF stripping on the device. - [ADR-0006: Maps](https://docs.vegangrove.org/architecture/adrs/adr-0006-maps.md): Web and mobile maps use MapLibre with OpenFreeMap vector tiles, which need no API key, set no cookies, and collect no personal data. - [ADR-0007: No third-party analytics](https://docs.vegangrove.org/architecture/adrs/adr-0007-no-third-party-analytics.md): No analytics or tracking SDK on any client; product signals come from aggregate counters computed on the API. - [ADR-0008: Database](https://docs.vegangrove.org/architecture/adrs/adr-0008-database.md): MongoDB Atlas on the free M0 tier, accessed only from the API host, with every collection declared as a Mongoose schema. - [ADR-0009: Public repositories](https://docs.vegangrove.org/architecture/adrs/adr-0009-public-repos.md): All four repositories are public under a proprietary license, with GitHub push protection, secretlint on every commit, and gitleaks in CI. - [ADR-0010: Account deletion](https://docs.vegangrove.org/architecture/adrs/adr-0010-account-deletion.md): Deleting an account is a self-serve, immediate hard delete of everything tied to the member, shipped in v1. - [ADR-0011: Message encryption](https://docs.vegangrove.org/architecture/adrs/adr-0011-messages-encryption.md): Direct messages are encrypted at rest with a key outside the database and expire after 90 days; end-to-end encryption is the planned successor. - [ADR-0012: Companion](https://docs.vegangrove.org/architecture/adrs/adr-0012-companion.md): Ivy runs on the Anthropic API with streaming, knows only the member's handle and interests, and forgets unpinned conversations after 24 hours. - [ADR-0013: Media pipeline](https://docs.vegangrove.org/architecture/adrs/adr-0013-media-pipeline.md): Images upload directly to S3 with presigned URLs and serve through CloudFront; video uploads to Bunny Stream with short-lived credentials and plays as HLS. - [Auth and sessions](https://docs.vegangrove.org/architecture/auth-and-sessions.md): How members sign in with a password, a magic link, Apple, or Google, and how opaque server-side sessions replace JWTs. - [Data model](https://docs.vegangrove.org/architecture/data-model.md): The Mongoose collections behind Vegan Grove, how they relate, and which fields carry privacy rules. - [Architecture overview](https://docs.vegangrove.org/architecture/overview.md): The four-repo, one-API shape of Vegan Grove, what runs where, and the boundaries that protect member data. - [Repo dependency map](https://docs.vegangrove.org/architecture/repo-dependency-map.md): The contracts between the four repositories, which client modules call which API route groups, and the change rules that keep them in step. - [Tech stack](https://docs.vegangrove.org/architecture/tech-stack.md): Every runtime, framework, library, and design token Vegan Grove uses, with the version policy and the reason for each choice. - [API endpoints](https://docs.vegangrove.org/backend/api-endpoints.md): The v1 API surface grouped by resource with the auth level of each route, and which groups the scaffold implements. - [Configuration](https://docs.vegangrove.org/backend/configuration.md): Every environment variable the API reads, what it is for, the shape of its value, and how a bad environment fails at boot. - [Database](https://docs.vegangrove.org/backend/database.md): Mongoose 9 on Atlas M0, the collection set grouped by domain with privacy-relevant fields, and every TTL and geo index. - [Backend overview](https://docs.vegangrove.org/backend/overview.md): What the API is for, its stack, the source layout, and the request lifecycle from helmet to the error handler. - [Backend testing](https://docs.vegangrove.org/backend/testing.md): The API test stack, the test layout and helpers, what every route test must include, and the first-run download. - [Deployment overview](https://docs.vegangrove.org/deployment.md): Where each Vegan Grove component runs, what triggers a deploy, and the topology of the services around them. - [Backend deployment](https://docs.vegangrove.org/deployment/backend.md): The API host layout, PM2 and nginx, the deploy runbook with placeholders, rollback, and the health check. - [Cost sheet](https://docs.vegangrove.org/deployment/cost-sheet.md): The expected monthly cost of running Vegan Grove at MVP traffic, what drives each line, and the free tiers it relies on. - [Docs deployment](https://docs.vegangrove.org/deployment/docs.md): How this site builds and publishes on AWS Amplify Hosting, why the build installs a browser, and the strict-URL guard. - [Mobile deployment](https://docs.vegangrove.org/deployment/mobile.md): EAS Build profiles, the release guard that stops dev-only edits reaching a store, TestFlight and Play flows, and the one-time setup. - [Web app deployment](https://docs.vegangrove.org/deployment/web-app.md): Amplify Hosting for the Next 15 app, the amplify.yml contract, the environment variables, and the custom domain. - [Agent guide](https://docs.vegangrove.org/engineering/agent-guide.md): How AI coding agents are expected to work in the Vegan Grove repos, and where the docs expose themselves to agents. - [Development workflow](https://docs.vegangrove.org/engineering/development-workflow.md): Branches, pull requests, review, the web promotion pattern, and what to do when CI fails. - [Error handling](https://docs.vegangrove.org/engineering/error-handling.md): The one error shape the API returns, how validation and authorization errors are chosen, and how clients normalize them. - [Linting and formatting](https://docs.vegangrove.org/engineering/linting-formatting.md): The shared Biome configuration, why each setting is what it is, and the Windows line-ending trap. - [Logging](https://docs.vegangrove.org/engineering/logging.md): Structured pino logging in the API, the redaction list, and the exact boundary of what a log line may contain. - [Engineering overview](https://docs.vegangrove.org/engineering/overview.md): The tooling baseline every Vegan Grove repo shares, and what the validate script means in each one. - [Pre-commit hooks](https://docs.vegangrove.org/engineering/pre-commit-hooks.md): What husky and lint-staged run on every commit in each repo, and why a secretlint finding is a stop, not a bypass. - [Testing](https://docs.vegangrove.org/engineering/testing.md): What is tested in each repo, what a route test must cover, and which checks run inside validate. - [Action log](https://docs.vegangrove.org/features/action-log.md): A private impact journal of events attended, outreach hours, and volunteer shifts, visible only to the member, with opt-in aggregates. - [Ivy (companion)](https://docs.vegangrove.org/features/companion.md): The companion that answers questions about places, events, and going vegan, drafts outreach, and forgets what it is not asked to keep. - [Events](https://docs.vegangrove.org/features/events.md): Protests, vigils, outreach, potlucks, sanctuary days, and screenings, hosted by Groves and organizations, with private RSVPs. - [RSVP privacy](https://docs.vegangrove.org/features/events/rsvp-privacy.md): Exactly who can see that a member is attending an event, for how long, and how the API enforces it. - [Feed](https://docs.vegangrove.org/features/feed.md): Photos and video shared with friends, a Grove, or the public, with friends as the default and a public-posts view instead of a profile. - [Friends](https://docs.vegangrove.org/features/friends.md): Mutual connections made by invite code, not by search, and the private graph that unlocks the friends-only feed and messages. - [Groves](https://docs.vegangrove.org/features/groves.md): Local chapters by region, the home for events and Grove-scoped posts, with private membership and public counts. - [Guides](https://docs.vegangrove.org/features/guides.md): Editorial how-to content for activists, from outreach scripts and know-your-rights to vegan 101 and sanctuary volunteering. - [Media](https://docs.vegangrove.org/features/media.md): A curated library of vegan documentaries, films, series, and talks with where-to-watch links, trailers that load on click, and no hosted films. - [Messages](https://docs.vegangrove.org/features/messages.md): One-to-one and group chat between friends and within events, encrypted at rest, expiring by default, with realtime delivery over Socket.IO. - [Notifications](https://docs.vegangrove.org/features/notifications.md): Event reminders, friend requests, and message alerts through Expo push, with a soft-ask, quiet hours, and idempotent scheduling. - [Features overview](https://docs.vegangrove.org/features/overview.md): The feature set of Vegan Grove v1, what each one is for, and its visibility rule at a glance. - [Places](https://docs.vegangrove.org/features/places.md): The map of sanctuaries, vegan businesses, organizations, and venues across Southern California, and how a place gets on it. - [Place data sources](https://docs.vegangrove.org/features/places/data-sources.md): Where Places come from, how the OpenStreetMap importer works, and why nothing is scraped from commercial sites. - [Place verification](https://docs.vegangrove.org/features/places/verification.md): How the community keeps a place's vegan level honest without exposing who verified it. - [Introduction](https://docs.vegangrove.org/intro.md): What Vegan Grove is, how the platform is put together, and where to start reading. - [API client](https://docs.vegangrove.org/mobile/api-client.md): The ENDPOINTS registry, the fetch wrapper's behavior for auth, timeouts, and errors, and the one environment variable it reads. - [Build and release](https://docs.vegangrove.org/mobile/build-and-release.md): EAS profiles, exactly what the release guard scripts fail on, version bumping, and the store submission commands. - [Navigation](https://docs.vegangrove.org/mobile/navigation.md): The expo-router route groups, the five tabs, the hidden profile stack, the companion modal, AuthGate, and deep links. - [Mobile overview](https://docs.vegangrove.org/mobile/overview.md): The Expo app's stack, source layout, why it needs a development client, and what the scaffold contains. - [State and data](https://docs.vegangrove.org/mobile/state-and-data.md): One zustand store for auth, TanStack Query for everything from the server, and the short list of what is persisted on the device. - [Privacy](https://docs.vegangrove.org/privacy.md): The Vegan Grove privacy promise in plain language, and the four pages that back it up. - [Data inventory](https://docs.vegangrove.org/privacy/data-inventory.md): Every personal field Vegan Grove stores, its purpose, who can see it, and how long it lives. - [Disclosure policy](https://docs.vegangrove.org/privacy/disclosure-policy.md): What these public docs, and the public repos, will never contain, and where that information lives instead. - [Threat model](https://docs.vegangrove.org/privacy/threat-model.md): Who might want activists' data, how they would try to get it, and which controls stop each attempt. - [Concept map](https://docs.vegangrove.org/product/concept-map.md): How every Trick Book concept carries over to Vegan Grove, and the privacy rule attached to each. - [Personas](https://docs.vegangrove.org/product/personas.md): The four people Vegan Grove is built for, what each needs, and what each must never be able to do. - [Principles](https://docs.vegangrove.org/product/principles.md): The product principles checklist every change is measured against, with privacy first. - [Vision](https://docs.vegangrove.org/product/vision.md): Why Vegan Grove exists, the three forces behind it, the loop it runs on, and the compass for every decision. - [Releases](https://docs.vegangrove.org/releases.md): The release page convention, one page per version across all four repos, and the current unreleased scaffold entry. - [Milestones](https://docs.vegangrove.org/roadmap/milestones.md): The build order from scaffold to first mobile release, with the exit criterion for each milestone. - [Open questions](https://docs.vegangrove.org/roadmap/open-questions.md): Decisions not yet made, who owns them, and what would settle each one. - [Amplify deploy](https://docs.vegangrove.org/web/amplify-deploy.md): The amplify.yml build spec line by line, the security headers next.config.ts ships, and the content security policy origins. - [Auth and sessions](https://docs.vegangrove.org/web/auth-and-sessions.md): The httpOnly session cookie, the route handler that sets it, how server components forward it, middleware gating, and logout. - [Web overview](https://docs.vegangrove.org/web/overview.md): The Next 15 app's stack, what it deliberately leaves out, and the source layout. - [Routes](https://docs.vegangrove.org/web/routes.md): Every route the web app serves, the authenticated area, why there is no profile route, and the machine-readable routes.