Skip to content

Commit fd638a4

Browse files
committed
refactor: Normalize branding to Devpulse
- update occurrences of "DevPulse" to "Devpulse" across ui, metadata, and svg assets - comment out supabase types generation step in ci workflow - expand headless browser detection patterns - fix import path for rate-limit in proxy middleware - refactor time utils: change formatHours to named function and overhaul timeAgo to accept numeric timestamps and return clearer relative strings - minor layout/whitespace and copy tweaks
1 parent 664942a commit fd638a4

37 files changed

Lines changed: 171 additions & 165 deletions

File tree

.github/workflows/build.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ jobs:
3131
- name: Run lint
3232
run: npm run lint
3333

34-
- name: Generate types from remote
35-
if: ${{ env.SUPABASE_PROJECT_ID && env.SUPABASE_ACCESS_TOKEN }}
36-
env:
37-
SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
38-
run: |
39-
npx supabase gen types typescript \
40-
--project-id ${{ secrets.SUPABASE_PROJECT_ID }} \
41-
> app/supabase-types.ts
34+
# - name: Generate types from remote
35+
# if: ${{ env.SUPABASE_PROJECT_ID && env.SUPABASE_ACCESS_TOKEN }}
36+
# env:
37+
# SUPABASE_ACCESS_TOKEN: ${{ secrets.SUPABASE_ACCESS_TOKEN }}
38+
# run: |
39+
# npx supabase gen types typescript \
40+
# --project-id ${{ secrets.SUPABASE_PROJECT_ID }} \
41+
# > app/supabase-types.ts
4242

4343
# this will be suspended for now
4444
# - name: Run migrations

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Contributions to devpulse are welcome! Please follow these guidelines:
108108

109109
> Pull requests that modify existing working features without prior discussion may not be merged.
110110
111-
Help us keep the codebase ("DevPulse") clean, stable, and maintainable.
111+
Help us keep the codebase ("Devpulse") clean, stable, and maintainable.
112112

113113
## License
114114
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

app/(auth)/login/page.tsx

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import LoginForm from "@/app/components/auth/LoginForm";
44
import { Metadata } from "next";
55

