From 2b62304349c5b17be9573670c8b2b9f6e34cad36 Mon Sep 17 00:00:00 2001
From: Paul Couture <paul@paulcouture.com>
Date: Fri, 15 Dec 2023 02:47:48 +0000
Subject: [PATCH] fix: initial changes to allow for intial deployment

---
 .gitignore                                    |  2 +
 docker-compose.yml                            | 63 ++++++++++++++++---
 .../Http/Controllers/ArtworkController.php    |  2 +-
 .../views/artworks/artwork.blade.php          |  8 +--
 site/resources/views/artworks/card.blade.php  | 13 ++--
 .../views/episodes/episode.blade.php          |  8 +--
 site/resources/views/layouts/master.blade.php | 26 ++++----
 .../views/partials/favicon.blade.php          | 36 +++++------
 .../views/podcasts/podcast.blade.php          |  3 +-
 site/resources/views/profile/artist.blade.php | 22 +------
 .../partials/single-artist-card.blade.php     |  2 +-
 11 files changed, 107 insertions(+), 78 deletions(-)

diff --git a/.gitignore b/.gitignore
index 77cf5f2..ad1bf25 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,5 @@ legacypublic
 migrated_artworks_files.tar.gz
 migrated_thumbnail_files.tar.gz
 site/.yarn/releases/yarn-1.22.19.cjs
