Skip to content

Commit f1c31e6

Browse files
committed
Merge branch 'main' into feat/questions-carousel-component
2 parents 1000997 + 116daec commit f1c31e6

33 files changed

+397
-503
lines changed

src/app/(marketing)/blog/posts/introducing-techblitz.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ For those with a competitive spirit, our global leaderboard system lets you meas
5454
</div>
5555

5656
<div className="mt-4">
57-
Explore our daily challenge system in detail <a href="/features/daily-challenges" className="text-accent">here</a>, or <a href="/signup" className="text-accent">begin your journey today</a>.
57+
Explore our daily challenge system in detail <a href="/features/daily-challenges" aria-label="Navigate to Daily Challenges" className="text-accent">here</a>, or <a href="/signup" aria-label="Navigate to Signup" className="text-accent">begin your journey today</a>.
5858
</div>
5959

6060
<br />
Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,3 @@
1-
import { Metadata } from 'next';
2-
3-
export const metadata: Metadata = {
4-
title: 'Daily Challenge | JavaScript Questions | techblitz',
5-
description: 'Daily coding challenge to improve your coding skills.',
6-
keywords: [
7-
'coding',
8-
'learn to code',
9-
'programming',
10-
'daily challenge',
11-
'coding challenge',
12-
'web development',
13-
'tech skills assessment'
14-
],
15-
robots: {
16-
index: true,
17-
follow: true
18-
}
19-
};
20-
211
export default function Layout({ children }: { children: React.ReactNode }) {
222
return <div className="flex flex-col h-full">{children}</div>;
233
}

src/app/(marketing)/daily-challenge/page.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,23 @@ import ResizableLayout from '@/components/ui/resizable-layout';
1212

1313
export const metadata = createMetadata({
1414
title: 'Daily Challenge | TechBlitz',
15-
description: 'Daily coding challenge to level up your skills.',
15+
description:
16+
'Daily coding challenge to improve your coding skills. Learn to code for free, with our short-form, interactive coding challenges.',
17+
keywords: [
18+
'coding',
19+
'learn to code for free',
20+
'learn javascript',
21+
'coding challenges',
22+
'daily coding challenges',
23+
'web development',
24+
'tech skills assessment',
25+
],
1626
image: {
1727
text: `Daily Challenge ${new Date().toLocaleDateString()} | TechBlitz`,
1828
bgColor: '#000',
1929
textColor: '#fff',
2030
},
31+
canonicalUrl: '/daily-challenge',
2132
});
2233

2334
export default async function MarketingQuestionPage() {

src/app/(marketing)/features/daily-challenges/page.tsx

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,23 @@ export async function generateMetadata() {
1313
return createMetadata({
1414
title: 'Daily Coding Challenges | TechBlitz',
1515
description:
16-
'Improve your coding skills with our daily challenges. Perfect for developers who want consistent growth through bite-sized practice.',
16+
'Daily coding challenges to improve your coding skills. Learn to code for free, with our short-form, interactive coding challenges.',
17+
keywords: [
18+
'learn to coding',
19+
'learn to code for free',
20+
'learn javascript',
21+
'coding challenges',
22+
'daily coding challenges',
23+
'web development',
24+
'tech skills assessment',
25+
'learn to code on phone',
26+
],
1727
image: {
18-
text: 'Daily Coding Challenges | TechBlitz',
28+
text: `Daily Coding Challenges | TechBlitz`,
1929
bgColor: '#000',
2030
textColor: '#fff',
2131
},
22-
canonicalUrl: '/features/daily-challenges',
32+
canonicalUrl: 'features/daily-challenge',
2333
});
2434
}
2535

@@ -63,9 +73,9 @@ const items = [
6373
/>
6474
</svg>
6575
),
66-
title: 'Daily Growth System',
76+
title: 'Daily Coding Challenges',
6777
description:
68-
'Build unstoppable momentum with our proven daily challenge system. Join thousands of developers who’ve transformed their careers through consistent practice.',
78+
'Daily coding challenges to improve your coding skills. Learn to code for free, with our short-form, interactive coding challenges from a range of topics including JavaScript, React, Node.js, web development, and more.',
6979
},
7080
{
7181
icon: (
@@ -99,7 +109,7 @@ const items = [
99109
/>
100110
</svg>
101111
),
102-
title: 'Instant feedback',
112+
title: 'Instant Feedback',
103113
description:
104114
'Get real-time feedback on your solutions. Learn from mistakes and improve faster.',
105115
},
@@ -132,7 +142,7 @@ const items = [
132142
icon: <MobileIcon className="size-6" />,
133143
title: 'Seamless Mobile Experience',
134144
description:
135-
'Code on any device with our responsive platform. Practice during commutes or breaks with our optimized mobile interface - never miss a day of learning.',
145+
'Learn to code on your phone. Practice during commutes or breaks with our optimized mobile interface - never miss a day of learning.',
136146
},
137147
];
138148

