Refine SEO, uploads, and deploy handling

This commit is contained in:
2026-05-02 10:48:08 +02:00
parent b6be6ed2ac
commit a9dfa6ea11
97 changed files with 373 additions and 327 deletions

View File

@@ -19,16 +19,16 @@ final class HomepageAnnouncementLaunchSeeder extends Seeder
[
'placement' => HomepageAnnouncement::PLACEMENT_HOMEPAGE_AFTER_FEATURED,
'type' => HomepageAnnouncement::TYPE_LAUNCH,
'title' => 'Skinbase Nova is live.',
'title' => 'Skinbase is live.',
],
[
'subtitle' => 'A new chapter for the Skinbase creative community.',
'badge_text' => 'Launch Day · 1 May 2026',
'content_html' => implode("\n", [
'<p><strong>Today, 1 May 2026, Skinbase begins a new chapter.</strong></p>',
'<p>Skinbase Nova is a modern reboot of our creative community for digital art, wallpapers, skins, photography, customization, and discovery.</p>',
'<p>Skinbase is a modern reboot of our creative community for digital art, wallpapers, skins, photography, customization, and discovery.</p>',
'<p>We are bringing the spirit of classic Skinbase into a faster, cleaner, and more modern experience — built for creators, fans, and the future.</p>',
'<p>Welcome to <strong>Skinbase Nova</strong>.</p>',
'<p>Welcome to <strong>Skinbase</strong>.</p>',
]),
'status' => HomepageAnnouncement::STATUS_PUBLISHED,
'is_active' => true,

View File

@@ -54,11 +54,11 @@ final class NewsLaunchSeeder extends Seeder
$articles = [
[
'slug' => 'welcome-to-skinbase-nova',
'title' => 'Welcome to Skinbase Nova',
'title' => 'Welcome to Skinbase',
'type' => NewsArticle::TYPE_PLATFORM_UPDATE,
'category' => $categories['platform'],
'excerpt' => 'A first look at the refreshed Skinbase experience and the editorial direction behind Nova.',
'content' => "# Welcome to Skinbase Nova\n\nSkinbase Nova brings publishing, discovery, Groups, and editorial storytelling into a single platform experience.\n\n## What is new\n\n- a dedicated newsroom\n- stronger creator identity surfaces\n- deeper internal linking across Groups, releases, and profiles\n- cleaner editorial publishing tools inside Studio\n\nNova is designed to feel active, curated, and connected to the people making the work.",
'content' => "# Welcome to Skinbase\n\nSkinbase brings publishing, discovery, Groups, and editorial storytelling into a single platform experience.\n\n## What is new\n\n- a dedicated newsroom\n- stronger creator identity surfaces\n- deeper internal linking across Groups, releases, and profiles\n- cleaner editorial publishing tools inside Studio\n\nNova is designed to feel active, curated, and connected to the people making the work.",
'tags' => [$tags['nova'], $tags['platform-update']],
'days_ago' => 10,
'featured' => true,

View File

@@ -32,7 +32,7 @@ class NovaCardDemoSeeder extends Seeder
['email' => (string) Arr::get($userConfig, 'email', 'nova-cards-demo@skinbase.test')],
[
'username' => (string) Arr::get($userConfig, 'username', 'nova.cards'),
'name' => (string) Arr::get($userConfig, 'name', 'Nova Cards'),
'name' => (string) Arr::get($userConfig, 'name', 'Cards'),
'password' => (string) Arr::get($userConfig, 'password', 'password'),
'role' => 'user',
]
@@ -43,9 +43,9 @@ class NovaCardDemoSeeder extends Seeder
'slug' => 'official-spark',
'title' => 'Official Spark',
'quote_text' => 'Small moments of focus turn into visible momentum.',
'quote_author' => 'Skinbase Nova',
'quote_author' => 'Skinbase',
'quote_source' => 'Launch Collection',
'description' => 'An official Nova Cards demo card for featured browse surfaces.',
'description' => 'An official Cards demo card for featured browse surfaces.',
'category_slug' => 'motivation',
'template_slug' => 'neon-nova',
'format' => NovaCard::FORMAT_SQUARE,
@@ -61,9 +61,9 @@ class NovaCardDemoSeeder extends Seeder
'slug' => 'soft-breath',
'title' => 'Soft Breath',
'quote_text' => 'Rest is not a pause from growth. It is part of it.',
'quote_author' => 'Skinbase Nova',
'quote_author' => 'Skinbase',
'quote_source' => 'Healing Notes',
'description' => 'A calm demo card showing the softer side of Nova Cards.',
'description' => 'A calm demo card showing the softer side of Cards.',
'category_slug' => 'healing',
'template_slug' => 'soft-pastel',
'format' => NovaCard::FORMAT_PORTRAIT,
@@ -79,7 +79,7 @@ class NovaCardDemoSeeder extends Seeder
'slug' => 'night-echo',
'title' => 'Night Echo',
'quote_text' => 'Not every quiet room is empty. Some are full of answers.',
'quote_author' => 'Skinbase Nova',
'quote_author' => 'Skinbase',
'quote_source' => 'Dark Mood Study',
'description' => 'A darker official demo card for mood-oriented discovery blocks.',
'category_slug' => 'dark-mood',
@@ -97,7 +97,7 @@ class NovaCardDemoSeeder extends Seeder
'slug' => 'editorial-glow',
'title' => 'Editorial Glow',
'quote_text' => 'Design with restraint, then let one accent do the speaking.',
'quote_author' => 'Skinbase Nova',
'quote_author' => 'Skinbase',
'quote_source' => 'Editorial Kit',
'description' => 'A crisp editorial-format demo card for official collections.',
'category_slug' => 'motivation',
@@ -115,7 +115,7 @@ class NovaCardDemoSeeder extends Seeder
'slug' => 'story-bloom',
'title' => 'Story Bloom',
'quote_text' => 'If the layout breathes, the words can reach further.',
'quote_author' => 'Skinbase Nova',
'quote_author' => 'Skinbase',
'quote_source' => 'Story Vertical Pack',
'description' => 'A vertical story-oriented demo card for public browsing and challenges.',
'category_slug' => 'healing',
@@ -133,7 +133,7 @@ class NovaCardDemoSeeder extends Seeder
'slug' => 'remix-launch-variant',
'title' => 'Remix Launch Variant',
'quote_text' => 'Take the spark and give it a new rhythm.',
'quote_author' => 'Skinbase Nova',
'quote_author' => 'Skinbase',
'quote_source' => 'Remix Lab',
'description' => 'A seeded remix showing lineage in demo content.',
'category_slug' => 'motivation',
@@ -262,7 +262,7 @@ class NovaCardDemoSeeder extends Seeder
['user_id' => $user->id, 'slug' => 'editorial-favorites'],
[
'name' => 'Editorial Favorites',
'description' => 'Officially curated Nova Cards spotlighting launch visuals, remixes, and story-first layouts.',
'description' => 'Officially curated Cards spotlighting launch visuals, remixes, and story-first layouts.',
'visibility' => NovaCardCollection::VISIBILITY_PUBLIC,
'official' => true,
'featured' => true,