npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

prompts-data-productstage

v1.0.0

Published

Professional AI product photography prompts for various product categories. Curated templates for e-commerce, Etsy, Shopify, and online stores. Learn more at https://productstage.ai

Readme

@productstage/prompts-data

Professional AI product photography prompts library for e-commerce and online stores. This package contains curated prompt templates designed for various product categories, optimized for AI image generation platforms like Midjourney, Stable Diffusion, and DALL-E.

Features

  • 29 Product Categories: From jewelry and watches to furniture and handmade items
  • 100+ Prompt Templates: Carefully crafted professional photography prompts
  • Flexible Querying: Filter by category, variant, keywords, and more
  • TypeScript Support: Full type definitions included
  • Easy Integration: Simple API for quick implementation

Installation

npm install @productstage/prompts-data

Usage

Basic Usage

import { 
  getAllCategories, 
  getPromptsWithCategories, 
  formatPrompt 
} from '@productstage/prompts-data';

// Get all categories
const categories = getAllCategories();
console.log(`Available categories: ${categories.length}`);

// Get prompts with category information
const prompts = getPromptsWithCategories({ activeOnly: true });
console.log(`Total active prompts: ${prompts.length}`);

// Format a prompt with category names
const formattedPrompt = formatPrompt(prompts[0]);
console.log(formattedPrompt);

Filter by Category

import { getPromptsByCategoryId } from '@productstage/prompts-data';

// Get prompts for jewelry (category ID 11)
const jewelryPrompts = getPromptsByCategoryId(11);
jewelryPrompts.forEach(prompt => {
  console.log(`${prompt.variant}: ${prompt.template}`);
});

Advanced Querying

import { getPromptsWithCategories } from '@productstage/prompts-data';

// Get all hero prompts for jewelry
const heroPrompts = getPromptsWithCategories({
  mainCategory: 'jewelry',
  variant: 'Hero',
  activeOnly: true
});

// Get prompts for specific subcategory
const necklacePrompts = getPromptsWithCategories({
  subCategory: 'necklace',
  activeOnly: true
});

// Find categories by keyword
import { findCategoriesByKeyword } from '@productstage/prompts-data';
const handmadeCategories = findCategoriesByKeyword('handmade');

Random Prompts

import { getRandomPrompts, getRandomPromptsByCategory } from '@productstage/prompts-data';

// Get 5 random prompts
const randomPrompts = getRandomPrompts(5);

// Get 3 random prompts for watches
const randomWatchPrompts = getRandomPromptsByCategory(8, 3);

Custom Formatting

import { formatPromptWithNames } from '@productstage/prompts-data';

// Use a prompt template with custom product names
const prompt = {
  id: 1,
  productCategoryId: 7,
  template: '{main_category} {sub_category} on a marble surface...',
  variant: 'Custom',
  isActive: true
};

const customPrompt = formatPromptWithNames(
  prompt, 
  'luxury watch', 
  'gold automatic'
);
console.log(customPrompt);
// Output: "luxury watch gold automatic on a marble surface..."

API Reference

Functions

getAllCategories(): ProductCategory[]

Returns all available product categories.

getCategoryById(id: number): ProductCategory | undefined

Returns a category by its ID.

findCategoriesByMainCategory(mainCategory: string): ProductCategory[]

Finds categories by main category name (case-insensitive).

findCategoriesByKeyword(keyword: string): ProductCategory[]

Finds categories matching a keyword in main category, subcategory, or keywords array.

getAllPrompts(): ProductPrompt[]

Returns all prompt templates.

getPromptsWithCategories(options?: PromptQueryOptions): PromptWithCategory[]

Returns prompts with category information, optionally filtered.

Options:

  • categoryId?: number - Filter by category ID
  • mainCategory?: string - Filter by main category name
  • subCategory?: string - Filter by subcategory name
  • variant?: string - Filter by variant name (partial match)
  • activeOnly?: boolean - Return only active prompts
  • keywords?: string[] - Filter by category keywords

