https://github.com/profullstack/neon-builder
A builder for selling AI generated digital products on sites like JVzoo and Clickbank.
https://github.com/profullstack/neon-builder
cli digital generation nodejs products
Last synced: about 2 months ago
JSON representation
A builder for selling AI generated digital products on sites like JVzoo and Clickbank.
- Host: GitHub
- URL: https://github.com/profullstack/neon-builder
- Owner: profullstack
- Created: 2025-11-29T13:57:43.000Z (7 months ago)
- Default Branch: master
- Last Pushed: 2025-11-29T14:15:31.000Z (7 months ago)
- Last Synced: 2025-12-27T00:52:36.425Z (6 months ago)
- Topics: cli, digital, generation, nodejs, products
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/@profullstack/neon-builder
- Size: 82 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Neon Prompt Engine Builder
A production-ready Node.js CLI tool for generating digital product bundles with AI-powered content, branded PDFs, and automated packaging.
## Features
- 🚀 **Interactive CLI** - Inquirer-based prompts with sensible defaults
- 📊 **Progress Tracking** - Real-time progress bars for all operations
- 🤖 **AI Content Generation** - OpenAI-powered content creation with retry logic
- 📄 **Branded PDFs** - Puppeteer-based PDF generation with custom branding
- 📦 **Automated Packaging** - ZIP archives for each section and master bundle
- ⚙️ **Highly Configurable** - Override chunks, models, colors, and more
## Requirements
- Node.js 20 or newer
- OpenAI API key
- pnpm (recommended) or npm
## Installation
```bash
# Clone or download the project
cd neon-builder
# Install dependencies
pnpm install
```
## Usage
### Interactive Mode
Run the CLI and follow the prompts:
```bash
pnpm start
```
On first run, you'll be prompted to enter your OpenAI API key. The key is securely stored in `~/.config/neon-builder/credentials.json` for future use.
Or use the binary directly:
```bash
./src/index.js
```
### Configuration Options
The CLI will prompt you for:
| Option | Description | Default |
|--------|-------------|---------|
| Root Folder | Output directory name | `NeonPromptEngine` |
| Model | OpenAI model to use | `gpt-4` |
| Temperature | Generation creativity (0-2) | `0.7` |
| Generate PDFs | Create branded PDF files | `true` |
| Primary Color | Brand primary color (hex) | `#00FFC8` |
| Secondary Color | Brand secondary color (hex) | `#1a1a2e` |
| Logo URL | URL to brand logo | - |
| Footer Text | PDF footer text | `© Neon Prompt Engine` |
### API Key Management
Your OpenAI API key is stored securely in:
```
~/.config/neon-builder/credentials.json
```
The CLI will:
1. Check for `OPENAI_API_KEY` environment variable first
2. Fall back to stored credentials in `~/.config/neon-builder/`
3. Prompt you to enter a key if none is found
4. Optionally save the key for future use
### Environment Variables
| Variable | Description |
|----------|-------------|
| `OPENAI_API_KEY` | OpenAI API key (overrides stored credentials) |
| `NEON_MODEL` | Override default model |
| `NEON_OUTPUT_DIR` | Override output directory |
| `NEON_VERBOSE` | Enable verbose logging (`true`/`false`) |
## Sections
The builder generates content for these sections:
| Section | Default Chunks | Description |
|---------|----------------|-------------|
| Core Prompts | 12 | 300 strategic prompts |
| Premium Prompts | 14 | 700 advanced prompts |
| Automation | 5 | 75 automation workflows |
| Sales Pages | 5 | Funnel sales pages |
| Thank You Pages | 5 | Post-purchase pages |
| Launch Emails | 2 | Email sequences |
| Affiliate Toolkit | 4 | JV/affiliate materials |
| Branding Docs | 2 | Brand guidelines |
| JVZoo Docs | 3 | Marketplace listings |
| READMEs | 3 | Documentation files |
## Output Structure
```
NeonPromptEngine/
├── core_prompts/
│ ├── chunk_01.txt
│ ├── chunk_01.pdf
│ └── ...
├── premium_prompts/
│ └── ...
├── core_prompts.zip
├── premium_prompts.zip
└── NeonPromptEngine_complete.zip
```
## Development
### Project Structure
```
neon-builder/
├── src/
│ ├── index.js # Main CLI entry point
│ ├── config/
│ │ ├── sections.js # Section definitions
│ │ ├── defaults.js # Default configuration
│ │ └── index.js
│ ├── generators/
│ │ ├── content-generator.js # OpenAI integration
│ │ ├── pdf-generator.js # Puppeteer PDF creation
│ │ ├── zip-packager.js # ZIP archive creation
│ │ └── index.js
│ ├── prompts/
│ │ ├── cli-prompts.js # Inquirer prompts
│ │ └── index.js
│ └── utils/
│ ├── progress.js # Progress bars & logging
│ ├── file-system.js # File operations
│ └── index.js
├── test/
│ ├── config/
│ ├── generators/
│ └── utils/
├── package.json
├── vitest.config.js
├── eslint.config.js
└── .prettierrc
```
### Running Tests
```bash
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test:coverage
```
### Linting & Formatting
```bash
# Run ESLint
pnpm lint
# Fix ESLint issues
pnpm lint:fix
# Check formatting
pnpm format:check
# Format code
pnpm format
```
## API Reference
### Content Generator
```javascript
import { createOpenAIClient, generateChunk, generateSection } from './generators/content-generator.js';
// Create client
const client = createOpenAIClient(process.env.OPENAI_API_KEY);
// Generate a single chunk
const content = await generateChunk(client, {
model: 'gpt-4',
temperature: 0.7,
section: sectionConfig,
chunkIndex: 0,
totalChunks: 5,
branding: brandingConfig,
});
```
### PDF Generator
```javascript
import { generateBrandedPdf, generateSectionPdfs } from './generators/pdf-generator.js';
// Generate a single PDF
await generateBrandedPdf({
content: 'Your content here',
outputPath: './output/document.pdf',
title: 'Document Title',
sectionLabel: 'Section Name',
chunkNumber: 1,
totalChunks: 5,
branding: brandingConfig,
});
```
### ZIP Packager
```javascript
import { createSectionZip, createMasterZip } from './generators/zip-packager.js';
// Create section ZIP
const zipPath = await createSectionZip({
sectionId: 'core_prompts',
sectionDir: './output/core_prompts',
outputDir: './output',
});
// Create master ZIP
await createMasterZip(sectionZipPaths, './output/master.zip');
```
## Dependencies
### Production
| Package | Purpose |
|---------|---------|
| `openai` | OpenAI API client |
| `inquirer` | Interactive CLI prompts |
| `cli-progress` | Progress bar display |
| `puppeteer` | PDF generation |
| `jszip` | ZIP archive creation |
| `fs-extra` | Enhanced file operations |
### Development
| Package | Purpose |
|---------|---------|
| `vitest` | Test framework |
| `@vitest/coverage-v8` | Code coverage |
| `eslint` | Code linting |
| `prettier` | Code formatting |
## License
MIT
## Contributing
1. Fork the repository
2. Create a feature branch
3. Write tests for new functionality
4. Implement the feature
5. Run tests and linting
6. Submit a pull request
## Roadmap
- [ ] HTML sales page templates
- [ ] React/Next.js PDF layouts
- [ ] Image generation for banners
- [ ] License key generator
- [ ] S3 upload integration
- [ ] Resume generation on API failure
- [ ] Caching system
- [ ] GUI dashboard version