Back to the catalog

Memory

Bundle OKF 0.2 · 6 conceitos · conradkoh/goals

Open source Repository Open in the app JSON README (API)

About

# Memory

Agent memory for this repository, stored as an [Open Knowledge Format (OKF)](https://github.com/GoogleCloudPlatform/knowledge-catalog/tree/main/okf) bundle.

## Domains

- [Architecture](architecture/) — system design, structural decisions, and conventions
- [Product](product/) — product requirements, features, and user-facing behavior
- [Testing](testing/) — test strategy, coverage, and quality practices
- [Development](development/) — developer workflows, tooling, and guides

## Key concepts

- [OKF document taxonomy](/architecture/okf-document-taxonomy.md) — allowed folders and document types
- [What is OKF?](/development/what-is-okf.md) — overview of the Open Knowledge Format

Details

Kind
OKF bundles
Topic
AI, RAG & memory
Publisher
conradkoh
Origin
okf_github
Category
dados
Version
0.2
Open pull requests
1
Last push
2026-09-01T06:49:17Z
Repository state
ativo
Language
TypeScript
Added
2026-09-08 16:07:08
Updated
2026-09-08 16:07:08
Origin id
conradkoh/goals:memory/index.md

README

# Goals

A goal-tracking application for managing objectives across quarterly, weekly, and daily time horizons. Built as a Next.js + Convex monorepo.

## Features

- **Hierarchical goal management** — Quarterly goals break down into weekly targets and daily tasks
- **Focus view** — A streamlined daily workspace with urgent items, pinned quarterly goals, initiatives, and adhoc goals
- **Initiatives** — Date-bounded efforts that group goals across multiple quarters
- **Dashboard views** — Quarterly, weekly, and focused perspectives on your goal hierarchy
- **Scratchpad** — Quick capture with history for transient notes
- **Quarterly summaries** — Select goals or initiatives and export context for reporting or AI agents
- **Real-time sync** — Powered by Convex reactive queries

## Tech Stack

- **Frontend:** Next.js (App Router), React, ShadCN UI, Tailwind CSS
- **Backend:** Convex
- **Monorepo:** pnpm workspaces, Turbo

## Getting Started

### Prerequisites

- Node.js 22+
- [pnpm](https://pnpm.io/)
- [Convex](https://www.convex.dev/) account

### Setup

1. Run `pnpm install` to install the dependencies
2. Run `pnpm run setup` to initialize the Convex backend and configure the webapp

   This script will:
   - **Check and update branding** - Detects if you're using template branding and prompts you to customize:
     - Application name and short name
     - App description
     - Landing page title
     - Package name
   - Initialize the Convex backend using `npx convex dev --once`
   - Extract the CONVEX_URL from the backend's .env.local file
   - Create/update the webapp's .env.local file with the NEXT_PUBLIC_CONVEX_URL
   - Assign a random `PORT` in the IANA ephemeral range (49152–65535) to `apps/webapp/.env.local` if not already configured

   The setup script is **idempotent** - you can run it multiple times safely. It will:
   - Show ✅ CONFIGURED for branding that's already customized
   - Show ⚠️ TEMPLATE for branding that still uses default values
   - Only prompt for updates if template values are detected

   **Non-Interactive Mode**: For CI/CD or automated setups:

   ```bash
   bun scripts/setup.ts --non-interactive \
     --app-name "My App" \
     --app-short-name "MyApp" \
     --app-description "Description" \
     --landing-page-title "Welcome" \
     --package-name "my-app"
   ```

   ```bash
   # Or skip branding entirely
   bun scripts/setup.ts --skip-branding

   # Show all options
   bun scripts/setup.ts --help
   ```

   After pulling schema changes, run `pnpm migrate` while `convex dev` is running (see [AGENTS.md](AGENTS.md#database-migrations)).

3. Start development servers:

   ```bash
   pnpm dev
   ```

   - Webapp at http://localhost:<PORT> (see `PORT` in `apps/webapp/.env.local`, assigned during setup)
   - Convex dev server runs alongside

#### Manual Setup

If you prefer to configure manually:

1. In `services/backend`, run `npx convex dev --once` to create a Convex project and `.env.local`.
2. Create `apps/webapp/.env.local` with:

   ```sh
   NEXT_PUBLIC_CONVEX_URL=<your-convex-project-url>
   ```

   Copy the URL from `services/backend/.env.local`.

3. Run `pnpm dev` from the repo root.

## System Administration

To grant system admin access:

1. Sign in anonymously via the login page.
2. In the [Convex Dashboard](https://dashboard.convex.dev), open Data → `users` and set `accessLevel` to `"system_admin"` for your user.
3. Access **System Admin** from your username menu to configure auth providers and settings.

### Google OAuth

1. As a system admin, go to **System Admin** → **Google Auth Config** and follow the setup instructions.
2. After signing in with Google, transfer `system_admin` to your Google user in the Convex `users` table and remove it from the anonymous account.

## Development

```bash
pnpm dev          # Start webapp + Convex
pnpm test         # Run all tests
pnpm test:watch   # Watch mode
pnpm typecheck    # TypeScript checks
pnpm lint         # ESLint
```

See [AGENTS.md](AGENTS.md) for architecture, conventions, and coding standards.

### Project Structure

- `apps/webapp/` — Next.js frontend
- `services/backend/` — Convex backend
- `docs/` — Application and developer documentation
- `guides/` — Testing and other guides

### Documentation

- **[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.
- [Testing Guide](guides/testing/testing.md)
- [AGENTS.md](AGENTS.md) — development guidelines for agents and contributors

### Testing

Run all tests with `pnpm test`. For conventions and examples, see the [Testing Guide](guides/testing/testing.md).

## Deployment

### Convex Backend

1. Generate a production deploy key in the [Convex Dashboard](https://dashboard.convex.dev) (Project Settings → Generate Production Deploy Key).
2. Add it to GitHub Secrets as `CONVEX_DEPLOY_KEY_PROD`.
3. Pushes to `master` deploy via [.github/workflows/deploy-prod.yml](.github/workflows/deploy-prod.yml).

### Vercel (Frontend)

1. Copy your Convex deployment URL from the Convex dashboard (Settings → URL & Deploy Key).
2. In Vercel project settings:
   - **Root Directory:** `apps/webapp`
   - **Environment variable:** `NEXT_PUBLIC_CONVEX_URL` = your Convex deployment URL (include Production and Preview scopes)
3. Deploy as usual.

## Documentation

- [Product overview (PRD)](docs/prd.md)
- [Development guidelines](AGENTS.md)
- [Application docs](docs/application/README.md)
- [Design guidelines](docs/design/design-guidelines.md)

More