Overview
The shared theme, conventions, and showcase for PlainConcepts Platform apps.
Platform Foundations keeps many independent Platform apps consistent without a heavy in-house framework. It ships tokens and conventions, not a component library.
The source lives at PlainConceptsPlatform/Foundations.
How it works
PlainConcepts is a consultancy, so every app has its own team, domain, and lifecycle. The foundation shares the two things that benefit from being shared, and stays out of the way on everything else:
- The look, through one small token package every app installs.
- The conventions, through docs, a reference architecture, and installable agent skills.
A few decisions shape the whole thing, and it helps to know why:
- shadcn/ui with shared tokens, not a component library. Apps copy component source into their own repo, so they can read and edit it and are never locked into our versioning. What keeps them consistent is that they all import the same tokens. You get local control and a shared look at the same time.
- Tokens are the shared artifact, not components. One small package is cheap to maintain and hard to diverge from. To roll out a change everywhere, edit the tokens and bump the version.
- Pragmatic Feature-Sliced Design. Enough structure to scale, without forcing every layer on a small app. Start with three folders and earn the rest.
- The same stack we recommend. The foundation itself is Next.js, React, and TypeScript, so it dogfoods its own advice rather than shipping something it does not use.
- Backend is in scope too. The .NET conventions live here as well, sourced from the Plain engineering skills.
The result is meant to be a foundation teams actually adopt, not a platform that is impressive but expensive to live with.
What this showcase is for
- See the Platform theme applied to real components and screens.
- Copy the token names and patterns your app should use.
- It is not a copy of the shadcn docs. For full component APIs, use ui.shadcn.com.
Start here
Getting started
Install the theme and get a themed app running in three steps.
Frontend
The React stack, architecture, theming, and the everyday patterns.
Backend
The .NET conventions and reference architecture.
AI
Prepare a codebase for agents, run them on a cadence, and manage the loops.
Tokens
The live token gallery, generated from the theme package.
Components
The themed catalog, with when-to-use guidance per component.
What you get from the foundation
@plainconceptsplatform/ui-theme
The design tokens, CSS only and no components. Install it to get the full Platform look.
@plainconceptsplatform/ui-components
Shared React components: the responsive PlainLogo, and the slot-based DataTable.
shadcn/ui components
Added per app with the CLI, themed by the shared tokens with no extra work.
Reference docs
Architecture, design guidelines, and agent setup, synced from the canonical files.
The stack
Next.js (App Router) + React + TypeScript, shadcn/ui on Radix + Tailwind v4, themed by
@plainconceptsplatform/ui-theme, icons from Lucide. DI via inversify-hooks (mandatory).
Package manager pnpm. The full stack list and repo layout are in the
Architecture reference.