diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3f95aa2 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,83 @@ +# Contributing to DiffKit + +Thanks for your interest in contributing to DiffKit! This guide will help you get started. + +## Development Setup + +Follow the [Getting Started](README.md#getting-started) section in the README to set up your local environment. + +## Workflow + +1. **Fork the repo** and create your branch from `main` +2. **Make your changes** — keep commits focused and atomic +3. **Run checks** before pushing: + ```bash + pnpm check-types # Type checking + pnpm lint # Linting + pnpm format # Formatting + ``` +4. **Open a pull request** against `main` + +## Code Style + +This project uses [Biome](https://biomejs.dev/) for linting and formatting. Run `pnpm format` to auto-format your code. Pre-commit hooks via Husky and lint-staged will also catch issues before they're committed. + +A few conventions to keep in mind: + +- Prefer editing existing files over creating new ones +- Keep components in the appropriate package (`apps/dashboard` for app-specific, `packages/ui` for shared) + +## Project Architecture + +DiffKit is a **pnpm monorepo** managed with **Turborepo**: + +- **`apps/dashboard`** — The main web app built with TanStack Start, deployed to Cloudflare Workers +- **`packages/ui`** — Shared UI components (Radix UI primitives + Tailwind CSS) +- **`packages/icons`** — Icon wrapper package +- **`packages/typescript-config`** — Shared TypeScript configurations + +### Key Technologies + +- **TanStack Router** — File-based routing in `apps/dashboard/src/routes/` +- **TanStack Query** — Server state management and caching +- **Drizzle ORM** — Database schema and migrations in `apps/dashboard/src/db/` and `apps/dashboard/drizzle/` +- **Better Auth** — Authentication with GitHub OAuth +- **Cloudflare D1** — SQLite database at the edge + +### Adding a New Route + +Routes live in `apps/dashboard/src/routes/`. TanStack Router uses file-based routing — create a new file and the route is automatically registered. + +Protected routes go under `_protected/` which enforces authentication. + +### Adding a UI Component + +Shared components go in `packages/ui/src/components/`. App-specific components go in `apps/dashboard/src/components/`. + +## Pull Requests + +- Keep PRs focused — one feature or fix per PR +- Write a clear title and description explaining what changed and why +- Include screenshots for UI changes +- Make sure all checks pass before requesting review + +## Reporting Bugs + +Open an [issue](https://github.com/stylessh/diffkit/issues) with: + +- A clear description of the bug +- Steps to reproduce +- Expected vs actual behavior +- Screenshots if applicable + +## Suggesting Features + +Open an [issue](https://github.com/stylessh/diffkit/issues) with the `enhancement` label describing: + +- The problem you're trying to solve +- Your proposed solution +- Any alternatives you've considered + +## License + +By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE). diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..83e2be1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025-present DiffKit Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..c039c83 --- /dev/null +++ b/README.md @@ -0,0 +1,173 @@ +# DiffKit + +A fast, design-first GitHub dashboard for developers who want to stay on top of their pull requests, issues, and code reviews — without the noise. + +## Features + +- **Pull Requests** — View, filter, and manage your open PRs across repos +- **Issues** — Track assigned issues with labels, milestones, and status +- **Code Reviews** — See pending review requests in one place +- **PR Diff Viewer** — Review pull request changes with inline comments +- **Dark Mode** — Full dark mode support out of the box +- **Fast** — Deployed on Cloudflare Workers at the edge + +## Tech Stack + +| Layer | Technology | +|-------|-----------| +| Framework | TanStack Start (React 19) | +| Routing | TanStack Router (file-based) | +| Data | TanStack Query + Octokit | +| Database | Cloudflare D1 (SQLite) via Drizzle ORM | +| Auth | Better Auth with GitHub OAuth | +| Styling | Tailwind CSS 4 + Radix UI | +| Icons | Lucide React | +| Build | Vite 7 + Turborepo | +| Runtime | Cloudflare Workers | +| Linting | Biome | + +## Getting Started + +### Prerequisites + +- [Node.js](https://nodejs.org/) (v20+) +- [pnpm](https://pnpm.io/) (v10+) +- A [GitHub OAuth App](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/creating-an-oauth-app) + +### Setup + +1. **Clone the repo** + + ```bash + git clone https://github.com/stylessh/diffkit.git + cd diffkit + ``` + +2. **Install dependencies** + + ```bash + pnpm install + ``` + +3. **Configure environment variables** + + Create a `.dev.vars` file in `apps/dashboard/`: + + ``` + GITHUB_CLIENT_ID=your_github_client_id + GITHUB_CLIENT_SECRET=your_github_client_secret + BETTER_AUTH_SECRET=a_random_32_character_string + BETTER_AUTH_URL=http://localhost:3000 + ``` + + > To get GitHub OAuth credentials, create a new OAuth App in [GitHub Developer Settings](https://github.com/settings/developers) with the callback URL set to `http://localhost:3000/api/auth/callback/github`. + +4. **Run database migrations** + + ```bash + pnpm --filter dashboard migrate + ``` + +5. **Start the dev server** + + ```bash + pnpm dev + ``` + + Open [http://localhost:3000](http://localhost:3000) in your browser. + + +## Scripts + +| Command | Description | +|---------|------------| +| `pnpm dev` | Start all dev servers | +| `pnpm build` | Build all packages and apps | +| `pnpm lint` | Lint the codebase | +| `pnpm check` | Run Biome checks | +| `pnpm check-types` | Type-check all packages | +| `pnpm format` | Format code with Biome | + +## Roadmap + +### Dashboard + +- [x] Overview with PR, issue, and review counts +- [ ] Activity feed (recent events across repos) +- [ ] Customizable dashboard widgets + +### Pull Requests + +- [x] List PRs by role (authored, assigned, review requested, mentioned, involved) +- [x] PR detail view with metadata, body, and comments +- [x] PR diff viewer with syntax highlighting +- [x] Inline review comments on specific lines +- [x] Submit reviews (approve, request changes, comment) +- [x] Update branch with base +- [ ] Create new pull requests +- [ ] Merge pull requests (merge, squash, rebase) +- [ ] Close / reopen pull requests +- [ ] Edit PR title, body, and metadata +- [ ] Add / remove reviewers +- [ ] Add / remove labels +- [ ] Link issues to pull requests + +### Issues + +- [x] List issues by role (assigned, authored, mentioned) +- [x] Issue detail view with metadata, body, and comments +- [ ] Create new issues +- [ ] Close / reopen issues +- [ ] Comment on issues +- [ ] Edit issue title, body, and metadata +- [ ] Assign / unassign users +- [ ] Add / remove labels +- [ ] Set milestones + +### Code Reviews + +- [x] Pending review requests view +- [x] File tree navigator with status badges +- [x] Side-by-side diff view +- [x] Multi-line comment selection +- [ ] Resolve / unresolve review threads +- [ ] Suggest changes (code suggestions in comments) +- [ ] Review comment reactions + +### Notifications + +- [ ] Notification inbox +- [ ] Mark as read / unread +- [ ] Filter by type (PR, issue, review, CI) +- [ ] Desktop notifications + +### Repositories + +- [ ] Repository list and search +- [ ] Repository file browser +- [ ] Branch and tag management +- [ ] README preview + +### Search + +- [ ] Global search across PRs, issues, and repos +- [ ] Saved searches and filters +- [ ] Advanced query syntax + +### General + +- [x] GitHub OAuth authentication +- [x] Dark mode with system preference +- [x] Response caching with ETags +- [ ] Keyboard shortcuts +- [ ] Command palette +- [ ] User settings and preferences +- [ ] Mobile-responsive layout + +## Contributing + +We welcome contributions! Please read the [Contributing Guide](CONTRIBUTING.md) before submitting a pull request. + +## License + +[MIT](LICENSE) diff --git a/apps/dashboard/components.json b/apps/dashboard/components.json index 14d0c85..e2ad99d 100644 --- a/apps/dashboard/components.json +++ b/apps/dashboard/components.json @@ -14,7 +14,7 @@ "components": "@/components", "hooks": "@/hooks", "lib": "@/lib", - "utils": "@quickhub/ui/lib/utils", - "ui": "@quickhub/ui/components" + "utils": "@diffkit/ui/lib/utils", + "ui": "@diffkit/ui/components" } } diff --git a/apps/dashboard/package.json b/apps/dashboard/package.json index db58fe0..2594ef7 100644 --- a/apps/dashboard/package.json +++ b/apps/dashboard/package.json @@ -1,5 +1,5 @@ { - "name": "@quickhub/dashboard", + "name": "@diffkit/dashboard", "private": true, "type": "module", "imports": { @@ -16,15 +16,15 @@ "check": "biome check", "check-types": "tsc --noEmit", "migrate": "pnpm run migrate:local", - "migrate:local": "node ../../scripts/run-d1-migrations.mjs quickhub-db --local", - "migrate:remote": "node ../../scripts/run-d1-migrations.mjs quickhub-db --remote", + "migrate:local": "node ../../scripts/run-d1-migrations.mjs DB --local", + "migrate:remote": "node ../../scripts/run-d1-migrations.mjs DB --remote", "deploy": "pnpm run build && wrangler deploy" }, "dependencies": { "@cloudflare/vite-plugin": "^1.26.0", "@pierre/diffs": "^1.1.12", - "@quickhub/icons": "workspace:*", - "@quickhub/ui": "workspace:*", + "@diffkit/icons": "workspace:*", + "@diffkit/ui": "workspace:*", "@tailwindcss/vite": "^4.1.18", "@tanstack/react-devtools": "latest", "@tanstack/react-query": "latest", @@ -46,7 +46,7 @@ "devDependencies": { "@biomejs/biome": "2.4.5", "@cloudflare/workers-types": "^4.20260405.1", - "@quickhub/typescript-config": "workspace:*", + "@diffkit/typescript-config": "workspace:*", "@tanstack/devtools-vite": "latest", "@testing-library/dom": "^10.4.1", "@testing-library/react": "^16.3.0", diff --git a/apps/dashboard/src/components/issues/issue-row.tsx b/apps/dashboard/src/components/issues/issue-row.tsx index a137af0..0a06301 100644 --- a/apps/dashboard/src/components/issues/issue-row.tsx +++ b/apps/dashboard/src/components/issues/issue-row.tsx @@ -1,5 +1,5 @@ -import { CommentIcon, IssuesIcon } from "@quickhub/icons"; -import { cn } from "@quickhub/ui/lib/utils"; +import { CommentIcon, IssuesIcon } from "@diffkit/icons"; +import { cn } from "@diffkit/ui/lib/utils"; import { Link } from "@tanstack/react-router"; import { formatRelativeTime } from "#/components/pulls/pull-request-row"; import type { IssueSummary } from "#/lib/github.types"; diff --git a/apps/dashboard/src/components/layouts/dashboard-topbar.tsx b/apps/dashboard/src/components/layouts/dashboard-topbar.tsx index ca61fc8..443d8bd 100644 --- a/apps/dashboard/src/components/layouts/dashboard-topbar.tsx +++ b/apps/dashboard/src/components/layouts/dashboard-topbar.tsx @@ -8,9 +8,9 @@ import { ReviewsIcon, SunIcon, SystemIcon, -} from "@quickhub/icons"; -import { Avatar, AvatarFallback } from "@quickhub/ui/components/avatar"; -import { Button } from "@quickhub/ui/components/button"; +} from "@diffkit/icons"; +import { Avatar, AvatarFallback } from "@diffkit/ui/components/avatar"; +import { Button } from "@diffkit/ui/components/button"; import { DropdownMenu, DropdownMenuContent, @@ -20,7 +20,7 @@ import { DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger, -} from "@quickhub/ui/components/dropdown-menu"; +} from "@diffkit/ui/components/dropdown-menu"; import { Link, useRouter } from "@tanstack/react-router"; import { useTheme } from "next-themes"; import { useCallback, useEffect, useRef, useState } from "react"; diff --git a/apps/dashboard/src/components/layouts/error-screen.tsx b/apps/dashboard/src/components/layouts/error-screen.tsx index 3955d44..8fb41b9 100644 --- a/apps/dashboard/src/components/layouts/error-screen.tsx +++ b/apps/dashboard/src/components/layouts/error-screen.tsx @@ -1,4 +1,4 @@ -import { Button } from "@quickhub/ui/components/button"; +import { Button } from "@diffkit/ui/components/button"; import { type ErrorComponentProps, useRouter } from "@tanstack/react-router"; import { AlertCircleIcon, RefreshCwIcon } from "lucide-react"; diff --git a/apps/dashboard/src/components/pulls/pull-request-row.tsx b/apps/dashboard/src/components/pulls/pull-request-row.tsx index 2c7684e..2f90745 100644 --- a/apps/dashboard/src/components/pulls/pull-request-row.tsx +++ b/apps/dashboard/src/components/pulls/pull-request-row.tsx @@ -5,9 +5,9 @@ import { GitPullRequestDraftIcon, GitPullRequestIcon, ViewIcon, -} from "@quickhub/icons"; -import { Markdown } from "@quickhub/ui/components/markdown"; -import { cn } from "@quickhub/ui/lib/utils"; +} from "@diffkit/icons"; +import { Markdown } from "@diffkit/ui/components/markdown"; +import { cn } from "@diffkit/ui/lib/utils"; import { useQuery } from "@tanstack/react-query"; import { Link, useRouter } from "@tanstack/react-router"; import { useState } from "react"; diff --git a/apps/dashboard/src/lib/query-client.tsx b/apps/dashboard/src/lib/query-client.tsx index 98170b4..d808638 100644 --- a/apps/dashboard/src/lib/query-client.tsx +++ b/apps/dashboard/src/lib/query-client.tsx @@ -8,7 +8,7 @@ import { useEffect, useRef } from "react"; import { githubCachePolicy } from "./github-cache-policy"; import { readStoredTabs, type Tab, useTabs } from "./tab-store"; -const GITHUB_QUERY_CACHE_STORAGE_KEY = "quickhub:github-query-cache:v1"; +const GITHUB_QUERY_CACHE_STORAGE_KEY = "diffkit:github-query-cache:v1"; const GITHUB_QUERY_CACHE_MAX_AGE_MS = githubCachePolicy.viewer.gcTimeMs; type PersistedGitHubQueryCache = { diff --git a/apps/dashboard/src/lib/tab-store.ts b/apps/dashboard/src/lib/tab-store.ts index e2267e9..d5703b9 100644 --- a/apps/dashboard/src/lib/tab-store.ts +++ b/apps/dashboard/src/lib/tab-store.ts @@ -14,7 +14,7 @@ export interface Tab { deletions?: number; } -export const TABS_STORAGE_KEY = "quickhub:tabs"; +export const TABS_STORAGE_KEY = "diffkit:tabs"; export function readStoredTabs(): Tab[] { if (typeof window === "undefined") return []; diff --git a/apps/dashboard/src/routes/__root.tsx b/apps/dashboard/src/routes/__root.tsx index cced031..05b56df 100644 --- a/apps/dashboard/src/routes/__root.tsx +++ b/apps/dashboard/src/routes/__root.tsx @@ -20,7 +20,7 @@ export const Route = createRootRouteWithContext<{ meta: [ { charSet: "utf-8" }, { name: "viewport", content: "width=device-width, initial-scale=1" }, - { title: "QuickHub Dashboard" }, + { title: "DiffKit Dashboard" }, ], links: [{ rel: "stylesheet", href: appCss }], }), diff --git a/apps/dashboard/src/routes/_protected/$owner/$repo/issues.$issueId.tsx b/apps/dashboard/src/routes/_protected/$owner/$repo/issues.$issueId.tsx index a2ebee6..6bdb3a9 100644 --- a/apps/dashboard/src/routes/_protected/$owner/$repo/issues.$issueId.tsx +++ b/apps/dashboard/src/routes/_protected/$owner/$repo/issues.$issueId.tsx @@ -1,12 +1,12 @@ -import { IssuesIcon } from "@quickhub/icons"; -import { Markdown } from "@quickhub/ui/components/markdown"; -import { Skeleton } from "@quickhub/ui/components/skeleton"; +import { IssuesIcon } from "@diffkit/icons"; +import { Markdown } from "@diffkit/ui/components/markdown"; +import { Skeleton } from "@diffkit/ui/components/skeleton"; import { Tooltip, TooltipContent, TooltipTrigger, -} from "@quickhub/ui/components/tooltip"; -import { cn } from "@quickhub/ui/lib/utils"; +} from "@diffkit/ui/components/tooltip"; +import { cn } from "@diffkit/ui/lib/utils"; import { useQuery } from "@tanstack/react-query"; import { createFileRoute, Link } from "@tanstack/react-router"; import { useState } from "react"; diff --git a/apps/dashboard/src/routes/_protected/$owner/$repo/pull.$pullId.tsx b/apps/dashboard/src/routes/_protected/$owner/$repo/pull.$pullId.tsx index 3db2824..75fa132 100644 --- a/apps/dashboard/src/routes/_protected/$owner/$repo/pull.$pullId.tsx +++ b/apps/dashboard/src/routes/_protected/$owner/$repo/pull.$pullId.tsx @@ -10,15 +10,15 @@ import { GitPullRequestDraftIcon, GitPullRequestIcon, MessageIcon, -} from "@quickhub/icons"; -import { Markdown } from "@quickhub/ui/components/markdown"; -import { Skeleton } from "@quickhub/ui/components/skeleton"; +} from "@diffkit/icons"; +import { Markdown } from "@diffkit/ui/components/markdown"; +import { Skeleton } from "@diffkit/ui/components/skeleton"; import { Tooltip, TooltipContent, TooltipTrigger, -} from "@quickhub/ui/components/tooltip"; -import { cn } from "@quickhub/ui/lib/utils"; +} from "@diffkit/ui/components/tooltip"; +import { cn } from "@diffkit/ui/lib/utils"; import { useQuery, useQueryClient } from "@tanstack/react-query"; import { createFileRoute, Link } from "@tanstack/react-router"; import { useCallback, useRef, useState } from "react"; diff --git a/apps/dashboard/src/routes/_protected/$owner/$repo/review.$pullId.tsx b/apps/dashboard/src/routes/_protected/$owner/$repo/review.$pullId.tsx index f15a678..63dabe2 100644 --- a/apps/dashboard/src/routes/_protected/$owner/$repo/review.$pullId.tsx +++ b/apps/dashboard/src/routes/_protected/$owner/$repo/review.$pullId.tsx @@ -19,20 +19,20 @@ import { GitPullRequestIcon, SearchIcon, TickIcon, -} from "@quickhub/icons"; -import { Markdown } from "@quickhub/ui/components/markdown"; +} from "@diffkit/icons"; +import { Markdown } from "@diffkit/ui/components/markdown"; import { Popover, PopoverContent, PopoverTrigger, -} from "@quickhub/ui/components/popover"; +} from "@diffkit/ui/components/popover"; import { ResizableHandle, ResizablePanel, ResizablePanelGroup, -} from "@quickhub/ui/components/resizable"; -import { vercelDark, vercelLight } from "@quickhub/ui/lib/shiki-themes"; -import { cn } from "@quickhub/ui/lib/utils"; +} from "@diffkit/ui/components/resizable"; +import { vercelDark, vercelLight } from "@diffkit/ui/lib/shiki-themes"; +import { cn } from "@diffkit/ui/lib/utils"; import { useQuery, useQueryClient } from "@tanstack/react-query"; import { createFileRoute, Link } from "@tanstack/react-router"; import { useTheme } from "next-themes"; diff --git a/apps/dashboard/src/routes/_protected/index.tsx b/apps/dashboard/src/routes/_protected/index.tsx index 86afb86..d71b813 100644 --- a/apps/dashboard/src/routes/_protected/index.tsx +++ b/apps/dashboard/src/routes/_protected/index.tsx @@ -1,4 +1,4 @@ -import { GitPullRequestIcon, IssuesIcon, ReviewsIcon } from "@quickhub/icons"; +import { GitPullRequestIcon, IssuesIcon, ReviewsIcon } from "@diffkit/icons"; import { useQuery } from "@tanstack/react-query"; import { createFileRoute, Link } from "@tanstack/react-router"; import type { ComponentType } from "react"; diff --git a/apps/dashboard/src/routes/_protected/issues.tsx b/apps/dashboard/src/routes/_protected/issues.tsx index 8c0e769..7dcd533 100644 --- a/apps/dashboard/src/routes/_protected/issues.tsx +++ b/apps/dashboard/src/routes/_protected/issues.tsx @@ -1,5 +1,5 @@ -import { CommentIcon, InboxIcon, IssuesIcon } from "@quickhub/icons"; -import { cn } from "@quickhub/ui/lib/utils"; +import { CommentIcon, InboxIcon, IssuesIcon } from "@diffkit/icons"; +import { cn } from "@diffkit/ui/lib/utils"; import { useQuery } from "@tanstack/react-query"; import { createFileRoute } from "@tanstack/react-router"; import { diff --git a/apps/dashboard/src/routes/_protected/pulls.tsx b/apps/dashboard/src/routes/_protected/pulls.tsx index 62fb1b8..a9daec1 100644 --- a/apps/dashboard/src/routes/_protected/pulls.tsx +++ b/apps/dashboard/src/routes/_protected/pulls.tsx @@ -4,8 +4,8 @@ import { GitPullRequestIcon, InboxIcon, ReviewsIcon, -} from "@quickhub/icons"; -import { cn } from "@quickhub/ui/lib/utils"; +} from "@diffkit/icons"; +import { cn } from "@diffkit/ui/lib/utils"; import { useQuery } from "@tanstack/react-query"; import { createFileRoute } from "@tanstack/react-router"; import { diff --git a/apps/dashboard/src/routes/_protected/reviews.tsx b/apps/dashboard/src/routes/_protected/reviews.tsx index f177ba5..e8dccc0 100644 --- a/apps/dashboard/src/routes/_protected/reviews.tsx +++ b/apps/dashboard/src/routes/_protected/reviews.tsx @@ -1,4 +1,4 @@ -import { ReviewsIcon } from "@quickhub/icons"; +import { ReviewsIcon } from "@diffkit/icons"; import { useQuery } from "@tanstack/react-query"; import { createFileRoute } from "@tanstack/react-router"; import { useRef } from "react"; diff --git a/apps/dashboard/src/routes/login.tsx b/apps/dashboard/src/routes/login.tsx index 9990189..56adbec 100644 --- a/apps/dashboard/src/routes/login.tsx +++ b/apps/dashboard/src/routes/login.tsx @@ -1,6 +1,6 @@ -import { GitHubLogo } from "@quickhub/icons"; -import { Button } from "@quickhub/ui/components/button"; -import { Logo } from "@quickhub/ui/components/logo"; +import { GitHubLogo } from "@diffkit/icons"; +import { Button } from "@diffkit/ui/components/button"; +import { Logo } from "@diffkit/ui/components/logo"; import { createFileRoute, redirect } from "@tanstack/react-router"; import { getSession } from "#/lib/auth.functions"; import { signInWithGitHub } from "#/lib/auth-actions"; @@ -23,7 +23,7 @@ function LoginPage() {