+site/public/assets
+redis/*
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
index e5abf35..a2663b1 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -26,7 +26,18 @@ services:
       LARAVEL_SCHEDULE_ENABLED: true
       PHP_OPEN_BASEDIR: "/var/www/html:/static"
     ports:
-      - "80:80"
+      - "8776:80"
+    networks:
+      - proxy
+      - default
+    labels:
+      - "traefik.enable=true"
+      - "traefik.docker.network=proxy"
+      # Entry Point for https
+      - "traefik.http.routers.podcastartgen-secure.entrypoints=websecure"
+      - "traefik.http.routers.podcastartgen-secure.rule=Host(`new.noagendaartgenerator.com`)"
+      - "traefik.http.routers.podcastartgen-secure.service=podcastartgen-service"
+      - "traefik.http.services.podcastartgen-service.loadbalancer.server.port=80"
     links:
       - db
       - redis
@@ -34,13 +45,24 @@ services:
   static:
     image: nginx:alpine
     volumes:
-      - ./static:/usr/share/nginx/html
+      - ${PATH_TO_STATIC}:/usr/share/nginx/html
     environment:
       TZ: UTC
       PUID: ${UID:-1000}
       PGID: ${GID:-1000}
     ports:
-      - "8181:80"
+      - "8777:80"
+    networks:
+      - proxy
+      - default
+    labels:
+      - "traefik.enable=true"
+      - "traefik.docker.network=proxy"
+      # Entry Point for https
+      - "traefik.http.routers.podcastartstatic-secure.entrypoints=websecure"
+      - "traefik.http.routers.podcastartstatic-secure.rule=Host(`static.noagendaartgenerator.com`)"
+      - "traefik.http.routers.podcastartstatic-secure.service=podcastartstatic-service"
+      - "traefik.http.services.podcastartstatic-service.loadbalancer.server.port=80"
   db:
     image: mariadb:latest
     env_file: .env
@@ -53,15 +75,42 @@ services:
     volumes:
       - "./db/data:/var/lib/mysql"
       - "./db/dump:/docker-entrypoint-initdb.d"
+    networks:
+      - proxy
+      - default
     ports:
-      - "3306:3306"
+      - "51533:3306" # Adjust the external port if needed
+    labels:
+      - "traefik.enable=true"
+      - "traefik.docker.network=proxy"
+      - "traefik.http.routers.podcastartdb-secure.entrypoints=websecure"
+      - "traefik.http.routers.podcastartdb-secure.rule=Host(`podcastartdb.noagenda.dev`)"
+      - "traefik.http.routers.podcastartdb-secure.service=podcastartdb-service"
+      - "traefik.http.services.podcastartdb-service.loadbalancer.server.port=3306"
   redis:
-    image: redis:latest
+    image: redis:alpine
+    command: redis-server --appendonly yes --requirepass ${REDIS_SEC_PASSWORD}
     ports:
-      - "6379:6379"
+      - "56379:6379"
+    volumes:
+      - ./redis/redis.conf:/usr/local/etc/redis/redis.conf
+      - ./redis/redis-data:/var/lib/redis
+    environment:
+      - REDIS_REPLICATION_MODE=master
+    labels:
+      - "traefik.enable=true"
+      - "traefik.docker.network=proxy"
+      - "traefik.http.routers.paredis-secure.entrypoints=websecure"
+      - "traefik.http.routers.paredis-secure.rule=Host(`paredis.noagenda.dev`)"
+      - "traefik.http.routers.paredis-secure.service=paredis-service"
+      - "traefik.http.services.paredis-service.loadbalancer.server.port=6379"
   npm:
     image: node:latest
     working_dir: /var/www/html
     entrypoint: ["npm"]
     volumes:
-      - ./site:/var/www/html
\ No newline at end of file
+      - ./site:/var/www/html
+networks:
+  proxy:
+    external: true
+
diff --git a/site/app/Http/Controllers/ArtworkController.php b/site/app/Http/Controllers/ArtworkController.php
index dc29c08..f62a400 100644
--- a/site/app/Http/Controllers/ArtworkController.php
+++ b/site/app/Http/Controllers/ArtworkController.php
@@ -30,7 +30,7 @@ public function index()
             ->with('artist')
             ->orderBy('episode_id', 'desc')
             ->orderBy('created_at', 'desc')
-            ->paginate($perPage = 3, $columns = ['*'], $pageName = 'artworks');
+            ->paginate($perPage = 92, $columns = ['*'], $pageName = 'artworks');
         $podcasts = Podcast::where('published', true)->with('episodes')->get();
         return view('explore.artworks', [
             'user' => $user,
diff --git a/site/resources/views/artworks/artwork.blade.php b/site/resources/views/artworks/artwork.blade.php
index 016d653..e55b876 100644
--- a/site/resources/views/artworks/artwork.blade.php
+++ b/site/resources/views/artworks/artwork.blade.php
@@ -38,8 +38,8 @@
         <div class="row">
             <div class="col-xxl-6 mb-6">
                 <div class="explore-style-one">
-                    <div class="thumb"><a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}"
-                        ><img id="largeImage"src="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}"
+                    <div class="thumb"><a href="{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}"
+                        ><img id="largeImage"src="{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}"
                             alt="{{ $artwork->title }} by {{ $artwork->artist->name }} for {{ $artwork->podcast->title }}"></a>
                     </div>
                 </div>
@@ -61,10 +61,10 @@
                     <div class="d-flex-between mb-5">
                         <ul class="nav custom-tabs">
                             <li>
-                                <a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}">Download 3k px Image</a>
+                                <a href="{{ config('app.static_asset_url') }}/artworks/{{ $artwork->filename }}">Download 3k px Image</a>
                             </li>
                             <li>
-                                <a href="http://{{ config('app.static_asset_url') }}/thumbnail/{{ $artwork->filename }}"">Download 512 px Image</a>
+                                <a href="{{ config('app.static_asset_url') }}/thumbnails/{{ $artwork->filename }}"">Download 512 px Image</a>
                             </li>
                         </ul>
                     </div>
diff --git a/site/resources/views/artworks/card.blade.php b/site/resources/views/artworks/card.blade.php
index 13471de..159bf52 100644
--- a/site/resources/views/artworks/card.blade.php
+++ b/site/resources/views/artworks/card.blade.php
@@ -1,8 +1,7 @@
 <div class="explore-style-one {{ $thisEpisode->artwork_id == $thisArtwork->id ? 'selected' : '' }}">
     <div class="thumb">
         <a href="/artworks/{{ $thisArtwork->id }}">
-            <img src="{{ 'http://'
-                . config('app.static_asset_url')
+            <img src="{{ config('app.static_asset_url')
                 . '/thumbnails/'
                 . $thisArtwork->filename ?? '#'}}"
                 alt="{{ $thisArtwork->title }} by {{ $thisArtwork->artist->name }}">
@@ -12,12 +11,12 @@
     <div class="content">
         <div class="header d-flex-between pt-4 pb-1">
             <h3 class="title">
-                <a href="/episode/{{ $thisEpisode->slug }}">"{{ $thisArtwork->title }}"</a>
+                <a href="/podcast/{{ $thisPodcast->slug }}/episode/{{ $thisEpisode->slug }}">"{{ $thisArtwork->title }}"</a>
             </h3>
             <div class="more-dropdown "><i class="ri-more-fill" data-bs-toggle="dropdown"></i>
                 <ul class="dropdown-menu dropdown-menu-dark">
-                    <li><a class="dropdown-item" href="/podcast/{{ $thisPodcast->slug }}">View Podcast</a></li>
-                    <li><a class="dropdown-item" href="/episode/{{ $thisEpisode->slug }}">View Episode</a></li>
+                    <li><a class="dropdown-item" href="/podcasts/{{ $thisPodcast->slug }}">View Podcast</a></li>
+                    <li><a class="dropdown-item" href="/podcast/{{ $thisPodcast->slug }}/episode/{{ $thisEpisode->slug }}">View Episode</a></li>
                     <li>
                         <hr class="dropdown-divider">
                     </li>
@@ -46,9 +45,9 @@ class="avatar" data-bs-toggle="tooltip"
                     Artwork Submitted For
                 @endif
                 <br>
-                <strong><a href="/podcast/{{ $thisPodcast->slug }}">{{ $thisPodcast->name }}</a></strong>
+                <strong><a href="/podcasts/{{ $thisPodcast->slug }}">{{ $thisPodcast->name }}</a></strong>
                 <br>
-                <a href="/episode/{{ $thisEpisode->slug }}">Episode {{ number_format($thisEpisode->episode_number + 0) }}<br><em>
+                <a href="/podcast/{{ $thisPodcast->slug }}/episode/{{ $thisEpisode->slug }}">Episode {{ number_format($thisEpisode->episode_number + 0) }}<br><em>
                     {{ $thisEpisode->episode_date->format('D, M j') }}<sup>{{ $thisEpisode->episode_date->format('S') }}</sup>{{ $thisEpisode->episode_date->format(', Y') }}</em></a>
             </span>
         </div>
diff --git a/site/resources/views/episodes/episode.blade.php b/site/resources/views/episodes/episode.blade.php
index f05fe57..5ab216e 100644
--- a/site/resources/views/episodes/episode.blade.php
+++ b/site/resources/views/episodes/episode.blade.php
@@ -26,8 +26,8 @@
         <div class="row">
             <div class="col-xxl-6 mb-6">
                 <div class="explore-style-one">
-                    <div class="thumb"><a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}"
-                        ><img id="largeImage"src="http://{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}"
+                    <div class="thumb"><a href="{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}"
+                        ><img id="largeImage"src="{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}"
                             alt="{{ $episode->artwork->title }} by {{ $episode->artwork->artist->name }} for {{ $episode->artwork->podcast->title }}"></a>
                     </div>
                 </div>
@@ -45,10 +45,10 @@
                     <div class="d-flex-between mb-5">
                         <ul class="nav custom-tabs">
                             <li>
-                                <a href="http://{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}">Download 3k px Image</a>
+                                <a href="{{ config('app.static_asset_url') }}/artworks/{{ $episode->artwork->filename }}">Download 3k px Image</a>
                             </li>
                             <li>
-                                <a href="http://{{ config('app.static_asset_url') }}/thumbnail/{{ $episode->artwork->filename }}"">Download 512 px Image</a>
+                                <a href="{{ config('app.static_asset_url') }}/thumbnails/{{ $episode->artwork->filename }}"">Download 512 px Image</a>
                             </li>
                         </ul>
                     </div>
diff --git a/site/resources/views/layouts/master.blade.php b/site/resources/views/layouts/master.blade.php
index 1511261..e5cf4a1 100644
--- a/site/resources/views/layouts/master.blade.php
+++ b/site/resources/views/layouts/master.blade.php
@@ -23,19 +23,19 @@
         @yield('page-content')
 
         @include('partials.footer.section')
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.nice-select.min.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/modernizer.min.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/slick.min.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/bootstrap.min.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/waypoint.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/js.cookie.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/count-down.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/counter-up.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/isotop.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/imageloaded.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/aos.js"></script>
-        <script src="//{{  config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.custom-file-input.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.nice-select.min.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/modernizer.min.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/slick.min.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/bootstrap.min.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/waypoint.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/js.cookie.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/count-down.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/counter-up.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/isotop.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/imageloaded.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/aos.js"></script>
+        <script src="{{ config('app.static_asset_url') }}/v3/dist/vendor/js/jquery.custom-file-input.js"></script>
         @livewireScriptConfig
         @vite(['resources/js/app.js'])
     </body>
diff --git a/site/resources/views/partials/favicon.blade.php b/site/resources/views/partials/favicon.blade.php
index b599f47..feb78f7 100644
--- a/site/resources/views/partials/favicon.blade.php
+++ b/site/resources/views/partials/favicon.blade.php
@@ -1,20 +1,20 @@
-<link rel="apple-touch-icon-precomposed" sizes="57x57" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-57x57.png" />
-<link rel="apple-touch-icon-precomposed" sizes="114x114" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-114x114.png" />
-<link rel="apple-touch-icon-precomposed" sizes="72x72" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-72x72.png" />
-<link rel="apple-touch-icon-precomposed" sizes="144x144" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-144x144.png" />
-<link rel="apple-touch-icon-precomposed" sizes="60x60" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-60x60.png" />
-<link rel="apple-touch-icon-precomposed" sizes="120x120" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-120x120.png" />
-<link rel="apple-touch-icon-precomposed" sizes="76x76" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-76x76.png" />
-<link rel="apple-touch-icon-precomposed" sizes="152x152" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-152x152.png" />
-<link rel="icon" type="image/png" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/favicon-196x196.png" sizes="196x196" />
-<link rel="icon" type="image/png" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/favicon-96x96.png" sizes="96x96" />
-<link rel="icon" type="image/png" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/favicon-32x32.png" sizes="32x32" />
-<link rel="icon" type="image/png" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/favicon-16x16.png" sizes="16x16" />
-<link rel="icon" type="image/png" href="//{{  config('app.static_asset_url') }}/v3/dist/ico/favicon-128.png" sizes="128x128" />
+<link rel="apple-touch-icon-precomposed" sizes="57x57" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-57x57.png" />
+<link rel="apple-touch-icon-precomposed" sizes="114x114" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-114x114.png" />
+<link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-72x72.png" />
+<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-144x144.png" />
+<link rel="apple-touch-icon-precomposed" sizes="60x60" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-60x60.png" />
+<link rel="apple-touch-icon-precomposed" sizes="120x120" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-120x120.png" />
+<link rel="apple-touch-icon-precomposed" sizes="76x76" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-76x76.png" />
+<link rel="apple-touch-icon-precomposed" sizes="152x152" href="{{ config('app.static_asset_url') }}/v3/dist/ico/apple-touch-icon-152x152.png" />
+<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-196x196.png" sizes="196x196" />
+<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-96x96.png" sizes="96x96" />
+<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-32x32.png" sizes="32x32" />
+<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-16x16.png" sizes="16x16" />
+<link rel="icon" type="image/png" href="{{ config('app.static_asset_url') }}/v3/dist/ico/favicon-128.png" sizes="128x128" />
 <meta name="application-name" content="{{ config('app.name') }}"/>
 <meta name="msapplication-TileColor" content="#101010" />
-<meta name="msapplication-TileImage" content="//{{  config('app.static_asset_url') }}/v3/dist/ico/mstile-144x144.png" />
-<meta name="msapplication-square70x70logo" content="//{{  config('app.static_asset_url') }}/v3/dist/ico/mstile-70x70.png" />
-<meta name="msapplication-square150x150logo" content="//{{  config('app.static_asset_url') }}/v3/dist/ico/mstile-150x150.png" />
-<meta name="msapplication-wide310x150logo" content="//{{  config('app.static_asset_url') }}/v3/dist/ico/mstile-310x150.png" />
-<meta name="msapplication-square310x310logo" content="//{{  config('app.static_asset_url') }}/v3/dist/ico/mstile-310x310.png" />
+<meta name="msapplication-TileImage" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-144x144.png" />
+<meta name="msapplication-square70x70logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-70x70.png" />
+<meta name="msapplication-square150x150logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-150x150.png" />
+<meta name="msapplication-wide310x150logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-310x150.png" />
+<meta name="msapplication-square310x310logo" content="{{ config('app.static_asset_url') }}/v3/dist/ico/mstile-310x310.png" />
diff --git a/site/resources/views/podcasts/podcast.blade.php b/site/resources/views/podcasts/podcast.blade.php
index 14b33d3..76ea550 100644
--- a/site/resources/views/podcasts/podcast.blade.php
+++ b/site/resources/views/podcasts/podcast.blade.php
@@ -34,8 +34,7 @@
                     <div class="explore-style-one flex-stretch">
                         <div class="thumb">
                             <a href="/podcast/{{ $episode->podcast->slug }}/episode/{{ $episode->slug }}">
-                                <img src="{{ 'http://'
-                                    . config('app.static_asset_url')
+                                <img src="{{ config('app.static_asset_url')
                                     . '/thumbnails/'
                                     . $episode->artwork->filename ?? '#'}}"
                                     alt="{{ $episode->title }},  {{ $episode->podcast->name }} Episode {{ number_format($episode->episode_number + 0) }}">
diff --git a/site/resources/views/profile/artist.blade.php b/site/resources/views/profile/artist.blade.php
index c19ce7f..6476609 100644
--- a/site/resources/views/profile/artist.blade.php
+++ b/site/resources/views/profile/artist.blade.php
@@ -28,27 +28,7 @@
     <div class="container">
         <div class="row">
             <div class="col-xxl-3 col-xl-4 col-lg-4 mb-6">
-                <div class="single-author profile">
-                    <div class="thumb">
-                        <img src="{{ Vite::asset($artist->header ?? 'resources/img/artist-dark-banner-default.png') }}" alt="{{ $artist->name }}'s Cover Photo" />
-                    </div>
-                    <div class="content">
-                        <img class="author-thumb" src="{{ Vite::asset($artist->avatar ?? 'resources/img/default_avatars/default_avatar_male.svg') }}"
-                            alt="{{ $artist->name }}" />
-                        <h4 class="title">{{ $artist->name }}</h4>
-                        <p class="title">{{  $artist->location ?? 'No Agenda Nation' }}</p>
-                        <p class="title">Artist For {{ $artist->artworks->sortBy('created_at')->first()->created_at->diffForHumans(now(), Carbon\CarbonInterface::DIFF_ABSOLUTE) }}</p>
-                        @if ($artist->bio)
-                            <h4>Bio:</h4>
-                            <p>{{ nl2br($artist->bio) }}</p>
-                        @endif
-                        <div class="social size-small justify-content-center mb-4">
-                            @if ($artist->website)
-                                <a href="{{ $artist->website }}" title="website"><i class="ri-pages-line"></i></a>
-                            @endif
-                        </div>
-                    </div>
-                </div>
+                @include('profile.partials.single-artist-card')
             </div>
             {{-- end bio sidebar --}}
             <div class="col-xxl-9 col-xl-8 col-lg-8">
diff --git a/site/resources/views/profile/partials/single-artist-card.blade.php b/site/resources/views/profile/partials/single-artist-card.blade.php
index f78f0b2..c16c743 100644
--- a/site/resources/views/profile/partials/single-artist-card.blade.php
+++ b/site/resources/views/profile/partials/single-artist-card.blade.php
@@ -7,7 +7,7 @@
             alt="{{ $artist->name }}" /></a>
         <h4 class="title"><a href="/artists/{{ $artist->slug }}">{{ $artist->name }}</a></h4>
         <p class="title">{{  $artist->location ?? 'No Agenda Nation' }}</p>
-        <p class="title">Artist for {{ $artist->created_at->diffForHumans() }}</p>
+        <p class="title">Artist For {{ $artist->artworks->sortBy('created_at')->first()->created_at->diffForHumans(now(), Carbon\CarbonInterface::DIFF_ABSOLUTE) }}</p>
         @if ($artist->bio)
             <h4>Bio:</h4>
             <p>{{ nl2br($artist->bio) }}</p>