Skip to content

Commit fdc69b1

Browse files
committed
feat: Update campaign messaging and remove outdated elements for clarity
- Revised the .env.example file to clarify the purpose of the CAMPAIGN_END_DATE variable for ongoing validation campaigns. - Removed the daysLeft calculation and limitedRewards section from the update-campaign-stats script and campaign-stats.json to streamline data handling. - Updated the Hero component and index page to change call-to-action phrases from "Support the Vision" to "Validate This Idea" and "Support Validation," enhancing alignment with the platform's focus on idea validation. - Removed the FOMO Announcement Bar and related elements from the index page to simplify the user interface and improve overall user experience. These changes aim to better communicate the platform's purpose and improve the clarity of campaign-related information.
1 parent 2d1728a commit fdc69b1

File tree

6 files changed

+21
-223
lines changed

6 files changed

+21
-223
lines changed

.env.example

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ STRIPE_SECRET_KEY=sk_test_...
1010
STRIPE_CAMPAIGN_PRICE_ID=
1111
STRIPE_CAMPAIGN_PRODUCT_ID=
1212

13-
# Campaign End Date (ISO format) - Leave empty for ongoing campaigns
14-
# Example: 2025-12-31 or empty for no end date
13+
# Campaign End Date (ISO format) - Leave empty for ongoing validation
14+
# Most validation campaigns run indefinitely to gauge genuine interest
1515
CAMPAIGN_END_DATE=
1616

1717
# Campaign Goal in dollars (default: 10000)