66
export const metadata: Metadata = {
7-
title: "Login - DevPulse",
7+
title: "Login - Devpulse",
88
description:
9-
"Log in to your DevPulse account to monitor your coding activity and compete on leaderboards.",
9+
"Log in to your Devpulse account to monitor your coding activity and compete on leaderboards.",
1010
keywords: [
11-
"DevPulse",
11+
"Devpulse",
1212
"login",
1313
"coding activity tracker",
1414
"developer leaderboards",
@@ -21,31 +21,31 @@ export const metadata: Metadata = {
2121
"productivity insights",
2222
],
2323
openGraph: {
24-
title: "Login - DevPulse",
24+
title: "Login - Devpulse",
2525
description:
26-
"Log in to your DevPulse account to monitor your coding activity and compete on leaderboards.",
26+
"Log in to your Devpulse account to monitor your coding activity and compete on leaderboards.",
2727
url: "https://devpulse.hallofcodes.org/login",
28-
siteName: "DevPulse",
28+
siteName: "Devpulse",
2929
images: [
3030
{
3131
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
3232
width: 1200,
3333
height: 630,
34-
alt: "DevPulse Cover Image",
34+
alt: "Devpulse Cover Image",
3535
},
3636
],
3737
locale: "en_US",
3838
type: "website",
3939
},
4040
twitter: {
4141
card: "summary_large_image",
42-
title: "Login - DevPulse",
42+
title: "Login - Devpulse",
4343
description:
44-
"Log in to your DevPulse account to monitor your coding activity and compete on leaderboards.",
44+
"Log in to your Devpulse account to monitor your coding activity and compete on leaderboards.",
4545
images: [
4646
{
4747
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
48-
alt: "DevPulse Cover Image",
48+
alt: "Devpulse Cover Image",
4949
},
5050
],
5151
},
@@ -74,9 +74,9 @@ export default async function Login(props: {
7474
href="/"
7575
className="flex items-center gap-3 w-fit hover:opacity-80 transition"
7676
>
77-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
77+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
7878
<span className="text-2xl font-bold tracking-tight text-white">
79-
DevPulse
79+
Devpulse
8080
</span>
8181
</Link>
8282
</div>
@@ -126,7 +126,7 @@ export default async function Login(props: {
126126
</div>
127127

128128
<div className="relative z-10 text-sm text-gray-500 font-medium">
129-
&copy; {new Date().getFullYear()} DevPulse. All rights reserved.
129+
&copy; {new Date().getFullYear()} Devpulse. All rights reserved.
130130
</div>
131131
</div>
132132

@@ -136,8 +136,8 @@ export default async function Login(props: {
136136

137137
<div className="w-full max-w-sm relative z-10">
138138
<div className="lg:hidden flex items-center justify-center gap-3 mb-10">
139-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
140-
<h2 className="text-3xl font-bold text-white">DevPulse</h2>
139+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
140+
<h2 className="text-3xl font-bold text-white">Devpulse</h2>
141141
</div>
142142

143143
<div className="mb-8 text-left">

app/(auth)/signup/page.tsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,35 @@ import SignupForm from "@/app/components/auth/SignupForm";
44
import { Metadata } from "next";
55

66
export const metadata: Metadata = {
7-
title: "Sign Up - DevPulse",
7+
title: "Sign Up - Devpulse",
88
description:
9-
"Create a DevPulse account to monitor your coding activity and compete on leaderboards.",
9+
"Create a Devpulse account to monitor your coding activity and compete on leaderboards.",
1010
openGraph: {
11-
title: "Sign Up - DevPulse",
11+
title: "Sign Up - Devpulse",
1212
description:
13-
"Create a DevPulse account to monitor your coding activity and compete on leaderboards.",
13+
"Create a Devpulse account to monitor your coding activity and compete on leaderboards.",
1414
url: "https://devpulse.hallofcodes.org/signup",
15-
siteName: "DevPulse",
15+
siteName: "Devpulse",
1616
images: [
1717
{
1818
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
1919
width: 1200,
2020
height: 630,
21-
alt: "DevPulse Cover Image",
21+
alt: "Devpulse Cover Image",
2222
},
2323
],
2424
locale: "en_US",
2525
type: "website",
2626
},
2727
twitter: {
2828
card: "summary_large_image",
29-
title: "Sign Up - DevPulse",
29+
title: "Sign Up - Devpulse",
3030
description:
31-
"Create a DevPulse account to monitor your coding activity and compete on leaderboards.",
31+
"Create a Devpulse account to monitor your coding activity and compete on leaderboards.",
3232
images: [
3333
{
3434
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
35-
alt: "DevPulse Cover Image",
35+
alt: "Devpulse Cover Image",
3636
},
3737
],
3838
},
@@ -61,9 +61,9 @@ export default async function Signup(props: {
6161
href="/"
6262
className="flex items-center gap-3 w-fit hover:opacity-80 transition"
6363
>
64-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
64+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
6565
<span className="text-2xl font-bold tracking-tight text-white">
66-
DevPulse
66+
Devpulse
6767
</span>
6868
</Link>
6969
</div>
@@ -113,7 +113,7 @@ export default async function Signup(props: {
113113
</div>
114114

115115
<div className="relative z-10 text-sm text-gray-500 font-medium">
116-
&copy; {new Date().getFullYear()} DevPulse. All rights reserved.
116+
&copy; {new Date().getFullYear()} Devpulse. All rights reserved.
117117
</div>
118118
</div>
119119

@@ -123,8 +123,8 @@ export default async function Signup(props: {
123123

124124
<div className="w-full max-w-sm relative z-10">
125125
<div className="lg:hidden flex items-center justify-center gap-3 mb-10">
126-
<Image src="/logo.svg" alt="DevPulse Logo" width={40} height={40} />
127-
<h2 className="text-3xl font-bold text-white">DevPulse</h2>
126+
<Image src="/logo.svg" alt="Devpulse Logo" width={40} height={40} />
127+
<h2 className="text-3xl font-bold text-white">Devpulse</h2>
128128
</div>
129129

130130
<div className="mb-8 text-left">

app/(public)/flex/page.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import { faExternalLink } from "@fortawesome/free-solid-svg-icons";
99
import { Metadata } from "next";
1010

1111
export const metadata: Metadata = {
12-
title: "Flexes - DevPulse",
12+
title: "Flexes - Devpulse",
1313
description:
14-
"Flex your coding projects and share your achievements with the DevPulse community. See what others are working on and get inspired!",
14+
"Flex your coding projects and share your achievements with the Devpulse community. See what others are working on and get inspired!",
1515
keywords: [
16-
"DevPulse",
16+
"Devpulse",
1717
"coding flexes",
1818
"developer projects",
1919
"coding achievements",
@@ -23,31 +23,31 @@ export const metadata: Metadata = {
2323
"coding inspiration",
2424
],
2525
openGraph: {
26-
title: "Flexes - DevPulse",
26+
title: "Flexes - Devpulse",
2727
description:
28-
"Flex your coding projects and share your achievements with the DevPulse community. See what others are working on and get inspired!",
28+
"Flex your coding projects and share your achievements with the Devpulse community. See what others are working on and get inspired!",
2929
url: "https://devpulse.hallofcodes.org/flex",
30-
siteName: "DevPulse",
30+
siteName: "Devpulse",
3131
images: [
3232
{
3333
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
3434
width: 1200,
3535
height: 630,
36-
alt: "DevPulse Cover Image",
36+
alt: "Devpulse Cover Image",
3737
},
3838
],
3939
locale: "en_US",
4040
type: "website",
4141
},
4242
twitter: {
4343
card: "summary_large_image",
44-
title: "Flexes - DevPulse",
44+
title: "Flexes - Devpulse",
4545
description:
46-
"Flex your coding projects and share your achievements with the DevPulse community. See what others are working on and get inspired!",
46+
"Flex your coding projects and share your achievements with the Devpulse community. See what others are working on and get inspired!",
4747
images: [
4848
{
4949
url: "https://devpulse.hallofcodes.org/images/devpulse.cover.png",
50-
alt: "DevPulse Cover Image",
50+
alt: "Devpulse Cover Image",
5151
},
5252
],
5353
},
@@ -73,8 +73,8 @@ export default async function Flexs() {
7373
<BackButton href="/" />
7474

7575
<div className="flex justify-center items-center gap-3 mb-8">
76-
<Image src="/logo.svg" alt="DevPulse Logo" width={36} height={36} />
77-
<h1 className="text-3xl font-bold text-white">DevPulse Flexes</h1>
76+
<Image src="/logo.svg" alt="Devpulse Logo" width={36} height={36} />
77+
<h1 className="text-3xl font-bold text-white">Devpulse Flexes</h1>
7878
</div>
7979

8080
{data?.length === 0 && (

app/(public)/join/[code]/page.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
2222

2323
if (!leaderboard) {
2424
return {
25-
title: "Invite Not Found - DevPulse",
25+
title: "Invite Not Found - Devpulse",
2626
description: "This invite link is invalid or has expired.",
2727
};
2828
}
@@ -31,16 +31,16 @@ export async function generateMetadata({ params }: Props): Promise<Metadata> {
3131
const description =
3232
leaderboard?.description && leaderboard.description.length > 0
3333
? leaderboard.description
34-
: `Join the ${leaderboard.name} leaderboard on DevPulse and compete with other developers. Track your coding activity and climb the ranks!`;
34+
: `Join the ${leaderboard.name} leaderboard on Devpulse and compete with other developers. Track your coding activity and climb the ranks!`;
3535

3636
return {
37-
title: `${title} - DevPulse`,
37+
title: `${title} - Devpulse`,
3838
description,
3939
openGraph: {
4040
title,
4141
description,
4242
type: "website",
43-
siteName: "DevPulse",
43+
siteName: "Devpulse",
4444
url: `/join?id=${encodeURIComponent(code)}`,
4545
},
4646
twitter: {

app/(public)/join/page.tsx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,15 @@ export async function generateMetadata({
3636

3737
if (!code) {
3838
return {
39-
title: "Join - DevPulse",
40-
description: "Open an invite link to join a DevPulse leaderboard.",
39+
title: "Join - Devpulse",
40+
description: "Open an invite link to join a Devpulse leaderboard.",
4141
};
4242
}
4343

4444
const leaderboard = await getLeaderboard(code);
4545
if (!leaderboard) {
4646
return {
47-
title: "Invite Not Found - DevPulse",
47+
title: "Invite Not Found - Devpulse",
4848
description: "This invite link is invalid or has expired.",
4949
};
5050
}
@@ -53,16 +53,16 @@ export async function generateMetadata({
5353
const description =
5454
leaderboard.description && leaderboard.description?.length > 0
5555
? leaderboard.description
56-
: `Join the ${leaderboard.name} leaderboard on DevPulse and compete with other developers. Track your coding activity and climb the ranks!`;
56+
: `Join the ${leaderboard.name} leaderboard on Devpulse and compete with other developers. Track your coding activity and climb the ranks!`;
5757

5858
return {
59-
title: `${title} - DevPulse`,
59+
title: `${title} - Devpulse`,
6060
description,
6161
openGraph: {
6262
title,
6363
description,
6464
type: "website",
65-
siteName: "DevPulse",
65+
siteName: "Devpulse",
6666
url: `https://devpulse.hallofcodes.org/join?id=${encodeURIComponent(code)}`,
6767
},
6868
twitter: {
@@ -104,7 +104,7 @@ export default async function JoinPage({ searchParams }: Props) {
104104
<span className="font-mono">/join?id=XXXXXXXX</span>.
105105
</p>
106106
<Link href="/" className="btn-primary inline-block px-6 py-3 text-sm">
107-
Go to DevPulse
107+
Go to Devpulse
108108
</Link>
109109
</div>
110110
</div>
@@ -139,7 +139,7 @@ export default async function JoinPage({ searchParams }: Props) {
139139
This invite link is invalid or has expired.
140140
</p>
141141
<Link href="/" className="btn-primary inline-block px-6 py-3 text-sm">
142-
Go to DevPulse
142+
Go to Devpulse
143143
</Link>
144144
</div>
145145
</div>
@@ -173,7 +173,7 @@ export default async function JoinPage({ searchParams }: Props) {
173173
<div className="glass-card max-w-lg w-full p-8 md:p-10 text-center">
174174
<div className="flex justify-center mb-6">
175175
<div className="w-16 h-16 rounded-2xl bg-indigo-500/10 border border-indigo-500/20 flex items-center justify-center shadow-[0_0_30px_rgba(99,102,241,0.15)]">
176-
<Image src="/logo.svg" alt="DevPulse" width={36} height={36} />
176+
<Image src="/logo.svg" alt="Devpulse" width={36} height={36} />
177177
</div>
178178
</div>
179179

@@ -244,7 +244,7 @@ export default async function JoinPage({ searchParams }: Props) {
244244
href="/"
245245
className="text-indigo-400/70 hover:text-indigo-400 transition-colors"
246246
>
247-
DevPulse
247+
Devpulse
248248
</Link>{" "}
249249
&mdash; Track your coding activity &amp; compete
250250
</p>

0 commit comments

Comments
 (0)