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':