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