Skip to content

WorkWith Component

Partnership and integration showcase component displaying the tools, services, and platforms your product works with. Perfect for highlighting ecosystem compatibility.

Overview

The WorkWith component showcases the integrations, partnerships, and tools that your product supports. It builds confidence by showing compatibility with popular services and demonstrates the extensibility of your platform.

Preview

Work With Component Preview

Basic Usage

vue
<template>
  <section class="integrations-section">
    <WorkWith 
      title="Works with your favorite tools"
      subtitle="Seamlessly integrate with 100+ popular services"
    />
  </section>
</template>

<script setup lang="ts">
import WorkWith from '@/components/WorkWith.vue'
</script>

Features

🔗 Integration Display

  • Service logos and icons
  • Category-based organization
  • Interactive hover effects
  • Link to documentation

📊 Service Categories

  • Development tools
  • Communication platforms
  • Analytics services
  • Payment processors
  • Cloud providers

🎨 Visual Design

  • Clean grid layout
  • Consistent logo sizing
  • Smooth animations
  • Category filtering

📱 Responsive Layout

  • Mobile-optimized grid
  • Tablet-friendly display
  • Desktop enhancements
  • Flexible breakpoints

Component API

Props

PropTypeDefaultDescription
titlestring'Works With'Section title
subtitlestringundefinedOptional subtitle
showCategoriesbooleantrueDisplay category filters
showCountbooleanfalseShow integration count
layout'grid' | 'carousel' | 'masonry''grid'Layout style

Data Structure

typescript
interface Integration {
  id: string
  name: string
  logo: string
  category: IntegrationCategory
  description?: string
  documentationUrl?: string
  isPopular?: boolean
  isPremium?: boolean
}

type IntegrationCategory = 
  | 'development'
  | 'communication' 
  | 'analytics'
  | 'payments'
  | 'cloud'
  | 'productivity'

Integration Categories

Development Tools

  • GitHub, GitLab, Bitbucket
  • VS Code, IntelliJ, Sublime
  • Docker, Kubernetes
  • CI/CD platforms

Communication

  • Slack, Discord, Teams
  • Email providers
  • SMS services
  • Video conferencing

Analytics

  • Google Analytics
  • Mixpanel, Amplitude
  • Custom analytics
  • A/B testing tools

Payments

  • Stripe, PayPal
  • Cryptocurrency
  • Regional processors
  • Billing platforms

Cloud Services

  • AWS, Google Cloud, Azure
  • CDN providers
  • Database services
  • Storage solutions

Layout Variants

Grid Layout

vue
<WorkWith layout="grid" :columns="6" />

Organized grid with consistent spacing.

vue
<WorkWith layout="carousel" :autoplay="true" />

Scrolling carousel with auto-rotation.

Masonry Layout

vue
<WorkWith layout="masonry" />

Pinterest-style masonry grid.

Customization Examples

Filtered by Category

vue
<script setup lang="ts">
const selectedCategory = ref('all')

const filteredIntegrations = computed(() => {
  if (selectedCategory.value === 'all') {
    return integrations.value
  }
  return integrations.value.filter(
    integration => integration.category === selectedCategory.value
  )
})
</script>

<template>
  <WorkWith 
    :integrations="filteredIntegrations"
    @category-change="selectedCategory = $event"
  />
</template>
vue
<WorkWith 
  :integrations="integrations.filter(i => i.isPopular)"
  title="Most Popular Integrations"
/>

Premium Features

vue
<WorkWith 
  :show-premium="true"
  :integrations="allIntegrations"
  @premium-click="handlePremiumClick"
/>

Interactive Features

Category Filtering

vue
<div class="category-filters">
  <button 
    v-for="category in categories"
    :key="category"
    @click="filterByCategory(category)"
    :class="{ active: selectedCategory === category }"
  >
    {{ category }}
  </button>
</div>

Search Functionality

vue
<div class="search-box">
  <input 
    v-model="searchQuery"
    type="text"
    placeholder="Search integrations..."
    class="integration-search"
  />
</div>

Integration Details

vue
<div class="integration-card" @click="showDetails(integration)">
  <img :src="integration.logo" :alt="integration.name" />
  <h3>{{ integration.name }}</h3>
  <p>{{ integration.description }}</p>
  
  <div class="integration-actions">
    <a :href="integration.documentationUrl" target="_blank">
      View Docs
    </a>
  </div>
</div>

Animation Effects

Hover Animations

  • Logo scale effects
  • Color transitions
  • Shadow enhancements
  • Tooltip appearances

Entrance Animations

  • Staggered grid appearance
  • Category-based delays
  • Scroll-triggered effects
  • Loading skeletons

Integration Examples

Dynamic Integration Data

vue
<script setup lang="ts">
const { data: integrations } = await $fetch('/api/integrations')
const { data: categories } = await $fetch('/api/integration-categories')
</script>

<template>
  <WorkWith 
    :integrations="integrations"
    :categories="categories"
  />
</template>

With Usage Analytics

vue
<script setup lang="ts">
const trackIntegrationClick = (integrationId) => {
  gtag('event', 'integration_click', {
    event_category: 'partnerships',
    event_label: integrationId
  })
}
</script>

Real-time Status

vue
<script setup lang="ts">
const { data: integrationStatus } = await $fetch('/api/integration-status')

const integrationsWithStatus = computed(() => 
  integrations.value.map(integration => ({
    ...integration,
    status: integrationStatus.value[integration.id] || 'unknown'
  }))
)
</script>

SEO Benefits

Structured Data

vue
<script setup lang="ts">
const integrationsSchema = {
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "ClawPlate",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "description": "Integrates with 100+ popular services"
  }
}
</script>

Partnership SEO

  • Integration-specific landing pages
  • Partner backlink opportunities
  • Ecosystem keyword targeting
  • Authority building

Accessibility

Screen Reader Support

  • Alt text for all logos
  • Descriptive integration names
  • Category labels
  • Status indicators

Keyboard Navigation

  • Tab navigation through integrations
  • Enter key activation
  • Category filter navigation
  • Skip links for large lists

Performance Optimization

Image Loading

vue
<template>
  <NuxtImg
    :src="integration.logo"
    :alt="integration.name"
    format="webp"
    loading="lazy"
    class="integration-logo"
  />
</template>

Virtual Scrolling

For large integration lists:

vue
<template>
  <VirtualList 
    :items="integrations"
    :item-height="120"
    class="integrations-grid"
  >
    <template #default="{ item }">
      <IntegrationCard :integration="item" />
    </template>
  </VirtualList>
</template>

Built with love by mhdevfr