Ports the "Technical Editorial" design sample into real TSX wired to Payload globals/collections. Home/About/Projects (list+detail)/Contact pages render against Payload data. Expands schemas (Home principles, About timeline/skills/gear, Contact channels) to cover the full design surface. Adds seed script that populates realistic AI-drafted content for first boot. Defers writing/resume routes per scope cut. - Design tokens: Material-3 palette + Space Grotesk/Inter typography scale + dot-grid + glassmorphism utilities - Shared layout: Nav, Footer, StatusTerminal, GridOverlay, Button, TechChip in src/components/site - Schemas: expand 5 globals + 6 collections; add auto-slug hook - Seed: scripts/seed.ts — idempotent upsert for media, categories, 6 projects, 8 gear, 3 posts, 5 globals; generates placeholder admin - Contact: form + /api/contact route with optional Turnstile verify - Rename TURNSTILE_SITE_KEY -> NEXT_PUBLIC_TURNSTILE_SITE_KEY (client) - Remove dead src/components/SiteHeader|SiteFooter|StatusTerminal
26 lines
721 B
TypeScript
26 lines
721 B
TypeScript
import type { CollectionConfig } from "payload";
|
|
|
|
export const Media: CollectionConfig = {
|
|
slug: "media",
|
|
access: { read: () => true },
|
|
admin: {
|
|
useAsTitle: "alt",
|
|
group: "System",
|
|
},
|
|
upload: {
|
|
staticDir: "media",
|
|
imageSizes: [
|
|
{ name: "thumb", width: 400, height: 400, position: "centre" },
|
|
{ name: "card", width: 800, height: undefined, position: "centre" },
|
|
{ name: "hero", width: 1600, height: undefined, position: "centre" },
|
|
{ name: "og", width: 1200, height: 630, position: "centre" },
|
|
],
|
|
adminThumbnail: "thumb",
|
|
mimeTypes: ["image/*"],
|
|
},
|
|
fields: [
|
|
{ name: "alt", type: "text", required: true },
|
|
{ name: "credit", type: "text" },
|
|
],
|
|
};
|