Skip to content

Instantly share code, notes, and snippets.

@wjkennedy
Last active July 30, 2025 15:19
Show Gist options
  • Select an option

  • Save wjkennedy/f5cf476dde0cc762c53d9c9436de92f9 to your computer and use it in GitHub Desktop.

Select an option

Save wjkennedy/f5cf476dde0cc762c53d9c9436de92f9 to your computer and use it in GitHub Desktop.
Brainstorm your next direct marketing product
import React, { useState } from 'react';
const products = ["Coffee mugs", "Socks", "Blankets", "Water bottles", "Pillows", "Pens", "Notebooks", "Sunglasses", "Hats", "Belts", "Flashlights", "Soap bars", "Lip balm", "Candles", "Umbrellas", "Towels", "Backpacks", "T-shirts", "Hoodies", "Shoes", "Gloves", "Toothpaste", "Laundry detergent", "Keychains", "Phone cases", "Chargers", "Headphones", "Lunchboxes", "Tote bags", "Thermos bottles", "Sticky notes", "Pet collars", "Picture frames", "Cutting boards", "Watches", "Aprons", "Scarves", "Calendars", "Wallets", "Coasters", "Mouse pads", "Door mats", "Shower curtains", "Dish soap", "Magnets", "Yoga mats", "Luggage tags", "Nail clippers", "Hand sanitizer", "Bandages", "Flash drives", "Journals", "Tea kettles", "Measuring cups", "Ice trays", "Spray bottles", "Oven mitts", "Travel pillows", "Reading lamps", "Sleeping masks", "Magnifying glasses", "Staplers", "Tape dispensers", "Paintbrushes", "USB cables", "Alarm clocks", "Scissors", "Tweezers", "Gardening gloves", "Bird feeders", "Frisbees", "Bottle openers", "Camping chairs", "Cooking utensils", "Egg timers", "Paper clips", "Baking trays", "Safety pins", "Extension cords", "Power strips", "Earplugs", "Lunch bags", "Shoe laces", "Dish towels", "Car air fresheners", "Toothbrushes", "Shaving cream", "Corkscrews", "Sleeping bags", "Rubber bands", "Shoe insoles", "Dustpans", "Fly swatters", "Potato peelers", "Umbrella stands", "Picture hooks", "Can openers", "Mouse traps", "Laundry baskets", "Bicycle bells"];
const niches = ["Amateur astronomers", "Birdwatching retirees", "Craft beer enthusiasts", "Urban rooftop gardeners", "Digital nomads", "Vintage vinyl collectors", "Marathon runners", "Organic mushroom foragers", "Professional sommeliers", "Survivalist preppers", "Historical reenactors", "Gluten-free foodies", "Competitive barbecue pitmasters", "Chess tournament players", "CrossFit gym owners", "DIY soap makers", "Home kombucha brewers", "Skateboarding photographers", "Bee keepers", "Amateur meteorologists", "Freelance graphic designers", "Paleo diet athletes", "Drone hobbyists", "Cat foster parents", "Aquascaping aquarium hobbyists", "Roller derby players", "Twitch streamers", "Bicycle commuters", "3D printing enthusiasts", "Vintage car restorers", "Home baristas", "Rock climbers", "Alpaca farmers", "Professional podcasters", "Wilderness kayak campers", "Sudoku puzzle experts", "Urban sketchers", "Minimalist travelers", "Antique book collectors", "Genealogy researchers", "Cigar aficionados", "Pickleball league players", "Amateur radio operators (HAM)", "Tea ceremony practitioners", "Horse show competitors", "Cross-stitch hobbyists", "Snowshoe hiking guides", "Robotics hobbyists", "Vegan dessert chefs", "Fantasy football managers"];
const App = () => {
const [combinations, setCombinations] = useState([]);
const generateCombinations = () => {
const results = [];
for (let i = 0; i < 10; i++) {
const product = products[Math.floor(Math.random() * products.length)];
const niche = niches[Math.floor(Math.random() * niches.length)];
results.push(`${product} for ${niche}`);
}
setCombinations(results);
};
return (
<div className="min-h-screen bg-gray-100 flex flex-col items-center justify-center p-4">
<h1 className="text-3xl font-bold mb-4">Niche Product Slot Machine</h1>
<button
className="mb-4 bg-blue-600 hover:bg-blue-700 text-white py-2 px-4 rounded shadow"
onClick={generateCombinations}
>
Pull Arm
</button>
<script src="https://gist.github.com/wjkennedy/f5cf476dde0cc762c53d9c9436de92f9.js"></script><ul className="space-y-2 text-lg">
{combinations.map((combo, index) => (
<li key={index} className="bg-white shadow rounded px-4 py-2 w-full text-center">
{combo}
</li>
))}
</ul>
</div>
);
};
export default App;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment