Skills

Skills are production-ready code patterns you can instantly apply to your project. Instead of writing common functionality from scratch, use battle-tested implementations for authentication, payments, APIs, and more.

How Skills Work#

When you invoke a skill, Bootspring:

  1. Loads the pattern with full implementation code
  2. Adapts to your project using context from CLAUDE.md
  3. Generates ready-to-use code with proper imports and types
Your Request │ ▼ ┌─────────────────────────────────────┐ │ Bootspring Skill │ │ ┌─────────────┐ ┌──────────────┐ │ │ │ Pattern │ │ Project │ │ │ │ Code │ +│ Context │ │ │ │ │ │ │ │ │ └─────────────┘ └──────────────┘ │ └─────────────────────────────────────┘ │ ▼ Production-Ready Code

Skill Categories#

Authentication (6 patterns)#

SkillDescriptionStack
auth/clerkClerk authenticationNext.js, Clerk
auth/nextauthNextAuth.js setupNext.js, NextAuth
auth/auth0Auth0 integrationNext.js, Auth0
auth/supabaseSupabase AuthNext.js, Supabase
auth/magic-linkPasswordless loginAny
auth/social-providersOAuth providersAny

Payments (8 patterns)#

SkillDescriptionStack
payments/stripe-checkoutStripe CheckoutNext.js, Stripe
payments/stripe-subscriptionsSubscription billingNext.js, Stripe
payments/stripe-customer-portalCustomer portalNext.js, Stripe
payments/stripe-webhooksWebhook handlingNext.js, Stripe
payments/usage-billingUsage-based billingNext.js, Stripe
payments/metered-billingMetered subscriptionsNext.js, Stripe
payments/invoice-generationPDF invoicesNext.js
payments/tax-calculationTax handlingStripe Tax

Database (7 patterns)#

SkillDescriptionStack
database/prisma-setupPrisma configurationPrisma, PostgreSQL
database/migrationsMigration patternsPrisma
database/soft-deletesSoft delete patternPrisma
database/multi-tenantMulti-tenancyPrisma
database/row-level-securityRLS patternsPostgreSQL
database/connection-poolingConnection managementPrisma
database/seedingDatabase seedingPrisma

API (6 patterns)#

SkillDescriptionStack
api/rest-crudRESTful CRUDNext.js API
api/graphqlGraphQL setupApollo, Nexus
api/trpctRPC integrationNext.js, tRPC
api/rate-limitingRate limitingNext.js
api/api-keysAPI key authNext.js
api/versioningAPI versioningNext.js

Email (5 patterns)#

SkillDescriptionStack
email/resendResend integrationReact Email
email/transactionalTransactional emailsAny provider
email/templatesEmail templatesReact Email
email/queuingEmail queuesAny
email/trackingOpen/click trackingAny

Storage (4 patterns)#

SkillDescriptionStack
storage/s3AWS S3 uploadsNext.js, AWS
storage/cloudflare-r2R2 storageCloudflare
storage/uploadthingUploadThingNext.js
storage/presigned-urlsSecure uploadsAny S3-compatible

Caching (4 patterns)#

SkillDescriptionStack
caching/redisRedis cachingRedis, Upstash
caching/in-memoryIn-memory cacheNode.js
caching/cdnCDN cachingVercel, Cloudflare
caching/incrementalISR patternsNext.js

Real-time (4 patterns)#

SkillDescriptionStack
realtime/websocketsWebSocket serverNode.js
realtime/pusherPusher integrationPusher
realtime/ablyAbly integrationAbly
realtime/sseServer-sent eventsNext.js

Search (3 patterns)#

SkillDescriptionStack
search/algoliaAlgolia searchAlgolia
search/typesenseTypesense searchTypesense
search/postgres-fulltextPostgreSQL FTSPostgreSQL

AI Integration (5 patterns)#

SkillDescriptionStack
ai/openai-chatChatGPT integrationOpenAI
ai/anthropicClaude integrationAnthropic
ai/embeddingsVector embeddingsOpenAI, Pinecone
ai/ragRAG pipelineLangChain
ai/streamingStreaming responsesVercel AI SDK

Monitoring (4 patterns)#

SkillDescriptionStack
monitoring/sentryError trackingSentry
monitoring/posthogProduct analyticsPostHog
monitoring/loggingStructured loggingPino
monitoring/health-checksHealth endpointsNext.js

Security (5 patterns)#

SkillDescriptionStack
security/csrfCSRF protectionNext.js
security/corsCORS configurationNext.js
security/content-securityCSP headersNext.js
security/input-validationInput sanitizationZod
security/encryptionData encryptionNode.js crypto

Using Skills#

Natural Language#

Simply ask your AI assistant:

Use the payments/stripe-checkout skill to add checkout to my app.
Apply the auth/clerk skill to set up authentication.
Use the database/multi-tenant skill for organization isolation.

Best Practices for Requests#

Be Specific About Requirements:

# Less effective Use the payments skill for subscriptions. # More effective Use the payments/stripe-subscriptions skill with: - Monthly and annual plans - Free trial period of 14 days - Proration on plan changes - Cancel at period end

Provide Context:

Use the database/multi-tenant skill with context: - Users belong to organizations (workspaces) - Each org has its own data isolation - Users can be members of multiple orgs - Need audit logging per tenant