@@ -179,11 +189,11 @@ export default function FeatureDailyQuestionPage() {
179189
<FeatureDailyChallengeHero />
180190
<FeatureLeftRightSection />
181191

182-
<MarketingContentGrid title="Coding made easy." items={items} />
192+
<MarketingContentGrid title="Learn to code, faster." items={items} />
183193
<FAQsBlock faqs={faqs} />
184194
<CallToActionBlock
185195
title="The fastest way to master coding."
186-
description="Daily challenges designed to make you a better developer, faster."
196+
description="Daily coding challenges designed to make you a better developer, faster."
187197
/>
188198
</div>
189199
);

src/app/(marketing)/features/roadmap/page.tsx

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ import FeatureRoadmapCustomizationBlock from '@/components/marketing/features/ro
44
import FeatureRoadmapThreeGridBlock from '@/components/marketing/features/roadmap/roadmap-three-grid';
55
import CallToActionBlock from '@/components/marketing/global/call-to-action-block';
66
import FAQsBlock from '@/components/marketing/global/faqs';
7-
import { Code, Globe, MessageSquareCode, Paintbrush, User } from 'lucide-react';
7+
import {
8+
Code,
9+
MessageSquareCode,
10+
Paintbrush,
11+
BookOpen,
12+
Target,
13+
} from 'lucide-react';
814

