Initial app scaffold wired end-to-end: Payload 3.82 CMS integrated with Next 16.2 App Router (standalone output), PostgreSQL 17 adapter, Lexical rich text, Tailwind 3 with Material 3 token palette ported from the stitch technical- editorial design, self-hosted Space Grotesk + Inter via next/font, and lucide-react icons. Admin lives at /admin, REST/GraphQL at /api/*, and /api/health returns build SHA/REV for deploy verification. Seven collections (Users, Media, Categories, Projects, Posts, Gear, ContactSubmissions) and six globals (Home, About, Contact, Resume, Navigation, SEO) model the content outlined in docs/PRD.md. Multi-stage Dockerfile builds a non-root standalone runner; Woodpecker pipeline lints, typechecks, builds, audits, builds with Kaniko to git.mosaicstack.dev, scans with Trivy, and links the package. Swarm compose mirrors the mosaic-stack-website Traefik entrypoints=web pattern with www->apex redirect and immutable WEB_IMAGE_TAG. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
37 lines
1015 B
TypeScript
37 lines
1015 B
TypeScript
import type { CollectionConfig } from "payload";
|
|
|
|
export const Gear: CollectionConfig = {
|
|
slug: "gear",
|
|
access: { read: () => true },
|
|
admin: {
|
|
useAsTitle: "name",
|
|
defaultColumns: ["name", "type"],
|
|
description: "Music / maker gear — decorative only for v0.0.x",
|
|
},
|
|
fields: [
|
|
{ name: "name", type: "text", required: true },
|
|
{
|
|
name: "type",
|
|
type: "select",
|
|
options: [
|
|
{ label: "Daily driver", value: "daily-driver" },
|
|
{ label: "Interface", value: "interface" },
|
|
{ label: "Monitor", value: "monitor" },
|
|
{ label: "Workbench", value: "workbench" },
|
|
],
|
|
},
|
|
{ name: "notes", type: "textarea" },
|
|
{ name: "image", type: "upload", relationTo: "media" },
|
|
{
|
|
name: "accent",
|
|
type: "select",
|
|
defaultValue: "tertiary",
|
|
options: [
|
|
{ label: "Primary", value: "primary" },
|
|
{ label: "Secondary", value: "secondary" },
|
|
{ label: "Tertiary", value: "tertiary" },
|
|
],
|
|
},
|
|
],
|
|
};
|