diff --git a/resources/js/components/upload/UploadReviewNotice.jsx b/resources/js/components/upload/UploadReviewNotice.jsx
new file mode 100644
index 00000000..127d2a82
--- /dev/null
+++ b/resources/js/components/upload/UploadReviewNotice.jsx
@@ -0,0 +1,20 @@
+import React from 'react'
+
+export default function UploadReviewNotice({ visible = false }) {
+ if (!visible) {
+ return null
+ }
+
+ return (
+
+
New creator uploads are reviewed first
+
+ Because your account is still at a newer creator level, this upload will be reviewed before it appears on Skinbase.
+ If it meets our guidelines, it is usually published within 48 hours.
+
+
+ )
+}
diff --git a/tests/Feature/Uploads/UploadReviewNoticeTest.php b/tests/Feature/Uploads/UploadReviewNoticeTest.php
new file mode 100644
index 00000000..61d48b5e
--- /dev/null
+++ b/tests/Feature/Uploads/UploadReviewNoticeTest.php
@@ -0,0 +1,63 @@
+create([
+ 'role' => 'user',
+ 'level' => 1,
+ 'created_at' => now()->subYear(),
+ ]);
+
+ $this->actingAs($user)
+ ->get('/upload')
+ ->assertOk()
+ ->assertInertia(fn (Assert $page) => $page
+ ->component('Upload/Index')
+ ->where('requires_upload_review', true)
+ ->missing('approved_uploads')
+ ->missing('reasons'))
+ ->assertDontSee('insufficient_approved_uploads', false)
+ ->assertDontSee('minimum_approved_uploads', false);
+});
+
+it('does not show the new-creator review warning for trusted uploaders', function (): void {
+ $user = User::factory()->create([
+ 'role' => 'user',
+ 'level' => 1,
+ 'created_at' => now()->subYear(),
+ ]);
+
+ Artwork::factory()->for($user)->count(5)->create([
+ 'is_approved' => true,
+ 'is_public' => true,
+ 'artwork_status' => 'published',
+ 'published_at' => now()->subDay(),
+ 'approval_source' => null,
+ ]);
+
+ $this->actingAs($user)
+ ->get('/upload')
+ ->assertOk()
+ ->assertInertia(fn (Assert $page) => $page
+ ->component('Upload/Index')
+ ->where('requires_upload_review', false));
+});
+
+it('does not show the new-creator review warning for admins', function (): void {
+ $admin = User::factory()->create(['role' => 'admin']);
+
+ $this->actingAs($admin)
+ ->get('/upload')
+ ->assertOk()
+ ->assertInertia(fn (Assert $page) => $page
+ ->component('Upload/Index')
+ ->where('requires_upload_review', false));
+});