915
import MarketingContentGrid, {
1016
type MarketingContentGridProps,
@@ -17,7 +23,17 @@ export async function generateMetadata() {
1723
return createMetadata({
1824
title: 'Roadmap | TechBlitz',
1925
description:
20-
'Create your own progression path with our AI powered roadmaps.',
26+
'Create your own coding progression paths with our personalized roadmaps.',
27+
keywords: [
28+
'learn to code',
29+
'personalized coding',
30+
'coding roadmap',
31+
'learn to code with ai',
32+
'coding for beginners',
33+
'programming learning path',
34+
'developer career roadmap',
35+
'tech skills progression',
36+
],
2137
image: {
2238
text: 'Roadmap | TechBlitz',
2339
bgColor: '#000',
@@ -29,11 +45,6 @@ export async function generateMetadata() {
2945

3046
// faqs
3147
const faqs = [
32-
{
33-
question: 'When will TechBlitz launch?',
34-
answer:
35-
'TechBlitz is set to launch in Q1 2025! Join our waitlist today to get early access and be notified as soon as we go live.',
36-
},
3748
{
3849
question: "How can I access the roadmaps on TechBlitz's platform?",
3950
answer: (
@@ -83,7 +94,7 @@ const faqs = [
8394
question: 'What will you be adding to techblitz in the future?',
8495
answer: (
8596
<>
86-
Were constantly improving TechBlitz with new features and updates.
97+
We're constantly improving TechBlitz with new features and updates.
8798
Check out our{' '}
8899
<a
89100
href="https://github.com/users/Logannford/projects/5"
@@ -92,7 +103,7 @@ const faqs = [
92103
>
93104
roadmap
94105
</a>{' '}
95-
to see whats next, and share your suggestions — wed love to hear your
106+
to see what's next, and share your suggestions — we'd love to hear your
96107
ideas!
97108
</>
98109
),
@@ -101,40 +112,40 @@ const faqs = [
101112

102113
const featureShowcaseItems: MarketingContentGridProps[] = [
103114
{
104-
icon: <User />,
105-
title: 'Personalized Learning Path',
115+
icon: <Target />,
116+
title: 'Beginner-Friendly Learning Path',
106117
description:
107-
'Experience adaptive learning with our roadmaps that evolve with your progress. Get a customized curriculum that matches your skill level and career goals.',
118+
'Start your coding journey with confidence using our beginner-focused roadmaps. Progress from basic concepts to advanced skills at your own pace.',
108119
},
109120
{
110-
icon: <Globe />,
111-
title: 'Industry-Standard Problem Solving',
121+
icon: <BookOpen />,
122+
title: 'Free Coding Resources',
112123
description:
113-
'Master professional software development with real enterprise challenges. Build a portfolio of solutions that top tech companies actually use.',
124+
'Access a wealth of free programming tutorials, guides, and interactive lessons. Perfect for self-paced learning and skill development.',
114125
},
115126
{
116127
icon: <MobileIcon />,
117-
title: 'Learn Anywhere with Mobile Access',
128+
title: 'Learn to Code Anywhere',
118129
description:
119-
'Never miss a learning opportunity with our responsive platform. Study during commutes, breaks, or whenever inspiration strikes - available 24/7 on all devices.',
130+
'Practice coding on any device with our mobile-optimized platform. Turn your commute time into learning time with accessible programming lessons.',
120131
},
121132
{
122133
icon: <Paintbrush />,
123-
title: 'Create Your Perfect Learning Journey',
134+
title: 'Personalized Learning Experience',
124135
description:
125-
'Take control of your education with fully customizable learning paths. Add, remove, or modify content to create the exact curriculum you need for career success.',
136+
"Create custom learning paths tailored to your goals. Whether you're a complete beginner or advancing your skills, find the perfect route for your journey.",
126137
},
127138
{
128139
icon: <MessageSquareCode />,
129-
title: 'Instant Expert Feedback System',
140+
title: 'AI-Powered Assistance',
130141
description:
131-
'Accelerate your learning with our intelligent feedback engine. Get detailed explanations and suggestions that help you understand concepts deeply and fix mistakes instantly.',
142+
'Get instant help with our AI tutor. Receive personalized questions, and guidance to accelerate your programming journey.',
132143
},
133144
{
134145
icon: <Code />,
135-
title: 'Complete Developer Evolution',
146+
title: 'Practical Coding Skills',
136147
description:
137-
'Transform from coding novice to industry expert with our comprehensive curriculum. Join thousands who’ve accelerated their tech careers through our proven learning system.',
148+
'Learn real-world programming through hands-on projects and exercises. Build a strong foundation in coding with our comprehensive curriculum.',
138149
},
139150
];
140151

@@ -150,7 +161,7 @@ export default function FeatureDailyQuestionPage() {
150161
/>
151162
<FAQsBlock faqs={faqs} />
152163
<CallToActionBlock
153-
title="The smarter way to stay on top of tech."
164+
title="Personalized coding for everyone."
154165
description="Create your own progression path with our personalized roadmaps, designed to help you grow as a developer."
155166
leftCta={{
156167
title: 'Get Started',

src/app/(marketing)/features/statistics/page.tsx

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,20 @@ import { createMetadata } from '@/utils';
88

99
export async function generateMetadata() {
1010
return createMetadata({
11-
title: 'Statistics | TechBlitz',
11+
title: 'Track your coding journey | TechBlitz',
1212
description: 'Track your coding journey with our statistics dashboard.',
13+
keywords: [
14+
'track coding progress',
15+
'coding statistics',
16+
'developer analytics',
17+
'coding performance insights',
18+
'improve coding skills',
19+
'coding improvement tools',
20+
'coding mastery',
21+
'coding challenges dashboard',
22+
],
1323
image: {
14-
text: 'Statistics | TechBlitz',
24+
text: 'Track your coding journey | TechBlitz',
1525
bgColor: '#000',
1626
textColor: '#fff',
1727
},
@@ -21,15 +31,15 @@ export async function generateMetadata() {
2131

2232
const featureShowcaseItems = [
2333
{
24-
title: 'Build Unbreakable Coding Habits',
34+
title: 'Track Your Coding Progress',
2535
description:
26-
'Stay motivated with daily coding streaks and achievement milestones that reinforce consistent learning habits.',
36+
'Monitor your daily coding activity with detailed statistics and progress tracking to build consistent learning habits.',
2737
icon: <Code />,
2838
},
2939
{
30-
title: 'Comprehensive Skill Analytics',
40+
title: 'Developer Analytics Dashboard',
3141
description:
32-
'Monitor your mastery across programming languages, algorithms, and system design with detailed performance metrics.',
42+
'Get deep insights into your coding performance with comprehensive analytics across different programming concepts and challenges.',
3343
icon: (
3444
<svg
3545
xmlns="http://www.w3.org/2000/svg"
@@ -50,27 +60,27 @@ const featureShowcaseItems = [
5060
),
5161
},
5262
{
53-
title: 'Personalized Learning Insights',
63+
title: 'Measure Coding Mastery',
5464
description:
55-
'Receive data-driven recommendations and personalized learning paths based on your unique strengths and areas for improvement.',
65+
'Track your journey to coding mastery with detailed performance metrics and achievement milestones that showcase your growing expertise.',
5666
icon: <FileBadge2 />,
5767
},
5868
{
59-
title: 'Adaptive Learning Technology',
69+
title: 'Performance Insights',
6070
description:
61-
'Experience dynamic question generation that evolves with your skill level, ensuring optimal learning progression.',
71+
'Leverage powerful analytics tools to identify your strengths and areas for improvement, helping you become a better developer.',
6272
icon: <LaptopIcon />,
6373
},
6474
{
65-
title: 'Interactive Progress Dashboard',
75+
title: 'Coding Improvement Tools',
6676
description:
67-
'Transform your learning data into actionable insights with beautiful, interactive charts and progress visualizations.',
77+
'Access a suite of statistical tools and visualizations designed to help you track and improve your coding skills over time.',
6878
icon: <BarChart />,
6979
},
7080
{
71-
title: 'Learn Anywhere, Anytime',
81+
title: 'Challenge Dashboard',
7282
description:
73-
'Track your coding journey seamlessly across all devices with our responsive, mobile-first statistics dashboard.',
83+
'Monitor your progress through coding challenges with a comprehensive dashboard that tracks your solutions and learning patterns.',
7484
icon: <MobileIcon />,
7585
},
7686
];
@@ -79,18 +89,13 @@ export default function StatisticsPage() {
7989
return (
8090
<div className="container">
8191
<StatsHero />
82-
{/**
83-
* Sections needed:
84-
* 1. Talking about interactive charts
85-
* 2. easy to use and understand
86-
*/}
8792
<StatsReportSection />
8893
<MarketingContentGrid
89-
title="Tracking your coding journey made simple."
94+
title="Tracking coding progress made simple."
9095
items={featureShowcaseItems}
9196
/>
9297
<CallToActionBlock
93-
title="The simplest way to track your progress."
98+
title="Improve coding skills effortlessly."
9499
leftCta={{
95100
title: 'Get Started',
96101
href: '/signup',

src/app/(marketing)/layout.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,7 @@ import dynamic from 'next/dynamic';
1515
import { Analytics } from '@vercel/analytics/react';
1616

1717
// Dynamically import components that are not needed immediately
18-
const MarketingNavigation = dynamic(
19-
() => import('@/components/marketing/global/navigation/navigation'),
20-
{ ssr: true } // Keep SSR for SEO
21-
);
18+
import MarketingNavigation from '@/components/marketing/global/navigation/navigation';
2219

2320
const MarketingFooter = dynamic(
2421
() => import('@/components/marketing/global/footer/footer'),
@@ -48,7 +45,7 @@ export default function Layout({
4845
<ReactQueryClientProvider>
4946
<html lang="en">
5047
<body
51-
className={`${InterFont.variable} ${SatoshiFont.variable} ${UbuntuFont.variable} ${OnestFont.variable} antialiased`}
48+
className={`${InterFont.variable} ${SatoshiFont.variable} ${UbuntuFont.variable} ${OnestFont.variable} overflow-x-hidden antialiased`}
5249
>
5350
<main>
5451
<StarsBackground className="-z-10" />

0 commit comments

Comments
 (0)