Skip to content

Commit 03895aa

Browse files
committed
updated footer and landing page texts
1 parent 26a9365 commit 03895aa

3 files changed

Lines changed: 90 additions & 90 deletions

File tree

src/app/page.tsx

Lines changed: 86 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ import {
3636
import Image from "next/image";
3737
import Link from "next/link";
3838
import { Suspense } from "react";
39-
import AceEditor from "react-ace";
4039

4140
export default async function HomePageRoute() {
4241
return (
@@ -53,12 +52,12 @@ export default async function HomePageRoute() {
5352
</Link>
5453
</div>
5554

56-
<h1 className="text-3xl sm:text-5xl md:text-6xl lg:text-7xl font-bold text-center tracking-tight text-gray-900 font-poppins">
57-
Save Time & Money <br /> on{" "}
58-
<span className="text-blue-600">Scheduling</span>
55+
<h1 className="text-3xl sm:text-5xl md:text-6xl font-bold text-center tracking-tight text-gray-900 font-poppins">
56+
<span className="text-blue-600">Developer-First</span> Task Scheduling
5957
</h1>
6058
<p className="text-sm md:text-base font-medium text-center text-gray-600 mb-6">
61-
The scheduling system your apps can depend on
59+
API-first scheduling for developers. Set up timed tasks, delays, and
60+
reminders—without managing servers or cron jobs
6261
</p>
6362
<div className="flex flex-row items-center">
6463
<Link href="/5-min-guide">
@@ -99,17 +98,17 @@ export default async function HomePageRoute() {
9998
</section>
10099
{/* <LandingAnimation /> */}
101100

102-
<section className="container mt-20 ">
103-
<h2 className="my-10 text-5xl font-geist-mono text-center font-bold tracking-tight transition-colors first:mt-0">
104-
Features
101+
<section className="container mt-20">
102+
<h2 className="my-10 text-5xl font-geist-mono text-center font-bold tracking-tight transition-colors first:mt-0 pb-10">
103+
Why Developers Love Schedify
105104
</h2>
106105

107106
<div className="grid grid-cols-1 md:grid-cols-3 place-items-center gap-6">
108107
{[
109108
{
110109
icon: <LucideClock className="size-6 stroke-black" />,
111110
title: "Task Scheduling",
112-
text: "Reliable task scheduling for your server",
111+
text: "Offload timed tasks with atomic reliability",
113112
},
114113
{
115114
icon: <LucideCable className="size-6 stroke-black" />,
@@ -119,13 +118,12 @@ export default async function HomePageRoute() {
119118
{
120119
icon: <LucideLock className="size-6 stroke-black" />,
121120
title: "Secure",
122-
text: "Webhooks are secure with HMAC signature",
121+
text: "HMAC-signed payloads for peace of mind",
123122
},
124123
].map((item, index) => (
125124
<div
126125
key={index}
127126
className="flex flex-col items-center gap-5 text-center"
128-
// className="flex flex-col items-center justify-center border border-dashed border-neutral-500 p-5 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300 bg-secondary text-center"
129127
>
130128
<div className="bg-blue-50 p-3 rounded-full">{item.icon}</div>
131129

@@ -141,85 +139,90 @@ export default async function HomePageRoute() {
141139
</section>
142140

143141
<section className="container mt-32">
144-
<h2 className="my-10 text-5xl font-geist-mono text-center font-bold tracking-tight transition-colors first:mt-0">
145-
Use cases
142+
<h2 className="my-10 text-5xl font-geist-mono text-center font-bold tracking-tight transition-colors first:mt-0 pb-10">
143+
Example use cases
146144
</h2>
147-
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-8 mt-10">
145+
<div className="grid grid-cols-1 gap-5 mt-10">
148146
{/* 1. Scheduled Notifications */}
149-
<div className="flex flex-col items-center text-center p-6 border rounded-lg shadow-sm hover:shadow-md transition">
150-
<i className="fas fa-bell text-4xl text-indigo-500 mb-4"></i>
151-
<h3 className="text-xl font-semibold mb-2">
152-
Scheduled Notifications
153-
</h3>
154-
<p className="text-gray-600">
155-
Send reminders, alerts, or emails at a specific time. <br />
156-
<span className="text-sm text-gray-500 italic">
157-
e.g., Send appointment reminders 24 hours in advance.
158-
</span>
159-
</p>
160-
</div>
161-
162-
{/* 2. Delayed Webhooks */}
163-
<div className="flex flex-col items-center text-center p-6 border rounded-lg shadow-sm hover:shadow-md transition">
164-
<i className="fas fa-clock text-4xl text-green-500 mb-4"></i>
165-
<h3 className="text-xl font-semibold mb-2">Delayed Webhooks</h3>
166-
<p className="text-gray-600">
167-
Trigger webhooks after a delay. <br />
168-
<span className="text-sm text-gray-500 italic">
169-
e.g., Trigger a payment retry webhook 12 hours after failure.
170-
</span>
147+
<div className="flex flex-col p-6 border rounded-lg shadow-sm hover:shadow-md transition">
148+
<h3 className="text-xl font-semibold mb-2">1. Abandoned Orders</h3>
149+
<p className="text-gray-600 pb-5 text-sm">
150+
Cancel unpaid orders <strong>30 minutes after creation</strong>
171151
</p>
152+
<CodeBlock lang="typescript">
153+
{`// At 2:00PM order is placed
154+
schedify.schedule({
155+
event: "cancel_order",
156+
payload: { orderId: "ord_123" },
157+
after: "30m" // ← Will run at 2:30PM
158+
});`}
159+
</CodeBlock>
172160
</div>
173161

174-
{/* 3. Subscription Expiry Reminders */}
175-
<div className="flex flex-col items-center text-center p-6 border rounded-lg shadow-sm hover:shadow-md transition">
176-
<i className="fas fa-hourglass-end text-4xl text-yellow-500 mb-4"></i>
162+
<div className="flex flex-col p-6 border rounded-lg shadow-sm hover:shadow-md transition">
177163
<h3 className="text-xl font-semibold mb-2">
178-
Subscription Reminders
164+
2. End-of-Day Reports
179165
</h3>
180-
<p className="text-gray-600">
181-
Notify users when subscriptions are about to expire. <br />
182-
<span className="text-sm text-gray-500 italic">
183-
e.g., Notify users 3 days before their subscription ends.
184-
</span>
166+
<p className="text-gray-600 pb-5 text-sm">
167+
Generate reports <strong>every day at 11:59PM</strong>
185168
</p>
186-
</div>
169+
<CodeBlock lang="typescript">
170+
{`// Runs nightly at midnight
171+
schedify.schedule({
172+
event: "generate_report",
173+
reportType: "daily",
174+
at: "0 23 * * *" // ← Cron syntax
175+
});`}
176+
</CodeBlock>
187177

188-
{/* 4. Drip Campaigns */}
189-
<div className="flex flex-col items-center text-center p-6 border rounded-lg shadow-sm hover:shadow-md transition">
190-
<i className="fas fa-envelope-open-text text-4xl text-pink-500 mb-4"></i>
191-
<h3 className="text-xl font-semibold mb-2">Drip Campaigns</h3>
192-
<p className="text-gray-600">
193-
Automate onboarding or marketing emails in a sequence. <br />
194-
<span className="text-sm text-gray-500 italic">
195-
e.g., Send "Welcome", "Getting Started", and "Tips" emails over
196-
7 days.
197-
</span>
198-
</p>
178+
<i className="mt-3 text-sm text-gray-600">
179+
Note: Cron based scheduling is not live yet!
180+
</i>
199181
</div>
200182

201-
{/* 5. Task Scheduling */}
202-
<div className="flex flex-col items-center text-center p-6 border rounded-lg shadow-sm hover:shadow-md transition">
203-
<i className="fas fa-tasks text-4xl text-blue-500 mb-4"></i>
204-
<h3 className="text-xl font-semibold mb-2">Task Scheduling</h3>
205-
<p className="text-gray-600">
206-
Queue backend tasks for future execution. <br />
207-
<span className="text-sm text-gray-500 italic">
208-
e.g., Schedule a data cleanup job at midnight.
209-
</span>
183+
{/* Example 3 - Sequence */}
184+
<div className="flex flex-col p-6 border rounded-lg shadow-sm hover:shadow-md transition">
185+
<h3 className="text-xl font-semibold mb-2">
186+
3. Welcome Email Series
187+
</h3>
188+
<p className="text-gray-600 pb-5 text-sm">
189+
Send emails <strong>immediately, 1 day, and 7 days</strong> after
190+
signup
210191
</p>
192+
<CodeBlock lang="typescript">
193+
{`// User signs up at 4:00PM Jan 1
194+
schedify.scheduleMany([
195+
{ event: "welcome_email", after: "0m" }, // 4:00PM Jan 1
196+
{ event: "tips_email", after: "1d" }, // 4:00PM Jan 2
197+
{ event: "offer_email", after: "7d" } // 4:00PM Jan 8
198+
]);`}
199+
</CodeBlock>
200+
201+
<i className="mt-3 text-sm text-gray-600">
202+
Note: Sequence scheduling is not live yet!
203+
</i>
211204
</div>
212205

213-
{/* 6. Event Follow-Ups */}
214-
<div className="flex flex-col items-center text-center p-6 border rounded-lg shadow-sm hover:shadow-md transition">
215-
<i className="fas fa-clipboard-check text-4xl text-purple-500 mb-4"></i>
216-
<h3 className="text-xl font-semibold mb-2">Event Follow-Ups</h3>
217-
<p className="text-gray-600">
218-
Send follow-up messages after a user action. <br />
219-
<span className="text-sm text-gray-500 italic">
220-
e.g., Send feedback form 2 hours after a webinar ends.
221-
</span>
206+
{/* Example 4 - Timezone-Aware */}
207+
<div className="flex flex-col p-6 border rounded-lg shadow-sm hover:shadow-md transition">
208+
<h3 className="text-xl font-semibold mb-2">
209+
4. Morning Notifications
210+
</h3>
211+
<p className="text-gray-600 pb-5 text-sm">
212+
Send alerts <strong>at 9:00AM in user's timezone</strong>
222213
</p>
214+
<CodeBlock lang="typescript">
215+
{`// For user in PST (UTC-8)
216+
schedify.schedule({
217+
event: "morning_alert",
218+
userId: "u_456",
219+
at: "2023-12-01T09:00:00-08:00" // ← 9AM PST
220+
});`}
221+
</CodeBlock>
222+
<i className="mt-3 text-sm text-gray-600">
223+
Note: User based timezone scheduling is not live yet! We convert
224+
all time to UTC
225+
</i>
223226
</div>
224227
</div>
225228
</section>
@@ -284,20 +287,17 @@ export default async function HomePageRoute() {
284287
<div className="col-span-3 space-y-4 flex flex-col">
285288
<div>
286289
<CodeBlock lang="typescript">
287-
{`const client = new Client("API_KEY");
288-
289-
await client.createTask("WEBHOOK_ID", {
290-
eventName: "user.created",
291-
payload: {
292-
username: "new_user",
293-
email: "new_user@example.com",
294-
},
295-
scheduledFor: "ISO_STRING"
290+
{`const schedify = new SchedifyClient("API_KEY");
291+
292+
await schedify.schedule("WEBHOOK_ID", {
293+
event: "cancel_order",
294+
payload: { orderId: "ord_123" },
295+
after: "30m" // ← Will run at 2:30PM
296296
});`}
297297
</CodeBlock>
298298
</div>
299299

300-
<div className="inline-flex items-center gap-5 justify-center">
300+
{/* <div className="inline-flex items-center gap-5 justify-center">
301301
<div className="size-5 ring-4 ring-offset-4 rounded cursor-pointer">
302302
<svg
303303
role="img"
@@ -319,7 +319,7 @@ await client.createTask("WEBHOOK_ID", {
319319
<path d="M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z" />
320320
</svg>
321321
</div>
322-
</div>
322+
</div> */}
323323
</div>
324324
</div>
325325
</div>

src/components/code-block.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export async function CodeBlock(props: Props) {
2424
<div
2525
data-rehype-pretty-code-fragment
2626
dangerouslySetInnerHTML={{ __html: out ?? "" }}
27-
className="relative flex-1 overflow-hidden after:absolute after:inset-y-0 after:left-0 after:w-10 after:bg-zinc-950 [&_.line:before]:sticky [&_.line:before]:left-2 [&_.line:before]:z-10 [&_.line:before]:translate-y-[-1px] [&_.line:before]:pr-1 [&_pre]:overflow-auto [&_pre]:!bg-transparent [&_pre]:pb-20 [&_pre]:pt-4 [&_pre]:font-mono [&_pre]:text-sm [&_pre]:leading-relaxed"
27+
className="relative flex-1 overflow-hidden after:absolute after:inset-y-0 after:left-0 after:w-10 after:bg-zinc-950 [&_.line:before]:sticky [&_.line:before]:left-2 [&_.line:before]:z-10 [&_.line:before]:translate-y-[-1px] [&_.line:before]:pr-1 [&_pre]:overflow-auto [&_pre]:!bg-transparent [&_pre]:py-4 [&_pre]:font-mono [&_pre]:text-sm [&_pre]:leading-relaxed"
2828
/>
2929
</div>
3030
</div>

src/components/landing/Footer.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const Footer = () => {
77
<span
88
className={cn(
99
"absolute -bottom-20 left-0 right-0 font-bold select-none font-poppins text-center",
10-
"text-center text-5xl md:text-9xl lg:text-[12rem] xl:text-[13rem] font-bold bg-clip-text text-transparent bg-gradient-to-b from-primary dark:from-neutral-950 to-background dark:to-neutral-800 inset-x-0",
10+
"text-center text-5xl md:text-9xl lg:text-[12rem] xl:text-[13rem] font-bold bg-clip-text text-transparent bg-gradient-to-b from-primary dark:from-neutral-950 to-background dark:to-neutral-800 inset-x-0"
1111
)}
1212
>
1313
Schedify
@@ -41,7 +41,7 @@ export const Footer = () => {
4141
</div>
4242

4343
<span className="text-white mt-auto text-sm font-medium font-geist-mono">
44-
Crafted with <span className="text-red-500">❤️</span> by{" "}
44+
© 2024 Schedify by{" "}
4545
<a
4646
href="https://github.com/ksamirdev"
4747
target="_blank"
@@ -50,7 +50,7 @@ export const Footer = () => {
5050
>
5151
Samir
5252
</a>
53-
!
53+
. All rights reserved.
5454
</span>
5555
</div>
5656
</footer>

0 commit comments

Comments
 (0)