- QuickHub + DiffKit

Review workspace diff --git a/apps/dashboard/src/styles.css b/apps/dashboard/src/styles.css index a15c4d8..a2c646c 100644 --- a/apps/dashboard/src/styles.css +++ b/apps/dashboard/src/styles.css @@ -1 +1 @@ -@import "@quickhub/ui/globals.css"; +@import "@diffkit/ui/globals.css"; diff --git a/apps/dashboard/tsconfig.json b/apps/dashboard/tsconfig.json index f4cb4a2..8184a9b 100644 --- a/apps/dashboard/tsconfig.json +++ b/apps/dashboard/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@quickhub/typescript-config/start-app.json", + "extends": "@diffkit/typescript-config/start-app.json", "include": ["**/*.ts", "**/*.tsx"], "compilerOptions": { "baseUrl": ".", diff --git a/apps/dashboard/wrangler.jsonc b/apps/dashboard/wrangler.jsonc index 601eb0c..2580554 100644 --- a/apps/dashboard/wrangler.jsonc +++ b/apps/dashboard/wrangler.jsonc @@ -1,13 +1,13 @@ { "$schema": "node_modules/wrangler/config-schema.json", - "name": "quickhub", + "name": "diffkit", "compatibility_date": "2025-09-02", "compatibility_flags": ["nodejs_compat"], "main": "@tanstack/react-start/server-entry", "d1_databases": [ { "binding": "DB", - "database_name": "quickhub-db", + "database_name": "diffkit-db", "database_id": "7a94a843-0906-416c-9908-4c9fe5339db7", "migrations_dir": "drizzle" } diff --git a/package.json b/package.json index d83c038..33c82b7 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "quickhub", + "name": "diffkit", "private": true, "scripts": { "predev": "node scripts/link-worktree-dev-vars.mjs", diff --git a/packages/icons/package.json b/packages/icons/package.json index 0699250..f50448c 100644 --- a/packages/icons/package.json +++ b/packages/icons/package.json @@ -1,5 +1,5 @@ { - "name": "@quickhub/icons", + "name": "@diffkit/icons", "version": "0.0.0", "private": true, "type": "module", @@ -17,7 +17,7 @@ }, "devDependencies": { "@biomejs/biome": "2.4.5", - "@quickhub/typescript-config": "workspace:*", + "@diffkit/typescript-config": "workspace:*", "@types/react": "^19.2.0", "typescript": "^5.7.2" }, diff --git a/packages/icons/tsconfig.json b/packages/icons/tsconfig.json index fd89060..718ab15 100644 --- a/packages/icons/tsconfig.json +++ b/packages/icons/tsconfig.json @@ -1,4 +1,4 @@ { - "extends": "@quickhub/typescript-config/react-library.json", + "extends": "@diffkit/typescript-config/react-library.json", "include": ["src"] } diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index 2a47a9e..d63d1a1 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,5 +1,5 @@ { - "name": "@quickhub/typescript-config", + "name": "@diffkit/typescript-config", "version": "0.0.0", "private": true, "license": "MIT", diff --git a/packages/ui/components.json b/packages/ui/components.json index cf22131..1ad386a 100644 --- a/packages/ui/components.json +++ b/packages/ui/components.json @@ -11,10 +11,10 @@ }, "iconLibrary": "lucide", "aliases": { - "components": "@quickhub/ui/components", - "utils": "@quickhub/ui/lib/utils", - "hooks": "@quickhub/ui/hooks", - "lib": "@quickhub/ui/lib", - "ui": "@quickhub/ui/components" + "components": "@diffkit/ui/components", + "utils": "@diffkit/ui/lib/utils", + "hooks": "@diffkit/ui/hooks", + "lib": "@diffkit/ui/lib", + "ui": "@diffkit/ui/components" } } diff --git a/packages/ui/package.json b/packages/ui/package.json index e5b6082..1dadfc0 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -1,5 +1,5 @@ { - "name": "@quickhub/ui", + "name": "@diffkit/ui", "version": "0.0.0", "private": true, "type": "module", @@ -54,7 +54,7 @@ }, "devDependencies": { "@biomejs/biome": "2.4.5", - "@quickhub/typescript-config": "workspace:*", + "@diffkit/typescript-config": "workspace:*", "@types/react": "^19.2.0", "@types/react-dom": "^19.2.0", "tailwindcss": "^4.1.18", diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index beb556d..2b9eb15 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -1,10 +1,10 @@ { - "extends": "@quickhub/typescript-config/react-library.json", + "extends": "@diffkit/typescript-config/react-library.json", "include": ["src"], "compilerOptions": { "baseUrl": ".", "paths": { - "@quickhub/ui/*": ["./src/*"] + "@diffkit/ui/*": ["./src/*"] } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 45c7e90..f07f4ca 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,10 +35,10 @@ importers: '@pierre/diffs': specifier: ^1.1.12 version: 1.1.12(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - '@quickhub/icons': + '@diffkit/icons': specifier: workspace:* version: link:../../packages/icons - '@quickhub/ui': + '@diffkit/ui': specifier: workspace:* version: link:../../packages/ui '@tailwindcss/vite': @@ -99,7 +99,7 @@ importers: '@cloudflare/workers-types': specifier: ^4.20260405.1 version: 4.20260405.1 - '@quickhub/typescript-config': + '@diffkit/typescript-config': specifier: workspace:* version: link:../../packages/typescript-config '@tanstack/devtools-vite': @@ -157,7 +157,7 @@ importers: '@biomejs/biome': specifier: 2.4.5 version: 2.4.5 - '@quickhub/typescript-config': + '@diffkit/typescript-config': specifier: workspace:* version: link:../typescript-config '@types/react': @@ -286,7 +286,7 @@ importers: '@biomejs/biome': specifier: 2.4.5 version: 2.4.5 - '@quickhub/typescript-config': + '@diffkit/typescript-config': specifier: workspace:* version: link:../typescript-config '@types/react':