circle
llms.txt4.6k starsChanged 3 months agoMITView on GitHub
Linear-inspired project management UI template (issues + issue detail pages, projects + project detail pages, a projects table/timeline, teams, cycles, members + member profiles, inbox, documents, and a mock Agent chat) built with Next.js 15 (App Router), React 19, TypeScript, Tailwind CSS v4, shadcn/ui, Zustand and nuqs. Pure front-end: all data is fake and lives in mock-data/; mutations are in-memory via Zustand stores; filters/sorting are URL state via nuqs. No backend, no auth. Key facts for coding agents:
Files
# Circle
> Linear-inspired project management UI template (issues + issue detail pages, projects + project detail pages, a projects table/timeline, teams, cycles, members + member profiles, inbox, documents, and a mock Agent chat) built with Next.js 15 (App Router), React 19, TypeScript, Tailwind CSS v4, shadcn/ui, Zustand and nuqs. Pure front-end: all data is fake and lives in `mock-data/`; mutations are in-memory via Zustand stores; filters/sorting are URL state via nuqs. No backend, no auth.
Key facts for coding agents:
- Page pattern: every route in `app/` wraps a feature component from `components/common/` in `MainLayout` with a header from `components/layout/headers/`.
- Domain types live WITH the fake data in `mock-data/` (Issue, Status + StatusCategory, Cycle, Project, Team, User, LabelInterface, Priority, TeamDocument, InboxItem).
- Issue mutations only go through `store/issues-store.ts`; notifications through `store/notifications-store.ts`; posted project updates through `store/project-updates-store.ts`; agent conversations through `store/agent-chat-store.ts`. Other pages read mock arrays directly.
- Filter "stores" (`filter-store`, `members/projects/team-filter-store`) are nuqs hooks — state lives in the URL. Issue filters use bazza/ui's FiltersState (`?filters=` JSON, with operators) rendered by the vendored `components/data-table-filter` (Linear-style chips). View/display preferences (`view-store`, `display-settings-store`) are persisted Zustand stores.
- Statuses are category-driven (`triage | backlog | unstarted | started | completed | canceled`) — the Active/Backlog/All tabs, cycle progress and insights all derive from `status.category`.
- URLs: `/{orgId}/team/{teamId}/{all|active|backlog|cycles|cycle/active|cycle/upcoming|overview|documents|members|projects|views}`, `/{orgId}/issue/{identifier}`, `/{orgId}/profiles/{userId}`, `/{orgId}/project/{projectId}/{overview|activity|issues}`, `/{orgId}/agent`, `/{orgId}/reviews` (+ `/created`) and `/{orgId}/review/{reviewId}/{,review,changes}` (PR reviews split view: Overview/Guide/Diff; data in `mock-data/reviews.ts`), `/{orgId}/{initiatives|views}` (+ details `/{orgId}/initiative/{initiativeId}` with Overview/Activity/Projects tabs and `/{orgId}/view/{viewId}`; data in `mock-data/initiatives.ts` / `mock-data/views.ts`) plus `/{orgId}/{inbox|my-issues|projects|teams|members|settings}` (`my-issues` = Assigned/Created/Subscribed/Activity tabs, insights + breakdown panels). Settings subpages: `/{orgId}/settings/{preferences|profile|notifications|code-and-reviews|security|connected-accounts|agent-personalization|ai|issue-labels|issue-templates|project-statuses|integrations}`, `/{orgId}/settings/teams/{teamId|new}`, plus placeholder pages `{slas|project-labels|project-templates|project-updates|initiatives|documents|customer-requests|releases|pulse|asks|emojis}` (generic empty state via `components/common/settings/settings-placeholder.tsx`) (components in `components/common/settings/`, nav in `components/layout/sidebar/nav-settings.tsx`). `orgId` is hard-coded to `lndev-ui` in mock data.
- Style: Prettier 3-space indent, Tailwind `cn()` merging, `'use client'` on store-consuming components.
## Docs
- [AI Guide](./AI_GUIDE.md): full architecture map, data model, feature inventory, API-integration seams and conventions
- [README](./README.md): project intro and setup
## Data & state
- [mock-data/status.tsx](./mock-data/status.tsx): 13 workflow statuses, categories, SVG icon builders
- [mock-data/issues.ts](./mock-data/issues.ts): 291 seeded issues, LexoRank ranks, grouping/filter helpers
- [mock-data/cycles.ts](./mock-data/cycles.ts): cycles with capacity/scope/burn-up data + helpers
- [mock-data/issue-details.ts](./mock-data/issue-details.ts): rich issue-page content blocks, activity, relations + deterministic fallback
- [mock-data/project-details.ts](./mock-data/project-details.ts): rich project-page content (description blocks, milestones, updates, activity) + deterministic fallback
- [mock-data/agent.ts](./mock-data/agent.ts): agent examples + deterministic canned replies
- [store/issues-store.ts](./store/issues-store.ts): the only mutable issue state (CRUD + filters)
- [store/agent-chat-store.ts](./store/agent-chat-store.ts): agent conversations (multi-chat, streamed replies)
## Key UI
- [components/layout/main-layout.tsx](./components/layout/main-layout.tsx): app shell used by every page
- [components/common/issues/all-issues.tsx](./components/common/issues/all-issues.tsx): grouped issue views (list/board, category tabs, insights panel)
- [components/common/issues/cycle-issues.tsx](./components/common/issues/cycle-issues.tsx): cycle-scoped issue view with side panels
- [components/common/issues/details/issue-details.tsx](./components/common/issues/details/issue-details.tsx): issue detail page (blocks renderer, activity, properties panel)
- [components/layout/headers/display-options.tsx](./components/layout/headers/display-options.tsx): Linear-style Display popover (grouping, ordering, display properties)
- [components/common/issues/issue-filter-columns.tsx](./components/common/issues/issue-filter-columns.tsx): filterable columns config + applyIssueFilters (operators)
- [components/data-table-filter](./components/data-table-filter): vendored bazza/ui filter component (chips UI, filter fns)
- [components/common/cycles/cycles.tsx](./components/common/cycles/cycles.tsx): cycles timeline with burn-up chart
- [components/common/members/member-profile.tsx](./components/common/members/member-profile.tsx): member profile (Assigned/Created tabs, identity panel, breakdowns)
- [components/common/projects/details/project-overview.tsx](./components/common/projects/details/project-overview.tsx): project detail tabs (overview/activity/issues) + properties panel
- [components/common/projects/projects.tsx](./components/common/projects/projects.tsx): projects page — All table + Active timeline (gantt) + Health/Teams/Leads insights panel
- [components/common/agent/agent-chat.tsx](./components/common/agent/agent-chat.tsx): functional mock Agent chat (canned replies, word-by-word streaming)
## Optional
- [components/ui](./components/ui): vendored shadcn/ui primitives — do not hand-edit unless customizing the design system
Trending
Quiet since August.thin dataabout the whole repository
Who's talking about ln-dev7/circle
- @adityamitra.bsky.social“Looks just like Linear https://github.com/ln-dev7/circle #github #opensource #projectmanagement”Bluesky · Aug 6, 2026 · 4 likes
- @lndev.bsky.social“🚀 Introducing CIRCLE – An open-source template for your management projects. built with shadcn/ui and …”Bluesky · Mar 6, 2025 · 4 likes
- @github-trending-js.bsky.social“📦 ln-dev7 / circle ⭐ 3,012 (+85) 🗒 TypeScript UI - Project management interface inspired by Linear. Built …”Bluesky · Aug 6, 2026 · 2 likes
- @lndev.bsky.social“Introducing the Inbox Screen on Circle – an open-source template for your management projects. GitHub : …”Bluesky · Aug 6, 2025 · 2 likes
- @lndev.bsky.social“Open-source template for your management projects, built with shadcn-ui and inspired by linear's design. …”Bluesky · Mar 16, 2025 · 2 likes
The biggest 5 of 6 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 6
Talked about on Bluesky (6 times).
On Bluesky · 6
- Aug 6, 2026Looks just like Linear https://github.com/ln-dev7/circle #github #opensource #projectmanagement — @adityamitra.bsky.social4 likes and reposts
- Mar 6, 2025🚀 Introducing CIRCLE – An open-source template for your management projects. built with shadcn/ui and inspired by Linear's design.… — @lndev.bsky.social4 likes and reposts
- Aug 6, 2026📦 ln-dev7 / circle ⭐ 3,012 (+85) 🗒 TypeScript UI - Project management interface inspired by Linear. Built with Next.js and shadcn/ui,… — @github-trending-js.bsky.social2 likes and reposts
- Aug 6, 2025Introducing the Inbox Screen on Circle – an open-source template for your management projects. GitHub : github.com/ln-dev7/circle Built… — @lndev.bsky.social2 likes and reposts
- Mar 16, 2025Open-source template for your management projects, built with shadcn-ui and inspired by linear's design. GitHub : github.com/ln-dev7/circle — @lndev.bsky.social2 likes and reposts
1 more on Bluesky
- Sep 28, 2025Open-source template for your management projects. GitHub : github.com/ln-dev7/circle — @lndev.bsky.social1 likes and repost
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