Specify Output Location:

Use the api/rate-limiting skill and add it to the existing middleware in src/middleware.ts

Skill Output#

When you invoke a skill, you receive:

1. Implementation Code#

Complete, production-ready code files:

1// lib/stripe.ts 2import Stripe from 'stripe'; 3 4export const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, { 5 apiVersion: '2023-10-16', 6}); 7 8export async function createCheckoutSession(priceId: string, userId: string) { 9 return stripe.checkout.sessions.create({ 10 mode: 'subscription', 11 payment_method_types: ['card'], 12 line_items: [{ price: priceId, quantity: 1 }], 13 success_url: `${process.env.NEXT_PUBLIC_URL}/success`, 14 cancel_url: `${process.env.NEXT_PUBLIC_URL}/pricing`, 15 client_reference_id: userId, 16 }); 17}

2. Configuration Files#

Required environment variables and config:

# .env.local additions STRIPE_SECRET_KEY=sk_test_... STRIPE_WEBHOOK_SECRET=whsec_... NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_...

3. Database Changes#

Schema updates if needed:

1// prisma/schema.prisma additions 2model Subscription { 3 id String @id @default(cuid()) 4 userId String @unique 5 stripeCustomerId String @unique 6 stripeSubscriptionId String @unique 7 stripePriceId String 8 status String 9 currentPeriodEnd DateTime 10 createdAt DateTime @default(now()) 11 updatedAt DateTime @updatedAt 12 user User @relation(fields: [userId], references: [id]) 13}

4. Integration Guide#

Step-by-step instructions:

1## Integration Steps 2 31. Install dependencies: `npm install stripe` 42. Add environment variables to `.env.local` 53. Run database migration: `npx prisma db push` 64. Add webhook endpoint to Stripe dashboard 75. Import and use the checkout function

Skill Chaining#

Combine skills for complete features:

Building a SaaS Payment System#

1. auth/clerk → Set up user authentication 2. database/prisma-setup → Configure database 3. payments/stripe-checkout → Add checkout flow 4. payments/stripe-subscriptions → Handle recurring billing 5. payments/stripe-customer-portal → Let users manage subscriptions 6. payments/stripe-webhooks → Handle Stripe events 7. email/transactional → Send receipt emails

Building a Real-time App#

1. database/prisma-setup → Configure database 2. auth/clerk → User authentication 3. realtime/websockets → WebSocket server 4. caching/redis → Pub/sub messaging 5. monitoring/logging → Request logging

Customizing Skills#

Project-Specific Patterns#

Add custom patterns in bootspring.config.js:

1module.exports = { 2 skills: { 3 customPatterns: { 4 'api/my-rest-pattern': { 5 description: 'Our custom REST pattern with logging', 6 files: [ 7 { 8 path: 'lib/api/{{name}}.ts', 9 template: 'templates/api-route.ts.hbs', 10 }, 11 ], 12 }, 13 }, 14 }, 15};

Skill Preferences#

Set default technologies:

1module.exports = { 2 skills: { 3 preferences: { 4 auth: 'clerk', // Default auth provider 5 payments: 'stripe', // Default payment provider 6 email: 'resend', // Default email provider 7 database: 'prisma', // Default ORM 8 }, 9 }, 10};

Enable/Disable Skills#

Control available skills:

1module.exports = { 2 skills: { 3 // Only enable specific categories 4 enabled: ['auth', 'payments', 'database', 'api'], 5 6 // Or disable specific skills 7 // disabled: ['ai/openai-chat', 'realtime/pusher'], 8 }, 9};

Tier Access#

TierSkills Available
Free25 core patterns
ProFree + 20 advanced patterns
TeamPro + custom patterns
EnterpriseAll + unlimited custom

Free Tier Patterns#

  • All auth patterns
  • Basic payment patterns
  • Database fundamentals
  • Core API patterns
  • Email basics

Pro Tier Additions#

  • Advanced payment patterns (usage billing, metered)
  • Real-time patterns
  • AI integration patterns
  • Advanced caching
  • Full monitoring suite

Best Practices#

1. Start with Auth + Database#

Always set up authentication and database first:

1. auth/clerk (or your auth choice) 2. database/prisma-setup 3. Then add features

Some skills work best in combination:

PrimaryRelated
payments/stripe-checkoutpayments/stripe-webhooks
auth/clerkdatabase/prisma-setup
api/rest-crudapi/rate-limiting
ai/embeddingssearch/postgres-fulltext

3. Review Generated Code#

Always review skill output:

  • Check imports match your project
  • Verify environment variables
  • Test thoroughly before deploying

4. Customize for Your Project#

Modify generated code to match:

  • Your naming conventions
  • Error handling patterns
  • Logging standards

Troubleshooting#

Skill Not Found#

Check the exact skill name:

bootspring skill list

Wrong Stack Generated#

Override in config:

1module.exports = { 2 stack: { 3 frontend: ['react', 'nextjs'], 4 database: ['postgresql', 'prisma'], 5 }, 6};

Missing Dependencies#

Skills list required packages:

npm install stripe @stripe/stripe-js

Integration Issues#

Ensure your context is updated:

bootspring generate