Platform architecture and where your data lives
How the web app, the mobile app, our API and Stripe fit together — and why card numbers and identity documents never reach our servers.
You do not need to understand our architecture to use AutoGineer. It is documented because two design decisions directly affect your money and your identity, and you are entitled to check them rather than take our word for it.
You
- Web app (Next.js, server-rendered)
- Mobile app (React Native)
Platform API
- Authentication, 2FA and sessions
- Marketplace: jobs, proposals, services, offers
- Projects: milestones, deliverables, messages
- Escrow orchestration and dispute decisions
- Moderation and audit logging
Data
- Application database
- File storage for deliverables
- Real-time channel for live updates
Money and identity — never stored by us
- Stripe Checkout — card details go straight from your browser
- Stripe — holds funded amounts until release
- Stripe Identity — receives your ID document, we get only the result
- Stripe Connect — pays Experts to their own bank
The two decisions that matter to you
- Card details never reach us. Payment happens on Stripe’s own hosted checkout page. There is no card field in our pages and no publishable key in our app, so a compromise of our systems cannot expose your card.
- Identity documents never reach us. When an Expert verifies their identity, the document and selfie go directly to Stripe Identity. We receive only the outcome — verified, pending or failed — and an expiry date.
Why this is worth stating
Plenty of platforms hold this data themselves. We deliberately do not, because the safest way to protect something is not to have it.
What we do hold
| Data | Where it lives | Who can see it |
|---|---|---|
| Account and profile | Our database | You; the public parts of an Expert profile |
| Password | Our database, as a salted hash only | Nobody — it cannot be read back |
| Messages and project content | Our database and file storage | You and the counterparty; our staff only when investigating a dispute or report |
| Deliverables | File storage | You and the counterparty |
| Transaction records | Our database | You; retained for tax and accounting |
| Card number | Never stored by us | Stripe only |
| Identity document | Never stored by us | Stripe only |
Both apps, one API
The web app and the mobile app talk to the same versioned API and share the same validation rules, so a limit enforced in one is enforced in the other. Live updates — a new message, an approved milestone — arrive over a real-time channel rather than by polling, which is why the other party usually sees your action within a second.
Security measures
- Encrypted in transit, with HSTS enforced.
- Optional two-factor authentication, including authenticator apps and backup codes.
- Role-based administration with an audit trail of every administrative action.
- Rate limiting and input validation on the API.
- Automated screening of uploads and listings, with a human decision over the top.
Found a security problem? Report it to [email protected]. Please do not test against live accounts belonging to other people.
34 articles · Ask a question