scripts/update-campaign-stats.ts

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ const MOCK_DATA = {
2424
goal: CAMPAIGN_GOAL,
2525
raised: 1247,
2626
supporters: 23,
27-
daysLeft: CAMPAIGN_END_DATE ? Math.ceil((CAMPAIGN_END_DATE.getTime() - Date.now()) / (1000 * 60 * 60 * 24)) : null,
2827
lastContribution: {
2928
amount: 100,
3029
timeAgo: "2 hours ago"
@@ -46,23 +45,6 @@ const MOCK_DATA = {
4645
location: "Japan"
4746
}
4847
],
49-
limitedRewards: {
50-
earlyBird: {
51-
total: 100,
52-
remaining: 17,
53-
discount: "50% off first year"
54-
},
55-
foundingMember: {
56-
total: 50,
57-
remaining: 8,
58-
perk: "Lifetime Pro access"
59-
},
60-
advisoryBoard: {
61-
total: 10,
62-
remaining: 3,
63-
perk: "Direct input on features"
64-
}
65-
},
6648
milestones: {
6749
current: 1247,
6850
next: 2500,
@@ -153,11 +135,6 @@ async function fetchStripeData() {
153135
}
154136
}
155137

156-
// Calculate stats
157-
const daysLeft = CAMPAIGN_END_DATE ?
158-
Math.ceil((CAMPAIGN_END_DATE.getTime() - Date.now()) / (1000 * 60 * 60 * 24)) :
159-
null;
160-
161138
// Calculate trend
162139
const previousWeekRaised = raised7Days - raised24Hours;
163140
const percentIncrease = previousWeekRaised > 0 ?
@@ -178,7 +155,6 @@ async function fetchStripeData() {
178155
...MOCK_DATA.campaign,
179156
raised: totalRaised || MOCK_DATA.campaign.raised,
180157
supporters: supporters.size || MOCK_DATA.campaign.supporters,
181-
daysLeft,
182158
lastContribution,
183159
recentSupporters: recentContributions.length > 0 ? recentContributions : MOCK_DATA.campaign.recentSupporters,
184160
milestones: {
@@ -292,11 +268,6 @@ async function main() {
292268
console.log(` Goal: $${stats.campaign.goal}`);
293269
console.log(` Raised: $${stats.campaign.raised} (${Math.round((stats.campaign.raised / stats.campaign.goal) * 100)}%)`);
294270
console.log(` Supporters: ${stats.campaign.supporters}`);
295-
if (stats.campaign.daysLeft !== null) {
296-
console.log(` Days left: ${stats.campaign.daysLeft}`);
297-
} else {
298-
console.log(` Duration: Ongoing (no end date set)`);
299-
}
300271
}
301272

302273
// Run the script

src/components/Hero.astro

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ import GitHubStarButton from './GitHubStarButton.tsx';
4040
<!-- CTA Buttons -->
4141
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center mb-12">
4242
<a href="/PRiority/fund" class="glow-button group">
43-
<span>Support the Vision</span>
43+
<span>Validate This Idea</span>
4444
<svg class="w-5 h-5 ml-2 group-hover:translate-x-1 transition-transform" fill="none" stroke="currentColor" viewBox="0 0 24 24">
4545
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6" />
4646
</svg>

src/data/campaign-stats.json

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"goal": 10000,
44
"raised": 1247,
55
"supporters": 23,
6-
"daysLeft": null,
76
"lastContribution": {
87
"amount": 100,
98
"timeAgo": "2 hours ago"
@@ -25,23 +24,6 @@
2524
"location": "Japan"
2625
}
2726
],
28-
"limitedRewards": {
29-
"earlyBird": {
30-
"total": 100,
31-
"remaining": 17,
32-
"discount": "50% off first year"
33-
},
34-
"foundingMember": {
35-
"total": 50,
36-
"remaining": 8,
37-
"perk": "Lifetime Pro access"
38-
},
39-
"advisoryBoard": {
40-
"total": 10,
41-
"remaining": 3,
42-
"perk": "Direct input on features"
43-
}
44-
},
4527
"milestones": {
4628
"current": 1247,
4729
"next": 2500,

src/pages/index.astro

Lines changed: 11 additions & 166 deletions
Original file line numberDiff line numberDiff line change
@@ -83,34 +83,8 @@ import '../styles/global.css';
8383
zIndex={9999}
8484
/>
8585

86-
<!-- FOMO Announcement Bar -->
87-
<div class="fomo-banner fixed top-0 left-0 right-0 z-[110]">
88-
<div class="fomo-content">
89-
<div class="fomo-ticker">
90-
<span class="fomo-item">
91-
🔥 <strong>$2,500</strong> raised in last 24 hours
92-
</span>
93-
<span class="fomo-divider">·</span>
94-
<span class="fomo-item">
95-
⚡ <strong>17</strong> early bird spots left (50% off)
96-
</span>
97-
<span class="fomo-divider">·</span>
98-
<span class="fomo-item">
99-
⏰ <strong>47 days</strong> until campaign ends
100-
</span>
101-
<span class="fomo-divider">·</span>
102-
<span class="fomo-item live-update">
103-
💚 Someone from <span id="supporter-location">Berlin</span> just contributed <span id="supporter-amount">$100</span>
104-
</span>
105-
</div>
106-
<a href="/PRiority/fund" class="fomo-cta">
107-
Join Now →
108-
</a>
109-
</div>
110-
</div>
111-
11286
<!-- Navigation -->
113-
<nav class="fixed top-12 left-0 right-0 z-[100] px-6 py-4 lg:px-12 bg-black/50 backdrop-blur-md border-b border-gray-800/50">
87+
<nav class="fixed top-0 left-0 right-0 z-[100] px-6 py-4 lg:px-12 bg-black/50 backdrop-blur-md border-b border-gray-800/50">
11488
<div class="max-w-7xl mx-auto flex items-center justify-between">
11589
<div class="flex items-center space-x-2">
11690
<img src="/PRiority/logo.png" alt="PRiority Logo" class="h-12 w-auto object-contain" />
@@ -125,7 +99,7 @@ import '../styles/global.css';
12599
</nav>
126100

127101

128-
<main class="relative z-20 pt-32">
102+
<main class="relative z-20 pt-24">
129103
<Hero />
130104
</main>
131105

@@ -540,7 +514,7 @@ import '../styles/global.css';
540514
<div class="flex flex-col sm:flex-row gap-4 justify-center items-center mb-8">
541515
<a href="/PRiority/fund" class="fund-cta-button">
542516
<span class="rocket-icon">🚀</span>
543-
Support the Vision
517+
Validate This Project
544518
<span class="arrow">→</span>
545519
</a>
546520
<a href="/PRiority/validation-disclosure" class="text-gray-400 hover:text-white transition-colors underline">
@@ -573,7 +547,7 @@ import '../styles/global.css';
573547
<div class="fixed bottom-8 right-8 z-[90] flex flex-col gap-3">
574548
<GitHubStarButton client:load showCount={true} className="shadow-lg hover:shadow-2xl" />
575549
<a href="/PRiority/fund" class="bg-gradient-to-r from-blue-600 to-purple-600 text-white px-6 py-3 rounded-full shadow-lg hover:shadow-2xl hover:scale-105 transition-all duration-300 flex items-center gap-2 justify-center">
576-
<span class="font-semibold">Back This Project</span>
550+
<span class="font-semibold">Support Validation</span>
577551
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
578552
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
579553
</svg>
@@ -585,28 +559,25 @@ import '../styles/global.css';
585559
<div class="widget-content">
586560
<div class="widget-header">
587561
<span class="widget-badge">LIVE</span>
588-
<span class="widget-title">Campaign Progress</span>
562+
<span class="widget-title">Validation Progress</span>
589563
</div>
590564
<div class="widget-progress">
591565
<div class="progress-bar">
592566
<div class="progress-fill" id="widget-progress"></div>
593567
</div>
594568
<div class="progress-stats">
595569
<span class="raised-amount" id="widget-raised">$1,247</span>
596-
<span class="goal-amount">of $10K</span>
570+
<span class="goal-amount">of $10K goal</span>
597571
</div>
598572
</div>
599573
<div class="widget-footer">
600574
<div class="supporter-count">
601-
<span class="supporter-icon">👥</span>
602-
<span id="widget-supporters">23</span> backers
603-
</div>
604-
<div class="time-left">
605-
⏰ <span id="widget-days">47</span> days left
575+
<span class="supporter-icon">💚</span>
576+
<span id="widget-supporters">23</span> supporters
606577
</div>
607578
</div>
608579
<a href="/PRiority/fund" class="widget-cta">
609-
View Campaign
580+
Learn More
610581
</a>
611582
</div>
612583
</div>
@@ -670,9 +641,9 @@ import '../styles/global.css';
670641
<span class="fomo-action">New supporter from Tokyo</span>
671642
</div>
672643
</div>
673-
<div class="fomo-urgency">
644+
<!-- <div class="fomo-urgency">
674645
⚡ Only <strong>17</strong> early bird spots left!
675-
</div>
646+
</div> -->
676647
<a href="/PRiority/fund" class="fomo-widget-cta">
677648
View Campaign →
678649
</a>
@@ -804,106 +775,7 @@ import '../styles/global.css';
804775
}
805776
}
806777

807-
/* FOMO Banner Styles */
808-
.fomo-banner {
809-
background: linear-gradient(90deg, #1e1b4b, #312e81, #1e1b4b);
810-
background-size: 200% 100%;
811-
animation: gradient-shift 10s ease infinite;
812-
padding: 8px 16px;
813-
border-bottom: 1px solid rgba(147, 51, 234, 0.3);
814-
box-shadow: 0 2px 10px rgba(147, 51, 234, 0.2);
815-
}
816-
817-
@keyframes gradient-shift {
818-
0%, 100% { background-position: 0% 50%; }
819-
50% { background-position: 100% 50%; }
820-
}
821-
822-
.fomo-content {
823-
max-width: 1400px;
824-
margin: 0 auto;
825-
display: flex;
826-
align-items: center;
827-
justify-content: space-between;
828-
gap: 20px;
829-
}
830-
831-
.fomo-ticker {
832-
display: flex;
833-
align-items: center;
834-
gap: 16px;
835-
overflow-x: auto;
836-
flex: 1;
837-
font-size: 14px;
838-
color: #e0e7ff;
839-
}
840-
841-
.fomo-ticker::-webkit-scrollbar {
842-
display: none;
843-
}
844-
845-
.fomo-item {
846-
white-space: nowrap;
847-
animation: fadeIn 1s ease-out;
848-
}
849-
850-
.fomo-item strong {
851-
color: #fbbf24;
852-
font-weight: 700;
853-
}
854-
855-
.fomo-divider {
856-
color: #6366f1;
857-
opacity: 0.5;
858-
}
859-
860-
.live-update {
861-
animation: pulse-glow 2s infinite;
862-
}
863-
864-
@keyframes pulse-glow {
865-
0%, 100% { opacity: 0.8; }
866-
50% { opacity: 1; filter: brightness(1.2); }
867-
}
868-
869-
.fomo-cta {
870-
background: linear-gradient(135deg, #f59e0b, #ef4444);
871-
color: white;
872-
padding: 6px 16px;
873-
border-radius: 20px;
874-
font-weight: 600;
875-
text-decoration: none;
876-
white-space: nowrap;
877-
transition: all 0.3s ease;
878-
box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
879-
animation: cta-pulse 2s infinite;
880-
}
881-
882-
@keyframes cta-pulse {
883-
0%, 100% { transform: scale(1); }
884-
50% { transform: scale(1.05); }
885-
}
886-
887-
.fomo-cta:hover {
888-
background: linear-gradient(135deg, #fbbf24, #f97316);
889-
box-shadow: 0 4px 12px rgba(239, 68, 68, 0.5);
890-
transform: scale(1.1);
891-
}
892-
893-
@media (max-width: 768px) {
894-
.fomo-content {
895-
flex-direction: column;
896-
gap: 8px;
897-
}
898-
899-
.fomo-ticker {
900-
justify-content: center;
901-
}
902778

903-
.fomo-divider {
904-
display: none;
905-
}
906-
}
907779

908780
/* Floating FOMO Widget */
909781
.fomo-widget {
@@ -1078,30 +950,3 @@ import '../styles/global.css';
1078950
}
1079951
</style>
1080952

1081-
<script>
1082-
// FOMO Banner Updates
1083-
const locations = ['Tokyo', 'London', 'New York', 'Berlin', 'Sydney', 'Mumbai', 'Toronto', 'Paris', 'Singapore'];
1084-
const amounts = ['$25', '$50', '$100', '$500', '$1,000'];
1085-
1086-
function updateLiveSupporter() {
1087-
const locationEl = document.getElementById('supporter-location');
1088-
const amountEl = document.getElementById('supporter-amount');
1089-
1090-
if (locationEl && amountEl) {
1091-
locationEl.textContent = locations[Math.floor(Math.random() * locations.length)];
1092-
amountEl.textContent = amounts[Math.floor(Math.random() * amounts.length)];
1093-
1094-
// Flash animation
1095-
const liveUpdate = document.querySelector('.live-update');
1096-
if (liveUpdate) {
1097-
liveUpdate.style.animation = 'none';
1098-
setTimeout(() => {
1099-
liveUpdate.style.animation = 'pulse-glow 2s infinite, fadeIn 0.5s ease-out';
1100-
}, 10);
1101-
}
1102-
}
1103-
}
1104-
1105-
// Update every 8 seconds
1106-
setInterval(updateLiveSupporter, 8000);
1107-
</script>

0 commit comments

Comments
 (0)