getPromptsByCategoryId(categoryId: number, activeOnly?: boolean): ProductPrompt[]

Returns all prompts for a specific category.

getRandomPrompts(count: number, activeOnly?: boolean): ProductPrompt[]

Returns random prompts from the collection.

getRandomPromptsByCategory(categoryId: number, count: number, activeOnly?: boolean): ProductPrompt[]

Returns random prompts for a specific category.

formatPrompt(prompt: ProductPrompt): string

Formats a prompt template by replacing {main_category} and {sub_category} placeholders with actual category names.

formatPromptWithNames(prompt: ProductPrompt, mainCategory: string, subCategory?: string): string

Formats a prompt template with custom category names.

Data Structure

ProductCategory

interface ProductCategory {
  id: number;
  mainCategory: string;
  subCategory: string | null;
  keywords: string[];
}

ProductPrompt

interface ProductPrompt {
  id: number;
  productCategoryId: number;
  template: string;
  variant: string;
  isActive: boolean;
}

PromptWithCategory

interface PromptWithCategory extends ProductPrompt {
  category: ProductCategory;
}

Supported Categories

The package includes prompts for the following product categories:

  • Bags: Shoulder bags, handbags
  • Furniture: Lounge chairs, home furniture
  • Apparel: Hats, clothing
  • Accessories: Fashion accessories
  • Shoes: Hiking boots, footwear
  • Watches: Bracelet watches, timepieces
  • Jewelry: Necklaces, bracelets, rings, earrings
  • Handmade: Ceramics, textiles, leather goods, woodwork
  • Household: Cleaning brushes, home items
  • Beauty Tools: Face mask bowls, cosmetic tools
  • Kitchenware: Cutting boards, cookware
  • Home Decor: Decorative bowls, vases
  • Lighting: Wall sconces, fixtures
  • Home Organization: Bookends, storage
  • Headwear: Caps, hats
  • Clothing: Men's shirts
  • Toys: Wooden models, playthings
  • Home Appliances: Humidifiers, electronics
  • Electronics: Headphones, tech accessories

Use Cases

  • E-commerce Product Photography: Generate professional product images for online stores
  • Etsy Sellers: Create lifestyle shots for handmade items
  • Shopify Store Owners: Produce consistent product imagery
  • Amazon Sellers: Generate compliant product photos
  • Digital Marketers: Create promotional product content
  • Design Agencies: Quick prototyping for product photography concepts

Examples

Generate Product Images with AI

import { getPromptsByCategoryId, formatPrompt } from '@productstage/prompts-data';

// Get prompts for necklace
const necklacePrompts = getPromptsByCategoryId(11);
const selectedPrompt = necklacePrompts[0];

// Format and use with AI image generation
const aiPrompt = formatPrompt(selectedPrompt);
console.log(aiPrompt);

// Now use aiPrompt with your preferred AI image generation API
// e.g., OpenAI DALL-E, Stability AI, Midjourney, etc.

Build a Product Photography Generator

import { 
  getAllCategories, 
  getRandomPromptsByCategory 
} from '@productstage/prompts-data';

function generateProductImage(categoryName: string) {
  const categories = getAllCategories();
  const category = categories.find(c => 
    c.mainCategory.toLowerCase() === categoryName.toLowerCase()
  );
  
  if (!category) {
    throw new Error('Category not found');
  }
  
  const prompt = getRandomPromptsByCategory(category.id, 1)[0];
  return prompt.template
    .replace(/{main_category}/g, category.mainCategory)
    .replace(/{sub_category}/g, category.subCategory || '');
}

// Usage
const imagePrompt = generateProductImage('jewelry');

License

MIT

Author

ProductStage.ai - Professional AI Product Photography Tools

Links

Contributing

We welcome contributions! If you have improvements or new prompt templates, please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Support

For issues, questions, or suggestions, please open an issue on GitHub or visit ProductStage.ai.