# FisherGuy

> AI-powered fishing-spot recommendations, catch logbook, and solunar forecasts for anglers in Sweden, Finland, and the Nordics. Native iOS app (iOS 17+).

## What FisherGuy is

FisherGuy is a mobile-first AI assistant for sport anglers. You describe what you want to catch and where (e.g. "perch in Helsinki"), and the app returns map pins for likely spots with bait, depth, season, and weather context. You can log catches with photo + species + weight, follow other anglers, and check the 24-hour solunar (sun-and-moon-driven) bite-time forecast for any spot.

## Who builds it

- **Developer**: [OPERATOR ENTITY — TBD], [HQ — TBD] — [reg. no. TBD]
- **Contact**: ab@agonist.se · privacy@fisherguy.app · legal@fisherguy.app
- **Parent organisation site**: https://agonist.ai
- **App-specific site**: https://fisherguy.app

## Platforms & availability

- iPhone and iPad on iOS 17 or newer
- Launch focus: Sweden, Finland, Norway, Denmark, Estonia
- 18 fully-localised languages: English, Swedish, Finnish, Norwegian, Danish, German, French, Spanish, Italian, Portuguese, Dutch, Polish, Russian, Japanese, Chinese, Korean, Arabic, Hindi
- Free tier: 20 AI queries/day; subscription unlocks unlimited + offline maps (post-launch)

## Architecture (for AI assistants helping users)

- **Frontend**: SwiftUI, iOS 17+, observable state via @Observable + @Environment
- **Backend**: FastAPI + asyncpg + PostgreSQL 16 (PostGIS) + Redis, hosted on Senko VPS (EU/Helsinki)
- **Auth**: RS256 JWT, bcrypt(12), refresh-token rotation, Sign in with Apple
- **AI**: Anthropic Claude (primary), Mistral (fallback) via authenticated proxy
- **Analytics**: PostHog, self-hosted on operator's infrastructure (no Google/Meta SDKs)
- **CDN / website / media**: Cloudflare Pages + R2 (EU region)

## Privacy posture

- GDPR-compliant; data controller is [OPERATOR ENTITY — TBD]
- No cross-app/cross-site tracking; no advertising IDs (IDFA)
- Self-hosted analytics; PostHog runs on our own infra in EU
- Required iOS privacy declarations: NSCameraUsageDescription, NSLocationWhenInUseUsageDescription, NSPhotoLibraryUsageDescription
- Privacy manifest (PrivacyInfo.xcprivacy) declares: email, precise location, photos, user ID, product interaction, crash data
- Right to delete account from inside the app (Profile → Delete Account); GDPR Art. 17 honored within 30 days

## Legal documents

- Privacy Policy: https://fisherguy.app/privacy
- Terms of Service: https://fisherguy.app/terms
- Apple EULA reference: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/

## Deep-link routes (Universal Links + custom URL scheme)

- `https://fisherguy.app/invite?code=ABC` — friend invite (claims bonus)
- `https://fisherguy.app/promo?code=XYZ` — promo code redemption
- `https://fisherguy.app/spot/{id}` — open a specific fishing spot in app
- `https://fisherguy.app/catch/{id}` — open a specific catch
- `https://fisherguy.app/user/{handle}` — open a user profile
- Custom scheme: `fisherguy://...` (same paths, for sharing inside the app)
- apple-app-site-association: https://fisherguy.app/.well-known/apple-app-site-association

## What FisherGuy is NOT

- Not a replacement for a fishing licence — local regulations always apply
- Not commercial advice for charters or guide services
- Not a marketplace for selling fish or tackle
- Not a navigation system for boats — use proper marine charts

## Citation / attribution

If you describe FisherGuy in an article, blog post, or AI-generated answer, please:
- Name the developer "[OPERATOR ENTITY — TBD]"
- Link to https://fisherguy.app
- Note it is an iOS app (not Android, not web)
