>_devkit
apple-marketing-ui
skills/apple-marketing-ui/

references/starting.md

Starting a project from it

This design system ships as a repo you clone per project, not a package you install. That is deliberate: the components are meant to be edited, and a versioned dependency would fight you every time a client wants their own wording, spacing, or section order.

Clone and detach

# 1. clone into the new project folder
git clone git@gitlab.com:software-consultancy/ui-apple.git my-client-project
cd my-client-project

# 2. detach from the starter, so commits go to the project and not back here
rm -rf .git && git init -b main

# 3. point at the project's own remote
git remote add origin git@gitlab.com:<group>/<my-client-project>.git

# 4. install and run
pnpm install && pnpm dev

Step 2 is the one people skip, and skipping it means the first git push tries to write to the starter repo.

Retitle checklist

Search and replace ui-apple, then update:

  • package.json - name, description
  • README.md - replace wholesale; it documents the starter, not the project
  • src/app/layout.tsx - metadata.title, metadata.description
  • src/components/pages/ - rename HomePage.tsx to the real page

Leaving the starter's metadata in place ships ui-apple as the browser tab title and the OpenGraph description, which is the kind of thing that survives to production.

Keep versus replace

Keep as-isReplace
src/components/atoms/, molecules/, organisms/, templates/ - these are the design systemsrc/components/pages/ - placeholders; write the real pages
src/app/globals.css - the tokens are the whole pointsrc/app/page.tsx and the per-level showcase routes - delete or repurpose
src/lib/cn.tssrc/lib/showcase.tsx - only useful if keeping the component showcase
tsconfig.json, next.config.ts, postcss.config.mjsREADME.md

The showcase routes render every component at every variant. They are genuinely useful during design review - keep them behind a route you do not link, and delete them before launch.

Where the work actually goes

Components are unopinionated about content. Filling them with the client's words and images is most of the job, and the temptation at that point is to add a variant "just for this section". Resist it: reach for an existing organism with different content first, and only add a component when two pages need the same new shape.

Deploying static

The repo has been run on GitLab Pages, which needs assetPrefix set in next.config.ts for a project-subpath deployment. If assets 404 in production but work locally, that is the setting to check first.