{
  "markdown": "# Goals\n\nA goal-tracking application for managing objectives across quarterly, weekly, and daily time horizons. Built as a Next.js + Convex monorepo.\n\n## Features\n\n- **Hierarchical goal management** — Quarterly goals break down into weekly targets and daily tasks\n- **Focus view** — A streamlined daily workspace with urgent items, pinned quarterly goals, initiatives, and adhoc goals\n- **Initiatives** — Date-bounded efforts that group goals across multiple quarters\n- **Dashboard views** — Quarterly, weekly, and focused perspectives on your goal hierarchy\n- **Scratchpad** — Quick capture with history for transient notes\n- **Quarterly summaries** — Select goals or initiatives and export context for reporting or AI agents\n- **Real-time sync** — Powered by Convex reactive queries\n\n## Tech Stack\n\n- **Frontend:** Next.js (App Router), React, ShadCN UI, Tailwind CSS\n- **Backend:** Convex\n- **Monorepo:** pnpm workspaces, Turbo\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 22+\n- [pnpm](https://pnpm.io/)\n- [Convex](https://www.convex.dev/) account\n\n### Setup\n\n1. Run `pnpm install` to install the dependencies\n2. Run `pnpm run setup` to initialize the Convex backend and configure the webapp\n\n   This script will:\n   - **Check and update branding** - Detects if you're using template branding and prompts you to customize:\n     - Application name and short name\n     - App description\n     - Landing page title\n     - Package name\n   - Initialize the Convex backend using `npx convex dev --once`\n   - Extract the CONVEX_URL from the backend's .env.local file\n   - Create/update the webapp's .env.local file with the NEXT_PUBLIC_CONVEX_URL\n   - Assign a random `PORT` in the IANA ephemeral range (49152–65535) to `apps/webapp/.env.local` if not already configured\n\n   The setup script is **idempotent** - you can run it multiple times safely. It will:\n   - Show ✅ CONFIGURED for branding that's already customized\n   - Show ⚠️ TEMPLATE for branding that still uses default values\n   - Only prompt for updates if template values are detected\n\n   **Non-Interactive Mode**: For CI/CD or automated setups:\n\n   ```bash\n   bun scripts/setup.ts --non-interactive \\\n     --app-name \"My App\" \\\n     --app-short-name \"MyApp\" \\\n     --app-description \"Description\" \\\n     --landing-page-title \"Welcome\" \\\n     --package-name \"my-app\"\n   ```\n\n   ```bash\n   # Or skip branding entirely\n   bun scripts/setup.ts --skip-branding\n\n   # Show all options\n   bun scripts/setup.ts --help\n   ```\n\n   After pulling schema changes, run `pnpm migrate` while `convex dev` is running (see [AGENTS.md](AGENTS.md#database-migrations)).\n\n3. Start development servers:\n\n   ```bash\n   pnpm dev\n   ```\n\n   - Webapp at http://localhost:<PORT> (see `PORT` in `apps/webapp/.env.local`, assigned during setup)\n   - Convex dev server runs alongside\n\n#### Manual Setup\n\nIf you prefer to configure manually:\n\n1. In `services/backend`, run `npx convex dev --once` to create a Convex project and `.env.local`.\n2. Create `apps/webapp/.env.local` with:\n\n   ```sh\n   NEXT_PUBLIC_CONVEX_URL=<your-convex-project-url>\n   ```\n\n   Copy the URL from `services/backend/.env.local`.\n\n3. Run `pnpm dev` from the repo root.\n\n## System Administration\n\nTo grant system admin access:\n\n1. Sign in anonymously via the login page.\n2. In the [Convex Dashboard](https://dashboard.convex.dev), open Data → `users` and set `accessLevel` to `\"system_admin\"` for your user.\n3. Access **System Admin** from your username menu to configure auth providers and settings.\n\n### Google OAuth\n\n1. As a system admin, go to **System Admin** → **Google Auth Config** and follow the setup instructions.\n2. After signing in with Google, transfer `system_admin` to your Google user in the Convex `users` table and remove it from the anonymous account.\n\n## Development\n\n```bash\npnpm dev          # Start webapp + Convex\npnpm test         # Run all tests\npnpm test:watch   # Watch mode\npnpm typecheck    # TypeScript checks\npnpm lint         # ESLint\n```\n\nSee [AGENTS.md](AGENTS.md) for architecture, conventions, and coding standards.\n\n### Project Structure\n\n- `apps/webapp/` — Next.js frontend\n- `services/backend/` — Convex backend\n- `docs/` — Application and developer documentation\n- `guides/` — Testing and other guides\n\n### Documentation\n\n- **[Shadcn → Base UI Migration Guide](docs/developer/shadcn-base-ui-migration.md)** — upgrading UI components from Radix-based shadcn to Base UI (`base-vega`); includes a downstream migration playbook for forks built on this template.\n- [Testing Guide](guides/testing/testing.md)\n- [AGENTS.md](AGENTS.md) — development guidelines for agents and contributors\n\n### Testing\n\nRun all tests with `pnpm test`. For conventions and examples, see the [Testing Guide](guides/testing/testing.md).\n\n## Deployment\n\n### Convex Backend\n\n1. Generate a production deploy key in the [Convex Dashboard](https://dashboard.convex.dev) (Project Settings → Generate Production Deploy Key).\n2. Add it to GitHub Secrets as `CONVEX_DEPLOY_KEY_PROD`.\n3. Pushes to `master` deploy via [.github/workflows/deploy-prod.yml](.github/workflows/deploy-prod.yml).\n\n### Vercel (Frontend)\n\n1. Copy your Convex deployment URL from the Convex dashboard (Settings → URL & Deploy Key).\n2. In Vercel project settings:\n   - **Root Directory:** `apps/webapp`\n   - **Environment variable:** `NEXT_PUBLIC_CONVEX_URL` = your Convex deployment URL (include Production and Preview scopes)\n3. Deploy as usual.\n\n## Documentation\n\n- [Product overview (PRD)](docs/prd.md)\n- [Development guidelines](AGENTS.md)\n- [Application docs](docs/application/README.md)\n- [Design guidelines](docs/design/design-guidelines.md)\n",
  "bytes": 5634,
  "sha": "a145c6d0f0f106ae16c4df2d8fc5b3db3e197add41ed8ae8255e4d270d6fca24",
  "repo_slug": "conradkoh/goals",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/okf_conradkoh_goals_memory_index_md_2fd888b0/readme"
}