Skip to content

Commit 044f4ab

Browse files
authored
pacer: update pacer marketing (#424)
* add vue-pacer adapter and update pacer marketing * update pacer copy * remove vue from pacer for now * format
1 parent 9cd64b5 commit 044f4ab

File tree

3 files changed

+70
-82
lines changed

3 files changed

+70
-82
lines changed

src/components/Markdown.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ const makeHeading =
4141
<CustomHeading
4242
Comp={type}
4343
{...props}
44-
className={`${props.className ?? ''} inline-block`}
44+
className={`${props.className ?? ''} block`}
4545
/>
4646
)
4747

src/libraries/pacer.tsx

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import { VscPreview, VscWand } from 'react-icons/vsc'
22
import { Library } from '.'
3-
import { FaGithub, FaBolt, FaCogs } from 'react-icons/fa'
3+
import { FaGithub } from 'react-icons/fa'
44
import { BiBookAlt } from 'react-icons/bi'
5+
import { GiF1Car } from 'react-icons/gi'
56
import { twMerge } from 'tailwind-merge'
7+
import { FaTimeline } from 'react-icons/fa6'
68

79
const repo = 'tanstack/pacer'
810

@@ -13,8 +15,8 @@ export const pacerProject = {
1315
name: 'TanStack Pacer',
1416
cardStyles: `shadow-xl shadow-lime-700/20 dark:shadow-lg dark:shadow-lime-500/20 text-lime-500 dark:text-lime-400 border-2 border-transparent hover:border-current`,
1517
to: '/pacer',
16-
tagline: `Framework agnostic debouncing, throttling, and queueing utilities`,
17-
description: `Set the pace of interactions in your applications. Limit the rate at which functions can fire, or intelligently queue long-running tasks with Concurrency Control.`,
18+
tagline: `Framework agnostic debouncing, throttling, rate limiting, queuing, and batching utilities`,
19+
description: `Optimize your application's performance with TanStack Pacer's core primitives: Debouncing, Throttling, Rate Limiting, Queuing, and Batching.`,
1820
ogImage: 'https://github.com/tanstack/pacer/raw/main/media/repo-header.png',
1921
badge: 'alpha',
2022
bgStyle: `bg-lime-700`,
@@ -48,7 +50,7 @@ export const pacerProject = {
4850
],
4951
featureHighlights: [
5052
{
51-
title: 'Framework Agnostic & Type-Safe',
53+
title: 'Flexible & Type-Safe',
5254
icon: <VscWand className={twMerge(textStyles)} />,
5355
description: (
5456
<div>
@@ -64,35 +66,35 @@ export const pacerProject = {
6466
),
6567
},
6668
{
67-
title: 'Flexible Rate Limiting Controls',
68-
icon: <FaBolt className={twMerge(textStyles)} />,
69+
title: 'Optimize Performance',
70+
icon: <GiF1Car className={twMerge(textStyles)} />,
6971
description: (
7072
<div>
71-
Take control of your application's timing with powerful utilities for{' '}
73+
Enhance your application's efficiency with flexible utilities for{' '}
7274
<span className={twMerge('font-semibold', textStyles)}>
73-
rate limiting, throttling, and debouncing
75+
debouncing, throttling, rate limiting, queuing, and batching
7476
</span>
75-
. Leverage built-in cleanup and cancellation capabilities to help you
76-
manage execution timing with precision while preventing memory leaks.
77-
Flexible configuration options let you fine-tune the behavior to match
78-
your needs.
77+
. Reduce unnecessary operations and resource consumption while
78+
maintaining smooth user experiences. Built-in cleanup and cancellation
79+
capabilities help prevent memory leaks and optimize resource usage.
80+
Fine-tune behavior with flexible configuration options to match your
81+
specific performance needs.
7982
</div>
8083
),
8184
},
8285
{
83-
title: 'Async/Sync Queue Management',
84-
icon: <FaCogs className={twMerge(textStyles)} />,
86+
title: 'Async or Sync',
87+
icon: <FaTimeline className={twMerge(textStyles)} />,
8588
description: (
8689
<div>
87-
Handle complex asynchronous workflows with intelligent queuing and
88-
concurrency control.{' '}
90+
Choose between async or sync execution for each utility based on your
91+
needs.{' '}
8992
<span className={twMerge('font-semibold', textStyles)}>
90-
Manage long-running tasks with FIFO/LIFO ordering, priority queuing,
91-
and parallel execution
93+
Track success and error states with comprehensive event handling and
94+
status reporting
9295
</span>
93-
. Built-in pause, resume and cancel capabilities give you complete
94-
control over your queue's lifecycle. Perfect for managing API calls,
95-
animations, and other sequential operations.
96+
. Perfect for handling both simple synchronous operations and complex
97+
task pooling workflows with or without concurrency control.
9698
</div>
9799
),
98100
},

src/routes/_libraries/pacer.$version.index.tsx

Lines changed: 46 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
import { CgSpinner } from 'react-icons/cg'
2-
import * as React from 'react'
32
import { Link, getRouteApi } from '@tanstack/react-router'
4-
import { Carbon } from '~/components/Carbon'
53
import { Footer } from '~/components/Footer'
6-
import { TbHeartHandshake } from 'react-icons/tb'
74
import { FaCheckCircle } from 'react-icons/fa'
85
import SponsorPack from '~/components/SponsorPack'
96
import { pacerProject } from '~/libraries/pacer'
@@ -42,31 +39,62 @@ export default function PacerVersionIndex() {
4239
<span>TanStack</span>
4340
<span className={twMerge(gradientText)}>Pacer</span>
4441
</h1>
42+
<div
43+
className={twMerge(
44+
'text-sm',
45+
'md:text-base font-black',
46+
'lg:text-lg align-super text-white animate-bounce uppercase',
47+
'dark:text-black bg-black dark:bg-white shadow-xl shadow-black/30 px-2 py-1 rounded-md',
48+
'leading-none whitespace-nowrap'
49+
)}
50+
>
51+
STATUS: ALPHA
52+
</div>
4553
<h2
4654
className="font-bold text-2xl max-w-md
4755
md:text-3xl
4856
lg:text-5xl lg:max-w-2xl"
4957
>
5058
<span className="underline decoration-dashed decoration-gray-500 decoration-3 underline-offset-2">
51-
Framework agnostic
59+
Flexible
5260
</span>{' '}
53-
type-safe rate-limiting and queueing utilities
61+
type-safe throttling and queuing utilities
5462
</h2>
5563
<p
5664
className="text opacity-90 max-w-[500px]
5765
lg:text-xl lg:max-w-[800px]"
5866
>
59-
Take control of your application's timing with TanStack Pacer's{' '}
60-
<strong>rate limiting, throttling, and debouncing utilities</strong>
61-
. Manage complex async workflows using{' '}
62-
<strong>intelligent queuing and concurrency controls</strong> while
63-
maintaining full control with built-in pause, resume, and cancel
64-
capabilities.
67+
Optimize your application's performance with TanStack Pacer's core
68+
primitives:{' '}
69+
<strong>
70+
Debouncing, Throttling, Rate Limiting, Queuing, and Batching
71+
</strong>
72+
.
73+
</p>
74+
<p
75+
className="text opacity-90 max-w-[500px]
76+
lg:text-xl lg:max-w-[800px]"
77+
>
78+
Choose from multiple layers of abstraction using high-level
79+
pre-built hooks or low-level primitives that you can connect to your
80+
own state management solutions of choice.
81+
</p>
82+
<p
83+
className="text opacity-90 max-w-[500px]
84+
lg:text-xl lg:max-w-[800px]"
85+
>
86+
TanStack Pacer is built on top of {/* @ts-ignore */}
87+
<Link target="_blank" to="/store/latest" className="underline">
88+
TanStack Store
89+
</Link>{' '}
90+
with reactive and subscribable state to make interacting with your
91+
state management or persistence solution of choice a breeze, no
92+
matter which framework you're using.
6593
</p>
6694
<Link
6795
to="/$libraryId/$version/docs"
6896
params={{ libraryId: library.id, version }}
69-
className={`py-2 px-4 bg-stone-600 text-white rounded uppercase font-extrabold`}
97+
className={`py-2 px-4 bg-lime-600 hover:bg-lime-700 text-white rounded uppercase font-extrabold transition-colors`}
7098
>
7199
Get Started
72100
</Link>
@@ -91,17 +119,21 @@ export default function PacerVersionIndex() {
91119
'Lightweight',
92120
'Tree-Shaking',
93121
'Type-Safe',
122+
'Framework Agnostic',
123+
'Reactive & Subscribable State',
94124
'Rate Limiting',
95125
'Throttling',
96126
'Debouncing',
97-
'Queueing',
127+
'Queuing',
128+
'Batching',
129+
'Flush Controls',
98130
'LIFO/FIFO/Dequeue Ordering',
99131
'Concurrency Control',
100132
'Queue Prioritization',
101133
'Pause/Resume Controls',
102134
'Cancellation',
103135
'Abort Controller Support',
104-
'Promise Integration',
136+
'Async/Sync Execution',
105137
'Multiple Layers of Abstraction',
106138
].map((d, i) => {
107139
return (
@@ -172,52 +204,6 @@ export default function PacerVersionIndex() {
172204

173205
<LandingPageGad />
174206

175-
{/* <div className="flex flex-col gap-4">
176-
<div className="px-4 sm:px-6 lg:px-8 mx-auto container max-w-3xl sm:text-center">
177-
<h3 className="text-3xl text-center leading-8 font-extrabold tracking-tight sm:text-4xl sm:leading-10 lg:leading-none mt-2">
178-
Take it for a spin!
179-
</h3>
180-
<p className="my-4 text-xl leading-7 text-gray-600">
181-
With just a few lines of code, you can start using powerful rate
182-
limiting, throttling, debouncing, and queueing utilities.
183-
</p>
184-
<div className="flex flex-wrap gap-2 justify-center">
185-
{(
186-
[
187-
{ label: 'React', value: 'react' },
188-
// More adapters coming soon
189-
// { label: 'Solid', value: 'solid' },
190-
// { label: 'Svelte', value: 'svelte' },
191-
// { label: 'Vue', value: 'vue' },
192-
// { label: 'Vanilla', value: 'vanilla' },
193-
] as const
194-
).map((item) => (
195-
<button
196-
key={item.value}
197-
className={`inline-block py-2 px-4 rounded text-white uppercase font-extrabold bg-stone-600`}
198-
>
199-
{item.label}
200-
</button>
201-
))}
202-
</div>
203-
</div>
204-
</div>
205-
206-
<div className="bg-white dark:bg-black">
207-
<iframe
208-
src={`https://stackblitz.com/github/${pacerProject.repo}/tree/main/examples/react/useDebouncer?embed=1&theme=dark&preset=node&file=src/main.tsx`}
209-
title="tanstack/pacer: useDebouncer"
210-
sandbox="allow-forms allow-modals allow-popups allow-presentation allow-same-origin allow-scripts"
211-
className="shadow-2xl"
212-
loading="lazy"
213-
style={{
214-
width: '100%',
215-
height: '80vh',
216-
border: '0',
217-
}}
218-
></iframe>
219-
</div> */}
220-
221207
<div className="flex flex-col gap-4 items-center">
222208
<div className="font-extrabold text-xl lg:text-2xl">
223209
Wow, you've come a long way!

0 commit comments

Comments
 (0)