Back to Work
Shopify App2026

Scribe

RemixClaudeShopify AppStreamingPolaris

An embedded Shopify app that gives merchants an AI content engine for product descriptions, SEO optimization, and customer communication — all within the Shopify admin.

The Challenge

Merchants spend hours writing product descriptions, optimizing SEO metadata, and crafting customer emails. Existing AI writing tools require context-switching out of Shopify and don't understand the merchant's catalog, brand voice, or customer base.

The Solution

Built a Remix-based embedded Shopify app that deeply integrates with the admin. Scribe reads product data, collection context, and store analytics to generate contextually aware content with streaming responses powered by Claude.

Design
Code
Result
app/routes/api.generate.tsxtypescript
  1export async function action({ request }: ActionFunctionArgs) {  2  const { admin, session } = await authenticate.admin(request)  3  const { productId, prompt, type } = await request.json()  4  5  // Fetch product context from Shopify  6  const { product } = await admin.graphql(`  7    query GetProduct($id: ID!) {  8      product(id: $id) {  9        title 10        vendor 11        productType 12        tags 13        variants(first: 10) { 14          nodes { title price } 15        } 16      } 17    } 18  `, { variables: { id: productId } }) 19 20  const stream = await anthropic.messages.stream({ 21    model: 'claude-sonnet-4-20250514', 22    max_tokens: 1024, 23    system: buildMerchantContext(session.shop, product), 24    messages: [{ role: 'user', content: prompt }], 25  }) 26 27  return new Response(stream.toReadableStream(), { 28    headers: { 29      'Content-Type': 'text/event-stream', 30      'Cache-Control': 'no-cache', 31    }, 32  }) 33} 34
Scroll to explore
Tech Stack
RemixShopify App BridgePolarisClaude APIPrismaPostgreSQLRedisStreaming SSE

Interested in similar work?

Let's discuss how I can help bring your Shopify project to life.