Initial Astro redesign and deploy workflow
This commit is contained in:
@@ -0,0 +1,229 @@
|
||||
export type LaunchSection = {
|
||||
slug: string;
|
||||
label: string;
|
||||
title: string;
|
||||
summary: string;
|
||||
tone: string;
|
||||
strap: string;
|
||||
coverline: string;
|
||||
motif: string;
|
||||
samples: string[];
|
||||
};
|
||||
|
||||
export type SchoolDossier = {
|
||||
slug: string;
|
||||
institution: string;
|
||||
years: string;
|
||||
program: string;
|
||||
city: string;
|
||||
logo: string;
|
||||
teaser: string;
|
||||
};
|
||||
|
||||
export const hero = {
|
||||
kicker: "Blue Note Logic presents",
|
||||
title: "Dave Gilligan, a literary jazz magazine disguised as a personal site.",
|
||||
lede:
|
||||
"Writing, technology, music, languages, family history, consulting, and a little applied pataphysics, arranged as a bright editorial salon rather than a brochure.",
|
||||
sublede:
|
||||
"Built for essays, dossiers, dispatches, experiments, job postings, and AI-assisted editions that can move between English, Norwegian, and French without losing their mood.",
|
||||
};
|
||||
|
||||
export const launchSections: LaunchSection[] = [
|
||||
{
|
||||
slug: "business",
|
||||
label: "01",
|
||||
title: "Business",
|
||||
summary: "Consulting notes, operator essays, client stories, and strategy with sleeves rolled up.",
|
||||
tone: "Sharp, practical, anti-buzzword.",
|
||||
strap: "Operator studies for adults who are tired of consultant vapor.",
|
||||
coverline: "The anti-buzzword ledger.",
|
||||
motif: "Pricing, systems, execution, and elegant refusal.",
|
||||
samples: ["The one-laptop doctrine", "SME systems with teeth", "Boardroom notes without cologne"],
|
||||
},
|
||||
{
|
||||
slug: "education",
|
||||
label: "02",
|
||||
title: "Education",
|
||||
summary: "School dossiers, study notes, intellectual migrations, and academic detours worth keeping.",
|
||||
tone: "Curious, rigorous, lightly mischievous.",
|
||||
strap: "Degrees as cities, schools as chapters, study as migration.",
|
||||
coverline: "The dossier issue.",
|
||||
motif: "Memory, theory, institutions, and weather.",
|
||||
samples: ["Villanova as overture", "Krakow and the bureaucracy sublime", "Kongsberg after experience"],
|
||||
},
|
||||
{
|
||||
slug: "family",
|
||||
label: "03",
|
||||
title: "Family",
|
||||
summary: "A warmer archive for memory, milestones, and the people who keep the music human.",
|
||||
tone: "Private-minded, generous, alive.",
|
||||
strap: "The soft archive, still edited like it matters.",
|
||||
coverline: "Domestic front pages.",
|
||||
motif: "Photographs, notes, kinship, and time.",
|
||||
samples: ["Albums with captions worth reading", "Milestones without sentimentality", "A household in motion"],
|
||||
},
|
||||
{
|
||||
slug: "fun-postings",
|
||||
label: "04",
|
||||
title: "Fun Postings",
|
||||
summary: "Odd notices, cultural flyers, side projects, and delightfully unnecessary announcements.",
|
||||
tone: "Playful, deadpan, collectible.",
|
||||
strap: "The classified page gets strange and starts wearing cologne.",
|
||||
coverline: "Useful nonsense, neatly set.",
|
||||
motif: "Flyers, jokes, events, absurd notices.",
|
||||
samples: ["Cultural dispatches", "Ridiculous but sincere", "Posters for improbable evenings"],
|
||||
},
|
||||
{
|
||||
slug: "writing",
|
||||
label: "05",
|
||||
title: "Writing",
|
||||
summary: "Features, columns, notebooks, and dispatches for readers who like style with backbone.",
|
||||
tone: "Literary, international, smoky.",
|
||||
strap: "Columns with brass in the lungs and data in the pockets.",
|
||||
coverline: "Smoke, syntax, and reportage.",
|
||||
motif: "Essays, dispatches, notebook pages.",
|
||||
samples: ["On systems and sorrow", "Nordic field notes", "Paris after the spreadsheet"],
|
||||
},
|
||||
{
|
||||
slug: "jazz-music",
|
||||
label: "06",
|
||||
title: "Jazz and Music",
|
||||
summary: "Listening notes, deep cuts, rhythm studies, and the low-lit logic of serious groove.",
|
||||
tone: "Velvet, brassy, precise.",
|
||||
strap: "For records, rooms, and players who understand that rhythm is governance.",
|
||||
coverline: "Blue notes and side doors.",
|
||||
motif: "Listening, memory, improvisation, timing.",
|
||||
samples: ["Records after midnight", "Why groove beats branding", "A private history of swing"],
|
||||
},
|
||||
{
|
||||
slug: "languages",
|
||||
label: "07",
|
||||
title: "Languages",
|
||||
summary: "Translation, vocabulary, cross-border humor, and the pleasures of switching registers.",
|
||||
tone: "Polyglot, sly, welcoming.",
|
||||
strap: "A section for mistranslation, seduction, and grammatical diplomacy.",
|
||||
coverline: "The multilingual cabinet.",
|
||||
motif: "French, Norwegian, English, and elegant trouble.",
|
||||
samples: ["Words that travel badly", "Translation as personality", "Syntax with a passport"],
|
||||
},
|
||||
{
|
||||
slug: "ai-lab",
|
||||
label: "08",
|
||||
title: "AI Lab",
|
||||
summary: "Built-in tools, experiments, prompt systems, and practical machine intelligence with taste.",
|
||||
tone: "Forward-looking, grounded, open source friendly.",
|
||||
strap: "Machine intelligence without the conference lanyard.",
|
||||
coverline: "The atelier for useful futures.",
|
||||
motif: "Prompts, tooling, agentic systems, humane interfaces.",
|
||||
samples: ["AI that can write in-house style", "Editorial controls, not gimmicks", "Open tools with manners"],
|
||||
},
|
||||
{
|
||||
slug: "norway",
|
||||
label: "09",
|
||||
title: "Norway",
|
||||
summary: "Kongsberg dispatches, civic notes, local texture, and Scandinavian reality at street level.",
|
||||
tone: "Observant, civic, place-aware.",
|
||||
strap: "A local paper for one town and several realities.",
|
||||
coverline: "Kongsberg, correctly observed.",
|
||||
motif: "Place, policy, weather, Nordic texture.",
|
||||
samples: ["Silver city dispatches", "The civic weather report", "Norway beyond brochure language"],
|
||||
},
|
||||
{
|
||||
slug: "projects",
|
||||
label: "10",
|
||||
title: "Projects",
|
||||
summary: "Things launched, repaired, modernized, or imagined into being across code, content, and data.",
|
||||
tone: "Builder energy, clean receipts.",
|
||||
strap: "The workshop floor, but art directed.",
|
||||
coverline: "Built, fixed, and shipped.",
|
||||
motif: "Case files, before/after, code and consequence.",
|
||||
samples: ["From schema to interface", "Deployments with fingerprints", "Systems that survived contact"],
|
||||
},
|
||||
{
|
||||
slug: "cv",
|
||||
label: "11",
|
||||
title: "CV",
|
||||
summary: "The formal record, still elegant, still readable, and never trapped in a dusty PDF.",
|
||||
tone: "Professional, legible, confident.",
|
||||
strap: "The biography in pressed clothes.",
|
||||
coverline: "A resume that behaves like publishing.",
|
||||
motif: "Timeline, experience, proof, education.",
|
||||
samples: ["Careers across countries", "A record without dead language", "Credentials with pulse"],
|
||||
},
|
||||
];
|
||||
|
||||
export const schoolDossiers: SchoolDossier[] = [
|
||||
{
|
||||
slug: "usn",
|
||||
institution: "University of South-Eastern Norway",
|
||||
years: "2021 to present",
|
||||
program: "MSc, Innovation and Technology Management",
|
||||
city: "Kongsberg, Norway",
|
||||
logo: "/images/schools/usn.svg",
|
||||
teaser:
|
||||
"A systems laboratory where engineering discipline and lived experience meet over coffee, models, and unfinished questions.",
|
||||
},
|
||||
{
|
||||
slug: "jagiellonian",
|
||||
institution: "Jagiellonian University",
|
||||
years: "2010 to 2011",
|
||||
program: "European Union Studies",
|
||||
city: "Krakow, Poland",
|
||||
logo: "/images/schools/jagiellonian.svg",
|
||||
teaser:
|
||||
"History, bureaucracy, Europe, and the old civilizational habit of asking larger questions than the room can comfortably hold.",
|
||||
},
|
||||
{
|
||||
slug: "escp-moore",
|
||||
institution: "ESCP and Darla Moore",
|
||||
years: "1997 to 1999",
|
||||
program: "International MBA and Master of International Business",
|
||||
city: "Paris and Columbia, South Carolina",
|
||||
logo: "/images/schools/escp-moore.svg",
|
||||
teaser:
|
||||
"A dual orbit of French polish and American execution, where commerce learned to travel with style and consequence.",
|
||||
},
|
||||
{
|
||||
slug: "european-university",
|
||||
institution: "European University and Institut Cooreman",
|
||||
years: "1996",
|
||||
program: "MBA and Master of International Trade",
|
||||
city: "Brussels, Belgium",
|
||||
logo: "/images/schools/european-university.svg",
|
||||
teaser:
|
||||
"Trade, movement, and continental ambition, written in the language of deals, trains, and multilingual evenings.",
|
||||
},
|
||||
{
|
||||
slug: "villanova",
|
||||
institution: "Villanova University",
|
||||
years: "1991 to 1995",
|
||||
program: "BSc, Business Administration",
|
||||
city: "Philadelphia, Pennsylvania",
|
||||
logo: "/images/schools/villanova.svg",
|
||||
teaser:
|
||||
"The Main Line chapter, where finance, communication, and character first learned to share the same bandstand.",
|
||||
},
|
||||
];
|
||||
|
||||
export const fieldNotes = [
|
||||
"AI-backed edition controls for English, Norwegian, and French.",
|
||||
"A magazine structure ready for essays, archives, member access, and dossiers.",
|
||||
"A future-facing front end sitting on top of PHP, SQL, and role-based permissions.",
|
||||
];
|
||||
|
||||
export const editorialPromises = [
|
||||
"Keep the light background and the page breathable.",
|
||||
"Make AI visible as a craft tool, not a gimmick.",
|
||||
"Treat the CV, the essays, and the family archive with equal design seriousness.",
|
||||
];
|
||||
|
||||
export const coverLines = [
|
||||
"A literary technology salon with jazz smoke in the margins.",
|
||||
"Five school dossiers, each signed with a clearly counterfeit blessing.",
|
||||
"AI in the machinery, not sprayed on top like fresh cologne.",
|
||||
];
|
||||
|
||||
export function getSectionHref(section: LaunchSection) {
|
||||
return section.slug === "education" ? "/education" : `/${section.slug}`;
|
||||
}
|
||||
Reference in New Issue
Block a user