Inspiration

This project has a personal meaning for one of our team members, and that experience became the product spec. When autism enters a family's life, the questions come at 2am, the answers online are contradictory or terrifying, private advocates charge $150–300/hour, and waitlists for specialists stretch for months. The gap between "I have a question" and "I found trustworthy help" is where families burn out — and it's exactly the kind of gap technology is supposed to close. We believe AI's job here is simple to state: bring calm, grounded help to people at their most overwhelmed moment, and improve the day-to-day quality of life of families who rarely get to be anyone's priority.

That's also why Autie is a ground-up rework of an earlier project. The original autie.chat (Angular 15, Dialogflow NLU intents, Firebase Functions, the ChatGPT API, and legacy Places calls) was retired entirely — not one line of its backend survived. For this hackathon we redesigned the product and rebuilt it as an agentic architecture: a Python agent on Google's Agent Development Kit with Gemini on the Gemini Enterprise Agent Platform (formerly Vertex AI), a new Angular app, a new knowledge base, a new safety layer, and an entirely new business model. The old app answered intents; the new one reasons, retrieves, cites, calls tools, and knows when to hand you to a human.

What it does

  • Answers with receipts. A custom RAG pipeline over curated, licensed public-health and educational sources (Firestore vector search, 768-d Gemini embeddings). The model cites sources by name; the backend appends links verbatim from tool payloads, so citations can't be hallucinated.
  • Finds real local help. Google Maps Places integration for therapists, schools, and support groups — live data, not model memory.
  • Knows its limits. A deterministic crisis layer shows verified crisis resources (988) regardless of what the model does; employment guidance refuses to map diagnosis → job type (a stereotype trap we designed out on principle); the app repeats everywhere that it is not a clinician.
  • Chat with a human expert. Subscribers can escalate to a real person — and the expert sees them only as a pseudonym ("Amber Fox 42"). Privacy isn't a policy page; it's the schema: the expert-facing API never carries identity.
  • A real product, not a demo. Anonymous-first auth, cross-device history, AI-searchable conversations, photo/PDF attachments (Gemini multimodal), browser voice input, a $19.95/mo Stripe subscription with live entitlement push, a Telegram channel, 30-day auto-deleting conversations, and delete-my-data.

How we built it

FastAPI + Google ADK agent on Cloud Run (scale-to-zero), Gemini on the Gemini Enterprise Agent Platform, Firestore for sessions/RAG/entitlements with TTL policies, Firebase Auth (anonymous → linked accounts, custom claims for roles), Firebase Hosting + Angular (signals, standalone components), Stripe webhooks with hand-verified HMAC signatures, and SSE token streaming end to end. Everything is engineered for near-zero idle cost — scale-to-zero compute, Firestore vector search instead of managed vector DBs with cost floors, per-user rate limits — because a community product has to survive on a community budget.

Challenges we ran into

  • Streaming through managed infrastructure. Firebase Hosting's rewrite layer silently buffers SSE — long answers looked frozen. Diagnosis took a timed A/B; the fix was calling Cloud Run directly with strict CORS.
  • Safety you can't prompt away. We refused to leave crisis handling to the model: a deterministic pre-check shows verified resources every time, and cited URLs are appended by code, never retyped by the model.
  • Pseudonymous human escalation. Designing expert chat so a human can genuinely help without ever learning who they're helping — stable aliases, whitelist serialization, and a documented break-glass path for emergencies.
  • One product, every screen. A calm desktop layout doesn't translate to a phone by shrinking: dialogs became full-screen sheets, the chat gained a slide-in panel, input behaviors had to adapt per device, and each pass on a real phone surfaced issues no desktop browser ever showed. Responsive design turned out to be product design, not a CSS afterthought.

Accomplishments that we're proud of

  • It's live. autie.chat is deployed and serving — not a localhost demo. The first real subscriptions went through the complete checkout-to-entitlement pipeline with zero human touch.
  • The pseudonymity boundary held up to audit. We ran a full-scope security review before submission: no high- or medium-confidence findings, and the expert-facing API provably never carries user identity.
  • 143 automated tests gate every deploy, covering safety, payments, attachments, expert threads, and the Telegram channel.
  • Honest paperwork. The Terms of Service and Privacy Policy were written from what the code actually does — every claim in them is one the system keeps, including documented data retention and delete-my-data.

What we learned

That the hard part of "AI for vulnerable users" isn't the model — it's the edges: what the system does when someone types something frightening, what a human helper is allowed to see, what a citation is allowed to be, and what a subscription page truthfully promises. Gemini made the core conversation almost easy; the engineering went into making it safe to trust.

What's next for Autie

Structured service cards, a curated services directory with community feedback, WhatsApp/SMS channels, corpus growth with eval-gated retrieval, and onboarding more human experts — because the measure of this project isn't tokens generated; it's nights made a little less overwhelming.

Built With

  • adk
  • angular-framework
  • cloud-build
  • cloud-run
  • fastapi
  • firebase-auth
  • firebase-hosting
  • firestore
  • gcp
  • gemini
  • gemini-enterprise-agent-platform
  • google-agent-development-kit
  • google-cloud
  • google-maps-places-api
  • python
  • rag
  • secret-manager
  • server-sent-events
  • sse
  • stripe
  • telegram-bot-api
  • typescript
  • vector-search
  • vertex-ai
  • web-speech-api
Share this project:

Updates