WEFA 2026 V1 — Product Vision
Document Ownership
- Product source of truth: this page (Vision)
- Protocol detail: Protocol Stack
- Execution tracker: Execution Tracker
Diagnosis
In todays modern world technology has driven us to isolation and physical disconnection from family, peers, community and nature
- What that looks like day-to-day
- “Fun” is increasingly screen-only, indoors, and solo.
- Environmental work (gardening, stewardship, nature learning) is often framed as worthy but not playable or social.
- Digital products tend to centralize data and identity, leaving people without meaningful ownership or portability.
- Why WEFA exists
- Reframe plant care as a game loop (care → growth → reward → play) so nature connection becomes repeatable and fun.
- Use story, creatures, and shared play to make “outside + together” the default outcome of “using tech.”
Guiding Policy
Don’t fight technology embrace it and build a youth driven story and game experienced centered around plant, creature and games that through the emerging technologies of blockchains, AI, IoT and augmented reality create a symbiotic relationship between nature. community and the ever growing digital world.
- Design posture
- Local-first + privacy-first: the core loop must work offline, with user-owned data as the default.
- Progressive enhancement: AR, onchain, and device sensors should upgrade the experience, not block it.
- Octalysis “white-hat” motivation: prioritize meaning, progress, creativity, and social connection; avoid punitive scarcity loops.
- Product posture (what we ship first)
- A thin, lovable vertical slice of the loop: Plant → Reward → Creature → Game.
- Keep “Phase 2+” features (full marketplace, full multiplayer, ZK proofs, tokenbound, advanced AR anchoring) behind interfaces/stubs so V1 stays buildable and demoable.
- Technology posture (how we keep it extensible)
- Model the world with an ECS-style data layer (entities + components) so Plants, Creatures, Games, and Spaces evolve without rewriting the whole app.
- Use XState machines to make flows explicit, testable, and easy for coding agents + collaborators to extend.
Coherent Action
- Build an app prototype that enables the core game loop
- Deliver the “V1 proof outcomes” that can be demonstrated in a single session:
- onboarding (passkey/wallet) → add plant → record care → earn energy → nurture/evolve creature → play a game
- Ship Tic-Tac-Toe in two modes:
- baseline “always works” (non-AR) + optional AR renderer when WebXR is available
- Implement clean seams (interfaces) for:
- Plant verification (PlantID proxy or stub)
- Creature generation (seed pack / LLM / future on-device inference)
- Rewards (local-first now; attestations later)
- Deliver the “V1 proof outcomes” that can be demonstrated in a single session:
- Write the story the apps foundation is built upon
- Establish V1 canon that explains the “why” of caring + playing:
- element choice matters
- place/biome matters
- the player’s actions restore balance between worlds
- Translate story into production constraints:
- onboarding copy + tone
- CreatureCard schema fields (name, element, traits, signature move, short lore)
- Establish V1 canon that explains the “why” of caring + playing:
- Apply to funding and grant programs showcasing the prototype
- Use the prototype as the “proof of loop” and attach:
- screenshots/video of plant care → creature change → gameplay reward
- a clear roadmap from local-first prototype → community spaces → onchain attestations/ownership
- Frame WEFA’s differentiation as: phygital + youth story + local ecology education + user-owned game assets.
- Use the prototype as the “proof of loop” and attach:
Assumptions
- People care about plants - Test in V1: can a new user add a plant + complete 3 care events in their first week?
- People will like the story - Test in V1: do users remember their chosen element + creature name/lore and share it?
- It can gain investment as an impact based tool - Test in V1: can we report measurable signals (care events, streaks, local engagement sessions, learning outcomes) without compromising privacy?
Cynefin
Complicated → Clear
- Strategy for moving “complicated” domains toward “clear” execution
- Standardize the inner loop (plant → reward → creature → game) as predictable “best practice.”
- Keep risky/variable edges (AR device compatibility, onchain UX friction, sensor permissions) as optional modules and stubs until the loop is stable.
Long Term Outcomes
- WEFA enshrines nature and community as core principles for future generations
- A cultural artifact (story + game + rituals) that makes stewardship feel normal, social, and fun.
- A creative platform where players co-create creatures, cards, and local ecology knowledge.
- WEFA supports user-generated and agent-generated experiences without losing trust
- Players, educators, and creators can publish creature packs, shrine challenges, board variants, and lore while preserving provenance.
- AI agents can assist with content generation and moderation, but canonization remains transparent and rule-driven.
- WEFA is core infrastructure in the Inland Empire in California helping to manage community and nature relationships in a fun manner
- “Shrines” as community spaces that coordinate local plant care, nature play, and learning.
- A local-first data layer that communities can opt into sharing/attesting when it benefits them.
- WEFA World is cumulation of the story and game of WEFA into a live physical experience at thematic scale
- A physical + digital destination where AR play, learning, and stewardship become a shared ritual.
- A place where schools, families, and communities run seasonal events tied to the WEFA lore map.
- A persistent autonomous world layer where public milestones, seasonal goals, and community-owned spaces can be verified onchain.
Short Term Outcomes
- Player can login the app with either passkey or Ethereum wallet
- Passkey path: WebAuthn-based sign-in (fast + phishing-resistant).
- Wallet path: standard EVM wallet connection (and later “thin wallet” AA flow).
- Definition of done: user returns after refresh/offline and still has access to their local profile.
- Player can onboard after 1st login and select their element, enter location details and user info
- Element selection: Water/Earth/Fire/Air (affects creature seed + starter ability).
- Location details: simple “home biome” label + optional geolocation (permissioned).
- Creature is generated based on element selected and local environment data
- Definition of done: onboarding is a state machine with explicit steps and can be resumed.
- Player can generate creature based on their selected element and their local environment to add to their deck
- Generation inputs: element + biome + plant type (or placeholder plant tag in V1).
- Output: a CreatureCard (name, description, traits, signature move, starter stats).
- V1 implementation: curated seed pack or stub generator; add LLM later behind an interface.
- Player can nurture creature with resources earned from plant care helping them grow and gain more abilities in gameplay
- Resource: Energy (and/or small set of materials) earned from care events.
- Nurture action: spend energy to increase XP / stats; show immediate feedback (progress bar, animation, toast).
- Definition of done: the creature’s state changes are persisted locally and reflected in gameplay tokens/abilities.
- Players can evolve creature once they have enough XP and unlock new capabilities and visually have a more developed and grown creature
- Evolution: XP threshold gates a new stage with:
- upgraded stats
- optional new “card frame”
- new signature move text
- V1 visual: swap sprite/image + stage label; 3D model later.
- Definition of done: evolution is an explicit action, not automatic; player feels agency.
- Player can select plant in their local environment to care for adding it to their inventory with details around the plant type, location, and initial health
- Add plant: camera capture or upload + manual name tag.
- Plant profile fields: species (verified or unverified), nickname, location tag, first photo timestamp.
- Initial health: simple 0–100 score (stubbed is fine) plus “notes” field.
- Player can nurture plants added to their inventory taking daily photos to earn resources for their creature
- Care event: daily photo + quick checklist (watered / pruned / observed / cleaned).
- Streak: tracks consecutive care days; decays softly (no harsh resets).
- Reward: energy delta + occasional badge/“ether fragment”.
- Offline: care events queue locally and can sync/attest later.
- Player can start game in the play tab in augmented reality where they select between tic tac toe, ludo, and mancala and then play with a local peer who joins the game while also selecting their creature to act as their game asset
- V1 scope priority: Tic-Tac-Toe (non-AR baseline) + AR mode if available.
- Game session includes:
- selected creatures (player tokens)
- ruleset + turn state
- win/draw detection
- Local peer options:
- “pass-and-play” on one device for V1
- later: WebRTC / GUN / WebSocket session sync
- Player can join game started by another player and select the creature to use
- V1: second player joins on same device and chooses from local deck (or guest deck).
- Definition of done: joining enforces creature selection before first move.
- Player in an active game can make game move when it’s their turn
- Turn enforcement is handled in the game state machine.
- Moves are validated by a pure rules engine (easy to test).
- Player who completes game can claim their game reward based on the result
- Reward rule: win/draw/loss yields energy and/or a badge (tunable).
- Definition of done: reward is recorded in local event log and reflected in Deck energy.
- Player can publish and remix UGC (creature packs, shrine challenges, and game variants) with clear ownership metadata
- UGC remains local-first by default, then can be shared through AT Protocol records and content-addressed storage.
- Definition of done: each published item has a content hash, creator identity reference, and moderation status.
- Community can promote UGC into canonized world content through transparent proof-based rules
- Canonization is based on attestations and community signals, not opaque admin-only overrides.
- Definition of done: a public “canon set” can be reproduced from attested events and onchain registry state.
Outputs
- Fully functional and usable PWA able to be deployed
- Installable (manifest + icons) and offline-capable (service worker + caching).
- Local-first persistence for Player/Plant/Creature/GameHistory (Dexie/IndexedDB).
- “Always works” mode even without AR, wallets, or external APIs.
- UI baseline matches provided comps:
- Clean, airy layouts with generous whitespace
- Rounded cards and modals (soft, friendly tone)
- Clear primary CTA styling (filled) vs secondary (outlined)
- Persistent bottom navigation (Deck / Garden / Profile) for fast mode switching
- Semi-integrated with Green Goods protocol for reporting plant care
- V1: define the data model and a stubbed “report” interface.
- Phase 2: submit real attestations / onchain actions via the Green Goods integration when ready.
- README documentation outlining core aspects
- What the core loop is and how to demo it.
- Architecture overview (ECS-ish data model + XState machines).
- Clear “future seams” list (PlantID proxy, EAS, tokenbound, multiplayer).
- UGC and autonomous world framework documented
- Defines what data stays local, what gets attested, and what is promoted to autonomous world state.
- Includes governance, moderation, and youth-safety policies for user-generated and agent-generated content.
Activities
- Craft the plan
- Lock the V1 proof outcomes + definition of done for each.
- Decide what is “real” vs “stubbed” for the demo (PlantID, AR, onchain).
- Build during WEFA Studio Session
- Pair programming + role split:
- one agent: flows + state machines
- one agent: UI screens + styling
- one agent: creature content pack (JSON cards)
- Pair programming + role split:
- Refine from session feedback
- Fix flow confusion, polish onboarding copy, tune rewards.
- Add basic tests for rule engine + state transitions.
- Deliver polished released version
- Deploy to Vercel, verify installability/offline behavior, and record a demo walkthrough video.
- Establish UGC and autonomous world growth track
- Ship UGC publish/remix schema and moderation states.
- Define canonical promotion flow (attestation-backed) and autonomous world registry integration.
Inputs
Story & Narrative Inspiration
- Avatar Last Airbender - Element affinity as identity/philosophy, not just “damage type.”
- Pokemon - Care → bond → growth → evolution loop.
- X Men - Abilities as responsibility; powers emerge from identity.
- Yugi-Oh - Creatures as cards (metadata + effects) and deck-building identity.
- Dragon Ball - Training arcs and transformation/evolution milestones.
- Cyberchase - Playful learning through puzzles/strategy games.
- Arthur - Community warmth and approachable everyday storytelling.
Game Design Foundations
- …
- …
- …
Creature Design Foundation
- Arcane - Stylish silhouettes, readable shapes, and expressive “power vibes.”
- Studio Ghibli - Warmth, nature reverence, creatures that feel alive and kind.
Base Creatures (Massiah)
- …
- …
Guiding Philosophies
- Octalysis Framework - Map each V1 feature to a motivation drive (meaning, progress, creativity, social, ownership).
- Local & Privacy 1st - Offline-first by default; sharing/attesting is opt-in and minimal.
- Entity Component System - Plants/Creatures/Games are entities with composable components; systems update them over time.
- User Generated Content - Creature cards, lore snippets, and future user-made games as first-class content.
Folder Structure
- packages
- app
- public - PWA manifest, icons, and static assets (starter creature art, UI images).
- src
- tests - Unit tests for rules engines and state machines (fast, deterministic).
- i18n - Localization scaffolding for future (and for Inland Empire + global expansion).
- components - Reusable UI components (AppBar, DeckCard, PlantTile, CreatureCard, etc.).
- routes - Route definitions + guards (auth/onboarding gating).
- hooks - Data + machine hooks (
useOnboarding,usePlantCare,useCreatureCare,useGameSession). - modules - Domain modules (plants, creatures, rewards, games) and service interfaces (PlantVerifier, Generator).
- machines (XState)
- onboardingMachine
- plantSelectionMachine
- plantCareMachine
- creatureGeneratorMachine
- creatureCareMachine
- creatureEvolveMachine
- ticTacToeMachine (and future ludo/mancala machines)
- stores - Zustand stores for view-level state; keep domain truth in DB + machines.
- types - Zod schemas + TS types for entities, components, events.
- utils - Helpers (date/time, geo utilities, caching, feature detection).
- views - Page-level screens (Login, Onboard, Deck, Play, Profile).
- index.css - Tailwind base + design tokens.
- App.tsx - App shell, providers, layout.
- main.tsx - Entry point + hydration.
- router.tsx - Router configuration
- config.ts - Environment flags, feature toggles (AR enabled, PlantID mode, analytics on/off).
- .lighthouserc.json
- index.html
- package.json
- tsconfig.json
- vite.config.ts
- vitest.cofig.ts
- contracts
- lib
- config
- scripts
- Deploy.s.sol
- src
- interfaces
- IGreenGoods.sol
- account
- Keeper.sol
- Plant.sol
- Creature.sol
- modules
- GreenGoods.sol
- tokens
- Keeper.sol
- Plant.sol
- Creature.sol
- Game.sol
- WEFA.sol
- interfaces
- test
- .solhint.json
- remappings.txt
- foundry.toml
- app
- scripts
- setup.js - Dev bootstrap and environment setup.
- deploy-contracts.ts - Optional scripts for deploying contracts and syncing addresses to app config.
- e2e - Playwright end-to-end tests (happy paths: onboard → add plant → play game).
- .claude
- .devcontainer
- .github
- workflows
- ISSUE_TEMPLATE
- gitignore
- package.json
- coderabbit.yaml
- .browserlistrc
- .oxlintrc.json
- biome.json
- Claude.md
- LICENSE
- tsconfig.json
- playwright.config.ts
- README
App Views
- Login - Choose passkey or wallet; show “local-first” promise and privacy stance.
- Onboard - Select element + home biome; optional location permission; create first creature seed.
- Deck - Inventory hub: Energy, Plants list, Creatures list, quick actions (Care / Nurture / Evolve).
- Inventory hub: Energy, Plants list, Creatures list, quick actions (Care / Nurture / Evolve).
- UI reference: “Energy header + segmented inventory”
- Top bar shows ENERGY count prominently
- Segmented tabs for Plants / Creatures (fast switching without leaving screen)
- List items are wide cards with: Name + category chip + thumbnail image
- Filter icon in header area for future sorting (by type, streak, element, health)
- Play - Choose game + choose creature(s) + launch non-AR or AR session.
- Choose game + choose creature(s) + launch non-AR or AR session.
- AR camera view where creatures “exist” in the player’s real environment.
- UI reference: AR board is a simple grid overlay placed on the ground plane
- Minimal UI chrome during play so AR stays immersive
- Creatures rendered as the “pieces” (reinforces the collectible/deck value)
- Top snackbar/toast for rewards & milestones (non-blocking)
- Reward modal overlays for nurture events (Share / View)
- Profile - Stats (streaks, games played), settings (privacy, export), and future identity connectors.
App Components
- Player Deck
- Game Canvas
- AppBar
- Navigation + install status + sync/connection indicators.
- UI reference: “Energy header” style
- Compact top header with a badge/metric (ENERGY) and an icon
- BottomTabBar
- Persistent bottom navigation used across Deck / Garden / Profile
- Keeps AR flows accessible without deep navigation stacks
- ChoiceCardGrid (Head to Head Competition)
- Two-up onboarding cards (e.g., Vegetables vs Fruits)
- Used for quick preference capture with playful micro-illustrations
- SegmentedTabs
- Plants / Creatures toggle within Deck (no route change required)
- PlantTile / PlantRowCard
- Name + category chip + image thumbnail
- Color-tinted background per row to make scanning easy
- RewardToast / Snackbar
- Non-blocking top banner for quick rewards (“Congrats! …”)
- Used in AR without forcing modals
- RewardModal
- Large image preview + reward line + dual CTAs (Share / View)
- Used after nurture actions to close the loop and encourage sharing
- PlantCard / PlantDetail
- Plant hero image on gradient background
- Nurture Flow
- CreatureCard / CreatureDetail
- Creature hero image on gradient background
- Tabs: Nurture / Evolution
- CreatureEvolutionPanel
- Evolve CTA + element chip (e.g., Water)
- Before/after preview showing current stage → next stage with level labels
App Gameplay
- Tic Tac Toe
- First “AR grid” primitive; deterministic rules; fast feedback loop.
- UI reference: board is rendered as a bright ground-plane grid (high contrast)
- Creatures appear as AR pieces/avatars near the board to reinforce deck value
- Ludo
- Phase 2 game: longer sessions, social play, more reward hooks.
- Should reuse the same “board placement + creature pieces” AR pattern
- Mancala
- Phase 2 game: strategic, culturally resonant, supports learning.
- Should reuse the same “board placement + creature pieces” AR pattern
- Chess
Coding Agents
- Claude Code - Best for architecture, refactors, and translating spec → code modules.
- Codex - Best for rapid code scaffolding, tests, and repetitive implementation tasks.
Agents Skills
- Frontend Design
- Webapp Testing
- React
- Docker
- WebXR
- Security
Tech Pillars
- Augmented Reality - WebXR-based “garden mode” and board placement; always keep a non-AR fallback.
- Ethereum - Phase 2+: attestations (EAS), tokenbound accounts, marketplace primitives.
- Autonomous World - Phase 2+: canonical public state for shrines, tournaments, and world progression.
- IoT - Phase 2+: NFC/Bluetooth “shrines” and plant sensors as optional enhancements.
- Artificial Intelligence - Plant identification/health signals + creature generation (seed pack → cloud → on-device).
User Interface
- React - Component and view level routing system.
- Tailwind - Fast iteration on UI + consistency across screens.
- Three.js - 3D rendering foundation and WebXR integration.
- React Three Fiber - React renderer for Three.js to keep 3D work in the same mental model as UI.
- XR -
@react-three/xrfor entering AR and managing XR session primitives. - React Router - App route gating/system and deep-linkable screens.
State/Data Management
- GUN - Phase 2+: realtime p2p sync for shared play and shared spaces.
- XState - Flow control and deterministic transitions; great for testing and clarity.
- Zustand - Lightweight UI state and view caches.
- Uurql - GraphQL client (optional; useful when Green Goods or other APIs are integrated).
- Dexie - Local IndexedDB wrapper for persistence of entities and event logs.
Generated Content
- Meshy - 3D Creature generation based on based set of elemental creatures
Data
- EAS - Phase 2+: milestone attestations (first plant, 7-day streak, tournament win).
- Zod - Runtime validation for all entity/component schemas and API boundaries.
- IPFS - Phase 2+: content-addressed storage for creature art/models and UGC.
- AT Protocol - Phase 2+: identity-linked social records for discovery, sharing, and UGC references.
- Autonomous world registry - Phase 2+: onchain canon set and season state pointers.
APIs
- Pimlico - Account abstraction infrastructure (bundler/paymaster) for “thin wallet” UX later.
- Viem - Type-safe EVM tooling for reads/writes and contract interactions.
- Pinata - IPFS pinning and content management for media assets.
- PlantID - Plant identification/health API; integrate via server-side proxy (never expose API keys in the client).
Web APIs
- Web Fetch
- Vibration
- Background Sync
- Geolocation
- Push
- Notifications
- Temporal
- WebXR
- WebRTC
- WebCrypto API
- Service Worker
- Badging API
- IndexedBD
- Fullscreen API
- Screen Orientation
- Web Audio API
- Screen Wake Lock
- WebAuth
Development Tools
- Bun
- Vite
- Vitest
- React Testing Library
- Mock Server Library
- Playwright
- Workbox
- Biome
- 0xLint
Deployment
- Github Actions - CI for lint/test/build and deploy workflows.
- Vercel - Deploy the PWA + host serverless proxies (PlantID) and small APIs.
Monitoring
- Posthog - Product analytics (privacy-conscious configuration; opt-in where possible).
- Dune Analytics - onchain analytics for attestations/transactions.
Media
- WEFA Character Lineup - Use as canonical reference for element identity, silhouettes, and personality cues.
Resources
- https://github.com/greenpill-dev-guild/green-goods
- https://paragraph.com/@greenpilldevguild/green-goods-simplifying-impact-capture-and-exchange
- https://github.com/wefa-labs/app
- https://github.com/wefa-labs/openar
- https://www.wefa.world/
- https://www.figma.com/design/ADTEjFP30PTzz7C6g8BszH/WEFA-Design?m=auto&t=KXgvGVChG71Ydsvm-1
- https://blog.wefa.world/the-road-ahead-for-spatial-gaming
- https://youtu.be/Y0IkJCrvDU8?si=EYpsoa_ZQwsWwKPf
- https://lofi.so/
- https://miro.com/app/board/uXjVP8Zayt0=/?share_link_id=659349552926
- https://miro.com/app/board/uXjVMkJZ11U=/?share_link_id=193763011429
- https://yukaichou.com/gamification-examples/octalysis-gamification-framework/
- https://miro.com/app/board/uXjVIgiQlx4=/?share_link_id=698350779859
- https://www.notion.so/wefa/Alpha-Creature-Generation-Spec-2debf28e6a2a418dbe4f47b86c21a17a
- https://youtu.be/bDcgHzCBgmQ?si=7_BSuxEv4XhsxLZx
- https://youtu.be/10d8HxS4y_g?si=DdAD9vn32sB6FHBn
- https://youtu.be/aKaSOVzquqA?si=GVTtN_tEz90KcGak
- https://github.com/google-ai-edge/LiteRT-LM
- https://immersiveweb.dev/
- https://ahsgardening.org/
- https://boardgamegeek.com/geeklist/33151/creative-commonsopen-source-games?page=3
- https://www.guiltygyoza.xyz/2023/12/whats-the-point-of-aw
- https://www.cnps.org/gardening
- https://www.lawnstarter.com/blog/california/native-plants-california/
- https://learnaboutag.org/resources/gardens/
- https://calrecycle.ca.gov/education/gardens/
- https://www.cnps.org/gardening/school-gardens/school-garden-ideas
- https://youtu.be/wj3mAk5oTxs?si=GKc8-BFCNRl2-l4X
- https://adrianfr99.github.io/RPG-progression-system/#introduction
- https://youtu.be/1drDuaQXm_U?si=2qm-Azs8EhHFGj1W
- https://www.aavegotchi.com/
- https://www.neopets.com/
- https://github.com/pmndrs/xr
- https://tonk.notion.site/Eternal-Privacy-Playgrounds-6cb0ebb4042b42888a15a112a7040cbe