feat: Next 16 + Payload 3 scaffold with Kaniko CI and Swarm deploy (#1)
Some checks failed
ci/woodpecker/push/web Pipeline failed
Some checks failed
ci/woodpecker/push/web Pipeline failed
Co-authored-by: Jason Woltje <jason@diversecanvas.com> Co-committed-by: Jason Woltje <jason@diversecanvas.com>
This commit was merged in pull request #1.
This commit is contained in:
27
src/globals/About.ts
Normal file
27
src/globals/About.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import type { GlobalConfig } from "payload";
|
||||
|
||||
export const About: GlobalConfig = {
|
||||
slug: "about",
|
||||
access: { read: () => true },
|
||||
fields: [
|
||||
{ name: "intro", type: "richText" },
|
||||
{ name: "makerMindset", type: "richText" },
|
||||
{ name: "soundtrack", type: "richText" },
|
||||
{
|
||||
name: "gearRefs",
|
||||
type: "relationship",
|
||||
relationTo: "gear",
|
||||
hasMany: true,
|
||||
},
|
||||
{
|
||||
name: "timeline",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "year", type: "text", required: true },
|
||||
{ name: "title", type: "text", required: true },
|
||||
{ name: "note", type: "textarea" },
|
||||
],
|
||||
},
|
||||
{ name: "portrait", type: "upload", relationTo: "media" },
|
||||
],
|
||||
};
|
||||
33
src/globals/Contact.ts
Normal file
33
src/globals/Contact.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { GlobalConfig } from "payload";
|
||||
|
||||
export const Contact: GlobalConfig = {
|
||||
slug: "contact",
|
||||
access: { read: () => true },
|
||||
fields: [
|
||||
{
|
||||
name: "availabilityBadge",
|
||||
type: "text",
|
||||
defaultValue: "Accepting new inquiries",
|
||||
},
|
||||
{ name: "timezoneLabel", type: "text", defaultValue: "America/Chicago" },
|
||||
{ name: "directEmail", type: "email" },
|
||||
{
|
||||
name: "socialLinks",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "label", type: "text", required: true },
|
||||
{ name: "href", type: "text", required: true },
|
||||
{ name: "icon", type: "text" },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "newsletterEnabled",
|
||||
type: "checkbox",
|
||||
defaultValue: false,
|
||||
admin: {
|
||||
description:
|
||||
"Enable the newsletter subscribe UI. Keep false until Mautic is deployed.",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
35
src/globals/Home.ts
Normal file
35
src/globals/Home.ts
Normal file
@@ -0,0 +1,35 @@
|
||||
import type { GlobalConfig } from "payload";
|
||||
|
||||
export const Home: GlobalConfig = {
|
||||
slug: "home",
|
||||
access: { read: () => true },
|
||||
fields: [
|
||||
{ name: "heroPrefix", type: "text", defaultValue: "01 // THE MANIFESTO" },
|
||||
{ name: "heroHeadline", type: "richText" },
|
||||
{ name: "heroSub", type: "textarea" },
|
||||
{
|
||||
name: "ctas",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "label", type: "text", required: true },
|
||||
{ name: "href", type: "text", required: true },
|
||||
{
|
||||
name: "style",
|
||||
type: "select",
|
||||
defaultValue: "primary",
|
||||
options: [
|
||||
{ label: "Primary (neon)", value: "primary" },
|
||||
{ label: "Secondary", value: "secondary" },
|
||||
{ label: "Ghost", value: "ghost" },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "featuredProjects",
|
||||
type: "relationship",
|
||||
relationTo: "projects",
|
||||
hasMany: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
21
src/globals/Navigation.ts
Normal file
21
src/globals/Navigation.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import type { GlobalConfig } from "payload";
|
||||
|
||||
export const Navigation: GlobalConfig = {
|
||||
slug: "navigation",
|
||||
access: { read: () => true },
|
||||
fields: [
|
||||
{
|
||||
name: "primaryLinks",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "label", type: "text", required: true },
|
||||
{ name: "href", type: "text", required: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "footerStatusText",
|
||||
type: "text",
|
||||
defaultValue: "LATENCY: 42ms | CORE STATUS: NOMINAL",
|
||||
},
|
||||
],
|
||||
};
|
||||
46
src/globals/Resume.ts
Normal file
46
src/globals/Resume.ts
Normal file
@@ -0,0 +1,46 @@
|
||||
import type { GlobalConfig } from "payload";
|
||||
|
||||
export const Resume: GlobalConfig = {
|
||||
slug: "resume",
|
||||
access: { read: () => true },
|
||||
fields: [
|
||||
{ name: "summary", type: "textarea" },
|
||||
{
|
||||
name: "experience",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "company", type: "text", required: true },
|
||||
{ name: "role", type: "text", required: true },
|
||||
{ name: "startDate", type: "date" },
|
||||
{ name: "endDate", type: "date" },
|
||||
{ name: "current", type: "checkbox", defaultValue: false },
|
||||
{
|
||||
name: "bullets",
|
||||
type: "array",
|
||||
fields: [{ name: "text", type: "textarea" }],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "skills",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "category", type: "text", required: true },
|
||||
{
|
||||
name: "items",
|
||||
type: "array",
|
||||
fields: [{ name: "name", type: "text" }],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "education",
|
||||
type: "array",
|
||||
fields: [
|
||||
{ name: "institution", type: "text", required: true },
|
||||
{ name: "credential", type: "text" },
|
||||
{ name: "year", type: "text" },
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
25
src/globals/SEO.ts
Normal file
25
src/globals/SEO.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import type { GlobalConfig } from "payload";
|
||||
|
||||
export const SEO: GlobalConfig = {
|
||||
slug: "seo",
|
||||
access: { read: () => true },
|
||||
fields: [
|
||||
{ name: "siteTitle", type: "text", defaultValue: "Jason Woltje" },
|
||||
{
|
||||
name: "defaultDescription",
|
||||
type: "textarea",
|
||||
defaultValue:
|
||||
"A multidisciplinary architect of digital ecosystems. Engineering growth through technological mastery and strategic leadership.",
|
||||
},
|
||||
{ name: "defaultOgImage", type: "upload", relationTo: "media" },
|
||||
{ name: "twitterHandle", type: "text" },
|
||||
{
|
||||
name: "jsonLdPerson",
|
||||
type: "json",
|
||||
admin: {
|
||||
description:
|
||||
"Schema.org Person JSON-LD. Injected verbatim into the home page <head>.",
|
||||
},
|
||||
},
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user