Skip to content

Commit f8dbfd4

Browse files
feat: add /coming-soon/ route for non-existent pages
1 parent d2091de commit f8dbfd4

File tree

4 files changed

+40
-12
lines changed

4 files changed

+40
-12
lines changed

.clinerules

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,11 @@ For example, seed.sql contains:
184184
- Video and image assets are stored in /assets directory and referenced using ~/assets path
185185
- NEVER overwrite existing .env files with .env.example - they may contain important local configuration
186186
- ALWAYS examine seed.sql before implementing features to understand available test data
187+
- ALWAYS use the /coming-soon/[page] route for links to pages that don't exist yet:
188+
- The route automatically displays a "Coming Soon" message with the page name
189+
- Example: Use `/coming-soon/about` instead of `/about` for unimplemented pages
190+
- Exception: Keep direct links for implemented pages (e.g., `/projects`)
191+
- This helps users understand which features are available vs. in development
187192
- When examining any codeforphilly.org URL, ALWAYS use the puppeteer screenshot command first:
188193

189194
```bash

components/SiteFooter.vue

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,36 +7,36 @@
77
<NuxtLink to="/projects" class="block text-red-500 hover:text-red-400">
88
Active Projects
99
</NuxtLink>
10-
<NuxtLink to="/start" class="block mt-2 text-red-500 hover:text-red-400">
10+
<NuxtLink to="/coming-soon/start" class="block mt-2 text-red-500 hover:text-red-400">
1111
Start a Project
1212
</NuxtLink>
13-
<NuxtLink to="/hackathons" class="block mt-2 text-red-500 hover:text-red-400">
13+
<NuxtLink to="/coming-soon/hackathons" class="block mt-2 text-red-500 hover:text-red-400">
1414
Hackathons
1515
</NuxtLink>
1616
</div>
1717

1818
<!-- About -->
1919
<div class="text-center">
20-
<NuxtLink to="/mission" class="block text-red-500 hover:text-red-400">
20+
<NuxtLink to="/coming-soon/mission" class="block text-red-500 hover:text-red-400">
2121
Mission
2222
</NuxtLink>
23-
<NuxtLink to="/code-of-conduct" class="block mt-2 text-red-500 hover:text-red-400">
23+
<NuxtLink to="/coming-soon/code-of-conduct" class="block mt-2 text-red-500 hover:text-red-400">
2424
Code of Conduct
2525
</NuxtLink>
26-
<NuxtLink to="/leadership" class="block mt-2 text-red-500 hover:text-red-400">
26+
<NuxtLink to="/coming-soon/leadership" class="block mt-2 text-red-500 hover:text-red-400">
2727
Leadership
2828
</NuxtLink>
2929
</div>
3030

3131
<!-- Connect -->
3232
<div class="text-center">
33-
<NuxtLink to="/slack" class="block text-red-500 hover:text-red-400">
33+
<NuxtLink to="/coming-soon/slack" class="block text-red-500 hover:text-red-400">
3434
Slack
3535
</NuxtLink>
36-
<NuxtLink to="/contact" class="block mt-2 text-red-500 hover:text-red-400">
36+
<NuxtLink to="/coming-soon/contact" class="block mt-2 text-red-500 hover:text-red-400">
3737
Contact
3838
</NuxtLink>
39-
<NuxtLink to="/meetups" class="block mt-2 text-red-500 hover:text-red-400">
39+
<NuxtLink to="/coming-soon/meetups" class="block mt-2 text-red-500 hover:text-red-400">
4040
Weekly Meetups
4141
</NuxtLink>
4242
</div>

components/SiteHeader.vue

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
<div class="flex items-center space-x-8">
1212
<div class="flex items-center space-x-6">
1313
<button class="text-white hover:text-gray-300">GET INVOLVED</button>
14-
<NuxtLink to="/chat" class="text-white hover:text-gray-300">
14+
<NuxtLink to="/coming-soon/chat" class="text-white hover:text-gray-300">
1515
CHAT (SLACK)
1616
</NuxtLink>
17-
<button class="text-white hover:text-gray-300">ABOUT</button>
17+
<NuxtLink to="/coming-soon/about" class="text-white hover:text-gray-300">ABOUT</NuxtLink>
1818
</div>
1919

2020
<!-- Search -->
@@ -28,10 +28,10 @@
2828

2929
<!-- Auth -->
3030
<div class="flex items-center space-x-4">
31-
<NuxtLink to="/login" class="text-white hover:text-gray-300">
31+
<NuxtLink to="/coming-soon/login" class="text-white hover:text-gray-300">
3232
LOGIN
3333
</NuxtLink>
34-
<NuxtLink to="/signup" class="text-white hover:text-gray-300">
34+
<NuxtLink to="/coming-soon/signup" class="text-white hover:text-gray-300">
3535
SIGNUP
3636
</NuxtLink>
3737
</div>

pages/coming-soon/[page].vue

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<template>
2+
<div class="min-h-screen bg-gray-50 py-16">
3+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
4+
<div class="text-center">
5+
<h1 class="text-4xl font-bold text-gray-900 mb-4">Coming Soon</h1>
6+
<p class="text-xl text-gray-600 mb-8">
7+
The {{ route.params.page.replace(/-/g, ' ') }} page is under development.
8+
</p>
9+
<NuxtLink
10+
to="/"
11+
class="inline-flex items-center px-4 py-2 bg-red-500 text-white rounded-lg hover:bg-red-600 transition-colors"
12+
>
13+
<i class="bi bi-arrow-left mr-2"></i>
14+
Return Home
15+
</NuxtLink>
16+
</div>
17+
</div>
18+
</div>
19+
</template>
20+
21+
<script setup lang="ts">
22+
const route = useRoute()
23+
</script>

0 commit comments

Comments
 (0)