Skip to content

Commit eecb708

Browse files
committed
feat: add blog publishing flow documentation page
- Add /publishing-flow route with SEO metadata - Create reusable Timeline component (vertical + horizontal) - Implement 5-step publishing workflow with icons - Add responsive design (mobile/desktop layouts) - Include CTA section with Keploy theme Closes #3077 Signed-off-by: Gauarv Chaudhary <[email protected]>
1 parent a99b22f commit eecb708

File tree

4 files changed

+446
-0
lines changed

4 files changed

+446
-0
lines changed

src/app/globals.css

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,68 @@ html {
190190
}
191191
}
192192

193+
/* Premium UI Utilities */
194+
.glass-effect {
195+
background-color: rgba(255, 255, 255, 0.05);
196+
backdrop-filter: blur(12px);
197+
-webkit-backdrop-filter: blur(12px);
198+
border: 1px solid rgba(255, 255, 255, 0.1);
199+
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.36);
200+
}
201+
202+
.glass-effect-dark {
203+
background-color: rgba(0, 0, 0, 0.2);
204+
backdrop-filter: blur(24px);
205+
-webkit-backdrop-filter: blur(24px);
206+
border: 1px solid rgba(255, 255, 255, 0.05);
207+
box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
208+
}
209+
210+
.glow-orange {
211+
box-shadow: 0 0 20px rgba(248, 149, 89, 0.3);
212+
}
213+
214+
.glow-orange-strong {
215+
box-shadow: 0 0 30px rgba(248, 149, 89, 0.5);
216+
}
217+
218+
.text-gradient-orange {
219+
background: linear-gradient(to right, #F89559, #E87B3A);
220+
-webkit-background-clip: text;
221+
-webkit-text-fill-color: transparent;
222+
background-clip: text;
223+
}
224+
225+
.bg-mesh-gradient {
226+
background-color: #000000;
227+
background-image:
228+
radial-gradient(at 0% 0%, hsla(24, 93%, 66%, 0.05) 0px, transparent 50%),
229+
radial-gradient(at 100% 0%, hsla(262, 83%, 58%, 0.05) 0px, transparent 50%),
230+
radial-gradient(at 100% 100%, hsla(24, 93%, 66%, 0.05) 0px, transparent 50%),
231+
radial-gradient(at 0% 100%, hsla(262, 83%, 58%, 0.05) 0px, transparent 50%);
232+
}
233+
234+
@keyframes float {
235+
236+
0%,
237+
100% {
238+
transform: translateY(0);
239+
}
240+
241+
50% {
242+
transform: translateY(-10px);
243+
}
244+
}
245+
246+
.animate-float {
247+
animation: float 6s ease-in-out infinite;
248+
}
249+
250+
.animate-float-delayed {
251+
animation: float 6s ease-in-out infinite;
252+
animation-delay: 3s;
253+
}
254+
193255
/* Star Animation Layers - Used in CriteriaSection and CommunitySection */
194256
.stars-layer-1,
195257
.stars-layer-2,

src/app/publishing-flow/page.tsx

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
import { Metadata } from "next";
2+
import { Header } from "@/components/Header";
3+
import { PublishingFlowSection } from "@/components/sections/PublishingFlowSection";
4+
import Image from "next/image";
5+
6+
export const metadata: Metadata = {
7+
title: "Blog Publishing Workflow | Keploy Writers Program",
8+
description:
9+
"Learn the step-by-step process of publishing your blog with Keploy. From draft submission to final publication - understand the complete publishing workflow.",
10+
keywords: [
11+
"Keploy",
12+
"Writers Program",
13+
"Blog Publishing",
14+
"Publishing Workflow",
15+
"Technical Writing",
16+
"Content Creation",
17+
],
18+
openGraph: {
19+
title: "Blog Publishing Workflow | Keploy Writers Program",
20+
description:
21+
"A visual guide to the complete blog publishing process at Keploy Writers Program.",
22+
type: "website",
23+
},
24+
};
25+
26+
export default function PublishingFlowPage() {
27+
return (
28+
<main className="min-h-screen bg-white">
29+
<Header />
30+
<PublishingFlowSection />
31+
32+
{/* Footer */}
33+
<footer className="py-10 px-6 bg-white border-t border-gray-100">
34+
<div className="max-w-6xl mx-auto">
35+
<div className="flex flex-col md:flex-row items-center justify-between gap-6">
36+
<div className="flex items-center gap-4">
37+
<Image
38+
src="/images/keploy-logo.png"
39+
alt="Keploy"
40+
width={100}
41+
height={32}
42+
className="object-contain"
43+
/>
44+
</div>
45+
<p className="text-sm text-gray-500 text-center">
46+
Copyright © 2025 Keploy Inc. • Developer experience for e2e testing
47+
</p>
48+
<div className="flex items-center gap-5">
49+
<a
50+
href="https://keploy.slack.com/"
51+
target="_blank"
52+
rel="noopener noreferrer"
53+
className="text-gray-400 hover:text-[#F89559] transition-colors"
54+
aria-label="Join Keploy Slack community (opens in new tab)"
55+
>
56+
<svg className="w-6 h-6" viewBox="0 0 24 24" fill="currentColor">
57+
<path d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z" />
58+
</svg>
59+
</a>
60+
<a
61+
href="https://twitter.com/Keployio"
62+
target="_blank"
63+
rel="noopener noreferrer"
64+
className="text-gray-400 hover:text-[#F89559] transition-colors"
65+
aria-label="Follow Keploy on Twitter (opens in new tab)"
66+
>
67+
<svg className="w-6 h-6" viewBox="0 0 24 24" fill="currentColor">
68+
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" />
69+
</svg>
70+
</a>
71+
<a
72+
href="https://github.com/keploy"
73+
target="_blank"
74+
rel="noopener noreferrer"
75+
className="text-gray-400 hover:text-[#F89559] transition-colors"
76+
aria-label="Visit Keploy GitHub (opens in new tab)"
77+
>
78+
<svg className="w-6 h-6" viewBox="0 0 24 24" fill="currentColor">
79+
<path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z" />
80+
</svg>
81+
</a>
82+
</div>
83+
</div>
84+
</div>
85+
</footer>
86+
</main>
87+
);
88+
}
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
"use client";
2+
3+
import { Timeline, HorizontalTimeline, TimelineStep } from "@/components/ui/timeline";
4+
import {
5+
Pencil,
6+
Search,
7+
MessageSquareMore,
8+
ListChecks,
9+
Rocket,
10+
ArrowRight,
11+
Sparkles,
12+
} from "lucide-react";
13+
14+
/**
15+
* Publishing flow steps following the Writers Program workflow:
16+
* Draft → Review → Changes → Lineup → Publish
17+
*/
18+
const publishingSteps: TimelineStep[] = [
19+
{
20+
id: "draft-submission",
21+
title: "Draft Submission",
22+
description:
23+
"Start by writing your blog post draft. Follow our content guidelines and submit your work through the designated channel for review.",
24+
icon: <Pencil className="w-full h-full" />,
25+
},
26+
{
27+
id: "review-by-team",
28+
title: "Review by Team",
29+
description:
30+
"Our editorial team carefully reviews your submission for technical accuracy, clarity, SEO optimization, and adherence to Keploy's style guidelines.",
31+
icon: <Search className="w-full h-full" />,
32+
},
33+
{
34+
id: "feedback-changes",
35+
title: "Feedback & Changes",
36+
description:
37+
"Receive constructive feedback from the team. Make necessary revisions to improve your content quality and address any suggested changes.",
38+
icon: <MessageSquareMore className="w-full h-full" />,
39+
},
40+
{
41+
id: "add-to-lineup",
42+
title: "Add to Lineup (Approved)",
43+
description:
44+
"Once approved, your blog is added to our publishing queue. We'll schedule it for publication and prepare any final formatting touches.",
45+
icon: <ListChecks className="w-full h-full" />,
46+
},
47+
{
48+
id: "final-publish",
49+
title: "Final Publish",
50+
description:
51+
"Your blog goes live on Keploy's platform! It's shared across our channels, and you earn your well-deserved recognition and rewards.",
52+
icon: <Rocket className="w-full h-full" />,
53+
},
54+
];
55+
56+
export function PublishingFlowSection() {
57+
return (
58+
<section
59+
className="relative py-24 px-6 bg-white overflow-hidden"
60+
aria-labelledby="publishing-flow-title"
61+
>
62+
{/* Subtle Background Decoration */}
63+
<div className="absolute inset-0 pointer-events-none">
64+
<div className="absolute top-0 right-0 w-[800px] h-[800px] bg-gradient-to-bl from-[#F89559]/5 to-transparent rounded-full -mr-96 -mt-96" />
65+
<div className="absolute bottom-0 left-0 w-[600px] h-[600px] bg-gradient-to-tr from-blue-500/5 to-transparent rounded-full -ml-72 -mb-72" />
66+
</div>
67+
68+
<div className="max-w-6xl mx-auto relative z-10">
69+
{/* Header Section */}
70+
<div className="text-center mb-20">
71+
<div className="inline-flex items-center gap-2 px-5 py-2.5 bg-gradient-to-r from-[#F89559]/10 to-[#E87B3A]/10 border border-[#F89559]/20 rounded-full mb-6">
72+
<Sparkles className="w-4 h-4 text-[#F89559]" />
73+
<span className="text-[#F89559] text-sm font-bold uppercase tracking-wider">Publishing Guide</span>
74+
</div>
75+
76+
<h1
77+
id="publishing-flow-title"
78+
className="text-4xl md:text-5xl lg:text-6xl font-black mb-6 tracking-tight"
79+
>
80+
<span className="text-[#1a1a1a]">Blog Publishing </span>
81+
<span className="text-[#F89559]">Workflow</span>
82+
</h1>
83+
84+
<p className="text-lg md:text-xl text-gray-600 max-w-2xl mx-auto leading-relaxed">
85+
A clear, step-by-step guide for writers contributing to the Keploy Writers Program.
86+
From your first draft to going live.
87+
</p>
88+
</div>
89+
90+
{/* Timeline Section */}
91+
<div className="mb-20">
92+
{/* Desktop Horizontal Timeline */}
93+
<div className="hidden lg:block">
94+
<HorizontalTimeline steps={publishingSteps} />
95+
</div>
96+
97+
{/* Mobile/Tablet Vertical Timeline */}
98+
<div className="lg:hidden max-w-xl mx-auto">
99+
<Timeline steps={publishingSteps} />
100+
</div>
101+
</div>
102+
103+
{/* CTA Section - Keploy Theme with Stars */}
104+
<div className="max-w-4xl mx-auto">
105+
<div
106+
className="relative rounded-3xl p-12 md:p-16 text-center overflow-hidden shadow-2xl"
107+
style={{
108+
background: "radial-gradient(ellipse at center, #1a1a2e 0%, #0f0f1a 50%, #000000 100%)"
109+
}}
110+
>
111+
{/* Animated Stars Background */}
112+
<div className="absolute inset-0 overflow-hidden">
113+
<div className="stars-layer-1" />
114+
<div className="stars-layer-2" />
115+
<div className="stars-layer-3" />
116+
</div>
117+
118+
{/* Glowing Orbs */}
119+
<div className="absolute top-0 right-0 w-64 h-64 bg-[#F89559]/20 rounded-full blur-[80px] animate-pulse" />
120+
<div className="absolute bottom-0 left-0 w-48 h-48 bg-purple-500/15 rounded-full blur-[60px] animate-pulse" style={{ animationDelay: '1s' }} />
121+
122+
<div className="relative z-10">
123+
<h2 className="text-4xl md:text-5xl font-black text-white mb-6">
124+
Ready to Start Writing?
125+
</h2>
126+
<p className="text-xl text-white/70 mb-10 max-w-xl mx-auto leading-relaxed">
127+
Join our community of technical writers and share your knowledge with developers worldwide.
128+
</p>
129+
130+
<div className="flex flex-col sm:flex-row gap-5 justify-center items-center">
131+
<a
132+
href="/#about"
133+
className="group inline-flex items-center justify-center gap-3 px-10 py-5 bg-gradient-to-r from-[#F89559] to-[#E87B3A] text-white text-lg font-bold rounded-2xl hover:shadow-[0_0_40px_rgba(248,149,89,0.5)] transition-all duration-300 hover:scale-105"
134+
>
135+
Become a Writer
136+
<ArrowRight className="w-5 h-5 group-hover:translate-x-1 transition-transform" />
137+
</a>
138+
<a
139+
href="/"
140+
className="inline-flex items-center justify-center px-10 py-5 text-lg font-bold text-white border-2 border-white/30 rounded-2xl hover:bg-[#F89559] hover:border-[#F89559] hover:text-white transition-all duration-300 hover:scale-105"
141+
>
142+
Back to Home
143+
</a>
144+
</div>
145+
</div>
146+
</div>
147+
</div>
148+
149+
</div>
150+
</section>
151+
);
152+
}

0 commit comments

Comments
 (0)