Vision: A next-generation fashion discovery platform combining Tinder-style discovery with utility-focused shopping. Built for high-velocity solo development using AI Agents.
We strictly enforce a Hexagonal Architecture (Ports & Adapters) to separate the "Brain" (Core) from the "Tools" (Infrastructure/UI).
| Layer | Package | Role | Constraints |
|---|---|---|---|
| Core | @app/core | The Brain. Pure Business Logic & Entities. | ❌ NO external deps (Convex, React). ✅ Std Lib, Zod, Effect. |
| Ports | @app/core | The Gatekeeper. Interfaces & Use Cases. | Defined in core, implemented in infra. |
| Adapters | @app/infrastructure | Persistence. Implements Core Interfaces. | ✅ Can import convex, better-auth. |
| Adapters | @app/consumer-app | UI. Captures gestures, calls Core Use Cases. | ❌ NO business logic. ✅ tamagui. |
We use Mise to standardize environments and Graphite for stacked changes.
# Creates a new stacked branch (slugifies title)
mise run task feat "My New Feature"
# Backs up work to remote without a PR
# NEVER use `git commit` manually
mise run snap feat "Refactoring auth"
# Lint, Test, and Submit Stack to GitHub
mise run submit
# Version bump and tag
mise run release
If you are an AI Agent working in this repo:
.agent/rules/ before touching code.convex into core. Do not put logic in ui-kit.ui-kit.@app/core must have unit tests.mise install (Installs Bun, Node, Graphite).bun install.bun run dev (Starts Convex, Expo, and Admin).To run the Continuous Native Generation (CNG) pipeline, you must add the following secrets to your GitHub repository:
ANDROID_KEYSTORE_BASE64: Base64 encoded release keystoreANDROID_KEYSTORE_PASSWORD: Password for the keystoreANDROID_KEY_ALIAS: Alias for the keyANDROID_KEY_PASSWORD: Password for the keyIOS_CERTIFICATE_BASE64: Base64 encoded p12 certificateIOS_CERTIFICATE_PASSWORD: Password for the p12 certificateIOS_PROVISIONING_PROFILE_BASE64: Base64 encoded mobileprovision file125 commits
9 commits
TypeScript
97.4%
JavaScript
1.6%
Vision: A next-generation fashion discovery platform combining Tinder-style discovery with utility-focused shopping. Built for high-velocity solo development using AI Agents.
We strictly enforce a Hexagonal Architecture (Ports & Adapters) to separate the "Brain" (Core) from the "Tools" (Infrastructure/UI).
| Layer | Package | Role | Constraints |
|---|---|---|---|
| Core | @app/core | The Brain. Pure Business Logic & Entities. | ❌ NO external deps (Convex, React). ✅ Std Lib, Zod, Effect. |
| Ports | @app/core | The Gatekeeper. Interfaces & Use Cases. | Defined in core, implemented in infra. |
| Adapters | @app/infrastructure | Persistence. Implements Core Interfaces. | ✅ Can import convex, better-auth. |
| Adapters | @app/consumer-app | UI. Captures gestures, calls Core Use Cases. | ❌ NO business logic. ✅ tamagui. |
We use Mise to standardize environments and Graphite for stacked changes.
# Creates a new stacked branch (slugifies title)
mise run task feat "My New Feature"
# Backs up work to remote without a PR
# NEVER use `git commit` manually
mise run snap feat "Refactoring auth"
# Lint, Test, and Submit Stack to GitHub
mise run submit
# Version bump and tag
mise run release
If you are an AI Agent working in this repo:
.agent/rules/ before touching code.convex into core. Do not put logic in ui-kit.ui-kit.@app/core must have unit tests.mise install (Installs Bun, Node, Graphite).bun install.bun run dev (Starts Convex, Expo, and Admin).To run the Continuous Native Generation (CNG) pipeline, you must add the following secrets to your GitHub repository:
ANDROID_KEYSTORE_BASE64: Base64 encoded release keystoreANDROID_KEYSTORE_PASSWORD: Password for the keystoreANDROID_KEY_ALIAS: Alias for the keyANDROID_KEY_PASSWORD: Password for the keyIOS_CERTIFICATE_BASE64: Base64 encoded p12 certificateIOS_CERTIFICATE_PASSWORD: Password for the p12 certificateIOS_PROVISIONING_PROFILE_BASE64: Base64 encoded mobileprovision file125 commits
9 commits
TypeScript
97.4%
JavaScript
1.6%