Offline passive income product ideas for any niche β no APIs, no keys, no internet required.
Generate Gumroad course ideas, Etsy product concepts, and AI prompts in seconds. 100% deterministic. 100% offline. Free to use.
π 100% Offline β Zero network calls, no cloud dependencies, works anywhere
π No API Keys β No authentication, no signup, no accounts required
π² Deterministic β Same seed always produces identical results (perfect for workflows)
π Scored Ideas β Each idea rated on ease, demand, differentiation, and time-to-ship
π¦ Dual Output β Markdown for humans, JSON for automation
π― Three Income Streams β Gumroad courses, Etsy products, AI prompts (ChatGPT, Claude, etc.)
Try it now (requires Node.js 18+):
git clone https://github.com/yourusername/passive-gen.git
cd passive-gen
npm install && npm run build
node dist/cli.js "your niche here" --out ./ideas --seed 42 --count 5
See output in ./ideas/ folder:
gumroad_ideas.mdβ Course ideas with pricing suggestionsetsy_ideas.mdβ Product ideas with print-on-demand notesprompts.mdβ Prompts ready for ChatGPT/Claudebundle.jsonβ All data in JSON formatREADME.mdβ Market analysis and tips
View example outputs: See /demo-output folder.
# Clone the repository
git clone https://github.com/yourusername/passive-gen.git
cd passive-gen
# Install dependencies
npm install
# Build the project
npm run build
# (Optional) Install globally for direct access
npm install -g .
This project is free and open-source on GitHub.
If you prefer a pre-built, ready-to-use Windows executable with no setup required:
π Buy on Gumroad β Includes compiled binary, quick-start guide, and priority support
Source (GitHub): https://github.com/CrazhHolmes/passive-gen
Open-source users: Clone and build locally (it’s free).
node dist/cli.js "your niche here" --out ./output
# Generate 10 ideas for digital marketing
node dist/cli.js "digital marketing" --out ./ideas
# Generate 20 ideas with a specific seed (reproducible)
node dist/cli.js "dog training" --out ./ideas --seed 42 --count 20
# Export all template categories
node dist/cli.js "blockchain" --templates --out ./templates
USAGE:
passive-gen [OPTIONS]
ARGUMENTS:
The niche or market to generate ideas for
OPTIONS:
--out Output directory (required)
--count Number of ideas per category (default: 10, max: 100)
--seed Seed for deterministic generation (optional)
--templates Export all template categories
--help Show this help message
--version Show version number
After running the command, you’ll get:
- gumroad_ideas.md β Gumroad course ideas with pricing notes
- etsy_ideas.md β Etsy product ideas with market tips
- prompts.md β AI prompts for ChatGPT, Claude, etc.
- bundle.json β All data in JSON format with metadata
- README.md β Generated guide with niche analysis
# Digital Marketing Ideas
## Gumroad Course Ideas
### Idea 1: [Generated Title]
**Why it will sell:** [Reasoning based on market demand]
**What's included:** [Course structure details]
**Who's it for:** [Target audience description]
**Scores**
| Dimension | Score | Notes |
|-----------|-------|-------|
| Ease | 8/10 | Can be created in 2-3 weeks |
| Demand | 9/10 | High market interest |
| Differentiation | 7/10 | Moderate competition |
| Time to Ship | 6/10 | 4-6 week timeline |
---
Every run includes metadata for perfect reproducibility:
{
"niche": "digital marketing",
"seed": 42,
"count": 10,
"generatedAt": "2026-01-21T14:30:00Z",
"gumroadIdeas": [...],
"etsyIdeas": [...],
"prompts": [...]
}
To regenerate identical ideas: Use the same --seed value.
# Run dev mode (without compilation)
npm run dev "test niche" --out ./output
# Run tests
npm test
# Watch mode for tests
npm test:watch
# Run tests with UI
npm run test:ui
# Lint and fix code
npm run lint
passive-gen/
βββ src/
β βββ cli.ts Command-line interface
β βββ generator.ts Core generation logic with scoring
β βββ writer.ts File output and markdown formatting
β βββ random.ts Deterministic RNG (seeded)
βββ tests/
β βββ generator.test.ts Comprehensive test suite (25+ tests)
βββ dist/ Compiled JavaScript output
βββ package.json Project metadata and scripts
βββ tsconfig.json TypeScript configuration
βββ vitest.config.ts Test runner configuration
βββ README.md This file
- Seeded RNG β Uses Linear Congruential Generator (LCG) for deterministic randomness
- Template System β 30 templates each for Gumroad, Etsy, and Prompts
- Niche Injection β Substitutes your niche into relevant templates
- Scoring β Automatically scores each idea on four dimensions (1-10)
- Output Generation β Formats as Markdown, JSON, and readable guide
- Zero-Cost β No paid APIs, no cloud services, no authentication
- Offline-Only β All computation happens locally on your machine
- Deterministic β Same inputs = Same outputs (perfect for workflows)
- Minimal Dependencies β Only TypeScript, Node.js utilities, and Vitest for testing
# Run full test suite (25+ tests)
npm test
# Expected output:
# β Generator Tests (13 tests)
# β File Writing Tests (5 tests)
# β Validation Tests (3 tests)
# β Output Validation Tests (4 tests)
# PASS tests/generator.test.ts (123ms)
All tests verify:
- Deterministic generation with seeds
- Scoring ranges (1-10)
- File creation and content
- Niche inclusion
- Edge cases (special characters, long names, count limits)
- Guard tests for template escape sequences
The CLI hasn’t been installed globally. Use:
node dist/cli.js "your niche" --out ./output
Or install globally:
The CLI creates it automatically. If you get an error:
mkdir output
node dist/cli.js "niche" --out ./output
This shouldn’t happen. If you see {{ or }} tokens, it’s a bug. Report with:
If tests fail, the issue is confirmed.
Verify you have Node.js 18+ installed:
node --version
npm run build
MIT β See LICENSE file for details. Free for personal and commercial use.
β Offline passive income idea generator with:
- 3 output categories (Gumroad, Etsy, AI Prompts)
- Deterministic seeded randomness for reproducibility
- Scoring system (ease, demand, differentiation, time-to-ship)
- Markdown + JSON dual output
- 25+ comprehensive tests
- Zero external dependencies
- Windows, macOS, Linux compatible
Status: Production ready. No breaking changes expected.
Possible future additions (not in v1.0):
- Database of market research data
- Category-specific scoring adjustments
- Custom template support
- Web UI dashboard
- API endpoint
These would require external resources and violate the zero-cost constraint, so they’re out of scope.
Contributions welcome! This is a community project. Areas for improvement:
- Additional template categories (Notion, Substack, etc.)
- Improved scoring algorithms based on market data
- Better niche detection and segmentation
- Performance optimizations
Note: Keep the zero-cost constraint. No external APIs or network calls.
- GitHub Issues β Report bugs or suggest features
- Questions β Check existing issues first
- Gumroad β Private support for paid version
Built with: Node.js, TypeScript, Vitest
Tested on: Windows 10/11, macOS, Linux
Status: Production ready, actively maintained
Last updated: January 2026
