DANIELLE ANNA MOROSDiscovered
<p>a daily ai word game - fill in the blanks to create unique AI images + "race to create" an image in 60s or less to win</p>

Discover ai products found across trusted public sources.
<p>a daily ai word game - fill in the blanks to create unique AI images + "race to create" an image in 60s or less to win</p>

<p>Design the perfect black cocktail dress with no design experience needed. Utilize AI technology to customize elegant, fashionable black dresses for any occasion, from classic little black dresses to modern cuts.</p>

<p>Search, browse, filter, bookmark, and review helpful AI apps and tools for your business.</p>

<p>Blix is developing an AI-powered text analytics software to quantify and extract insights from textual customer feedback</p>

<p>Stop picking between AI models. Start getting better answers. Bivy automatically picks the best AI for every prompt, all in one subscription.</p>

<p>Aviy is an AI-powered invoicing platform that helps freelancers, small businesses, and growing teams create professional invoices, quotes, estimates, purchase orders, and receipts in seconds using simple prompts. Describe what you need, and Aviy generates polished, ready-to-send documents instantly. With online payments, automated reminders, recurring billing, client management, and powerful business insights, Aviy eliminates admin work so you can get paid faster and focus on growing your business. We believe invoicing should be as simple as sending a message, not a process that requires setup, filling of endless forms, training, or accounting knowledge. Invoice your customers in 1 sentence in 1 second. Powered by AI.</p>

<p>Autoppt: Best AI PowerPoint Generator & PPT maker AI with powerful Slides AI. Fast, seamless AI presentation creation. Try for free.</p>

<p>Curated AI game assets generator tools that create assets you'd actually want to use in your projects. AssetWorlds exists to help game developers find AI game assets generator tools that produce truly usable game assets. We're tired of tools that create beautiful but impractical content - everything listed here passes our "No Slop" standard.</p>

<p>"Convert text to 3D or transform images into detailed 3D models effortlessly, no design skills needed. Perfect for creators, designers, and developers looking for quick, high-quality 3D models. Our AI-powered Text to 3D generator lets you create stunning 3D models from simple text prompts in just a minute. No design skills needed ust describe it, and watch it come to life! Bevelify enables artists, game developers, and creators to realize their ideas with tools that create 3D models in just seconds."</p>

<h3>Vibe Compiler (vibec)</h3> <p>A self-compiling tool that transforms prompt stacks into code and tests using LLM generation.</p> <h3>Overview</h3> <p><code>vibec</code> is a unique compiler that processes markdown-based prompt stacks to generate code, tests, and documentation. It can compile itself through a bootstrap process, evolving its own implementation (<code>bin/vibec.js</code>) across numbered stages. The tool supports both static (<code>.md</code>) and dynamic (<code>.js</code>) plugins, maintains staged outputs in <code>output/stacks/</code> for Git history, and aggregates the latest runtime version in <code>output/current/</code> using a "Last-Wins" merge strategy.</p> <h3>Project Structure</h3> <pre><code>vibec/ ├── bin/ # Initial implementation │ ├── vibec.js # Core compiler script │ └── test.sh # Test runner ├── bootstrap/ # Bootstrap documentation ├── stacks/ # Prompt stacks │ ├── core/ # Core functionality │ │ ├── 001_add_logging.md │ │ ├── 002_add_plugins.md │ │ ├── 003_add_cli.md │ │ ├── 004_add_config.md │ │ ├── 005_add_iterations.md │ │ ├── 006_add_dynamic_plugins.md │ │ └── plugins/ # Core plugins │ └── tests/ # Test generation ├── output/ # Generated artifacts │ ├── bootstrap/ # Bootstrap outputs │ │ ├── bin/ # Bootstrap compiler │ │ │ └── vibec.js │ │ ├── bootstrap.js # Bootstrap script │ │ └── test.sh # Bootstrap test script │ ├── current/ # Latest merged runtime version │ │ ├── bin/ # Current compiler │ │ │ └── vibec.js │ │ ├── bootstrap.js # Current bootstrap script │ │ ├── test.js # Current test suite │ │ └── test.sh # Current test script │ └── stacks/ # Staged stack outputs │ ├── core/ # Core stack stages │ │ ├── 001_add_logging/ │ │ │ └── bin/ │ │ │ └── vibec.js │ │ ├── 002_add_plugins/ │ │ │ └── bin/ │ │ │ └── vibec.js │ │ ├── 003_add_cli/ │ │ │ └── bin/ │ │ │ └── vibec.js │ │ ├── 004_add_config/ │ │ │ └── bin/ │ │ │ └── vibec.js │ │ ├── 005_add_iterations/ │ │ │ └── bin/ │ │ │ └── vibec.js │ │ ├── 006_add_dynamic_plugins/ │ │ │ └── bin/ │ │ │ └── vibec.js │ └── tests/ # Test stack stages │ ├── 001_basic_tests/ │ │ ├── test.js │ │ └── test.sh │ ├── 002_feature_tests/ │ │ └── test.js │ ├── 003_cli_tests/ │ │ └── test.js │ └── 004_config_tests/ │ └── test.js ├── vibec.json # Configuration file └── package.json # Node dependencies </code></pre> <h3>Architecture</h3> <p><code>vibec</code> employs a progressive bootstrapping process:</p> <ol> <li>Begins with the initial <code>bin/vibec.js</code> implementation</li> <li>Processes numbered stages sequentially (001, 002, etc.)</li> <li>Updates <code>vibec.js</code> when generated in a stage, using the new version for subsequent stages</li> <li>Creates a self-improving cycle where the compiler evolves during compilation</li> </ol> <h3>Getting Started</h3> <h3>Installation</h3> <p>Install globally:</p> <pre>npm install -g vibec</pre> <p>Or use via npx:</p> <pre>npx vibec --version</pre> <p>Set your LLM API key:</p> <pre>export VIBEC_API_KEY=your_api_key_here</pre> <h3>Usage</h3> <p>Run with custom options:</p> <pre>npx vibec --stacks=core,tests --test-cmd="npm test" --retries=2 --iterations=3 --output=output</pre> <p>CLI options:</p> <ul> <li><code>--workdir=<dir></code>: Working directory (default: <code>.</code>)</li> <li><code>--stacks=<stack1,stack2,...></code>: Stacks to process (default: <code>core</code>)</li> <li><code>--dry-run</code>: Simulate without modifications (default: <code>false</code>)</li> <li><code>--start=<number></code>: Start with specific stage number (default: none)</li> <li><code>--end=<number></code>: End with specific stage number (default: none)</li> <li><code>--api-url=<url></code>: LLM API endpoint (default: <code>https://openrouter.ai/api/v1</code>)</li> <li><code>--api-model=<model></code>: LLM model (default: <code>anthropic/claude-3.7-sonnet</code>)</li> <li><code>--test-cmd=<command></code>: Test command to run (default: none)</li> <li><code>--retries=<number></code>: Retry attempts for API calls (≥ 0, default: <code>0</code>)</li> <li><code>--iterations=<number></code>: Number of times to retry a stage on test failure (> 0, default: <code>2</code>)</li> <li><code>--plugin-timeout=<ms></code>: Timeout for JS plugins in milliseconds (default: <code>5000</code>)</li> <li><code>--output=<dir></code>: Output directory (default: <code>output</code>)</li> <li><code>--help</code>: Display usage information</li> <li><code>--version</code>: Show version (e.g., <code>vibec v1.0.0</code>)</li> </ul> <h3>Configuration</h3> <p>Configure via <code>vibec.json</code>:</p> <pre>{ "workdir": ".", "stacks": ["core", "tests"], "dryRun": false, "start": null, "end": null, "testCmd": "npm test", "retries": 2, "iterations": 3, "pluginTimeout": 5000, "apiUrl": "https://openrouter.ai/api/v1", "apiModel": "anthropic/claude-3.7-sonnet", "output": "output" }</pre> <p>Option precedence: CLI > Environment Variables > <code>vibec.json</code> > Defaults</p> <p>Validation:</p> <ul> <li><code>retries</code>: Must be non-negative (≥ 0)</li> <li><code>iterations</code>: Must be positive (> 0)</li> <li><code>pluginTimeout</code>: Must be positive (> 0)</li> <li>Malformed JSON in <code>vibec.json</code> triggers an error log and falls back to defaults</li> </ul> <h3>Environment Variables</h3> <ul> <li><code>VIBEC_WORKDIR</code>: Working directory path.</li> <li><code>VIBEC_STACKS</code>: Comma-separated stacks (e.g., <code>core,tests</code>)</li> <li><code>VIBEC_DRY_RUN</code>: <code>true</code>/<code>false</code>.</li> <li><code>VIBEC_START</code>: Numeric stage value.</li> <li><code>VIBEC_END</code>: Numeric stage value.</li> <li><code>VIBEC_OUTPUT</code>: Output directory.</li> <li><code>VIBEC_TEST_CMD</code>: Test command</li> <li><code>VIBEC_RETRIES</code>: Retry count for API calls</li> <li><code>VIBEC_ITERATIONS</code>: Number of times to retry a stage on test failure</li> <li><code>VIBEC_PLUGIN_TIMEOUT</code>: Plugin timeout (ms)</li> <li><code>VIBEC_API_URL</code>: LLM API endpoint</li> <li><code>VIBEC_API_KEY</code>: LLM API key (recommended over config)</li> <li><code>VIBEC_API_MODEL</code>: LLM model</li> <li><code>VIBEC_DEBUG</code>: Enable debug logging (<code>1</code> to enable)</li> </ul> <h3>LLM Integration</h3> <p>Compatible with OpenAI-style APIs. Configure via <code>VIBEC_API_URL</code> and <code>VIBEC_API_KEY</code>.</p> <h3>Prompt Structure</h3> <p>Prompts use markdown:</p> <pre># Component Name Description of the generation task. ## Context: file1.js, file2.js ## Output: path/to/output.js</pre> <ul> <li><code>## Context:</code>: Reference files for context</li> <li><code>## Output:</code>: Specify output file paths (multiple allowed)</li> </ul> <h3>Plugin System</h3> <h3>Static Plugins (<code>.md</code>)</h3> <ul> <li>Stored in <code>stacks/<stack>/plugins/</code></li> <li>Appended to prompts in alphabetical order</li> <li>Used for adding reusable context or constraints to prompts</li> </ul> <h3>Dynamic Plugins (<code>.js</code>)</h3> <ul> <li>JavaScript modules in <code>stacks/<stack>/plugins/</code></li> <li>Executed as async functions in alphabetical order with configurable timeout</li> <li>Receive a context object with access to: <pre>{ config, // vibec.json contents stack, // Current stack name promptNumber, // Current prompt number promptContent, // Content of the current prompt workingDir, // Path to output/current testCmd, // Test command testResult // Test execution result }</pre> </li> <li>Plugin errors are logged and skipped without halting execution</li> </ul> <h3>Iteration System</h3> <p>The iteration system allows automatic refinement of generated code:</p> <ol> <li>When a test fails, the test output is captured</li> <li>The prompt is re-run with test output included</li> <li>Process repeats up to <code>iterations</code> times (default: 2)</li> <li>If all iterations fail, the process exits with an error</li> </ol> <p>This enables self-healing code generation that can fix test failures automatically.</p> <h3>Development</h3> <h3>Adding Prompts</h3> <ol> <li>Create a new numbered file (e.g., <code>stacks/core/005_new_feature.md</code>)</li> <li>Use <code>NNN_name.md</code> naming convention</li> <li>Specify outputs with <code>## Output:</code></li> </ol> <h3>Testing</h3> <p>Tests in <code>stacks/tests/</code> generate:</p> <ul> <li><code>test.sh</code>: Validates <code>vibec.js</code> and runs <code>test.js</code></li> <li><code>test.js</code>: Uses <code>tape</code> for unit tests (Node builtins only)</li> </ul> <h3>Tutorial: Building a Simple Pong Game</h3> <p>This tutorial is based on a fully-functional example project available at: <a href="https://github.com/Strawberry-Computer/vibe-pong" target="_blank" rel="noopener">github.com/Strawberry-Computer/vibe-pong</a></p> <h3>1. Initialize Project</h3> <pre>mkdir pong-game && cd pong-game mkdir -p stacks/core/plugins output</pre> <h3>2. Set Up Coding Style Plugin</h3> <p>Create a coding style plugin that forces the LLM to mark its reasoning in the generated code. This clever trick helps us trace which parts of the prompt produced specific code:</p> <pre>- Make it clear why any given code is written by adding a comment with relevant prompt snippet, like: ``` // PROMPT: <relevant prompt snippet> ``` - Don't use any other comments.</pre> <h3>3. Define Initial Prompt</h3> <pre># Pong Game Initial Setup Generate a simple Pong game using HTML, CSS, and JavaScript: - Use `<canvas width="800" height="400" id="pongCanvas">` - Draw a white paddle (10px wide, 100px high) at the left side of the canvas, movable up/down with arrow keys. - Draw a white ball (10px radius) starting at canvas center, moving diagonally with constant speed. - Bounce the ball off the top and side walls; reset to center if it hits the bottom (misses paddle). - Detect paddle collision to bounce the ball back up. - Use requestAnimationFrame for smooth animation. ## Output: index.html ## Output: styles.css ## Output: game.js</pre> <h3>4. Configure</h3> <pre>{ "stacks": ["core"], "output": "output" }</pre> <h3>5. Compile</h3> <pre>export VIBEC_API_KEY=your_api_key_here npx vibec</pre> <h3>6. Test</h3> <pre>cd output/current python3 -m http.server 8000</pre> <p>Visit <code>http://localhost:8000</code>.</p> <h3>7. Add Scoring</h3> <pre># Add Scoring to Pong Enhance the Pong game by adding score display ## Context: index.html, game.js ## Output: index.html ## Output: game.js</pre> <p>Run <code>npx vibec</code> again to update the game.</p> <h3>8. Add AI Player</h3> <pre># Add AI Player to Pong Add the computer player which moves the paddle automatically. Make sure that at this point there are 2 paddles: one for the user and one for the computer. ## Context: index.html, game.js ## Output: game.js</pre> <p>Run <code>npx vibec</code> one more time to complete the game with an AI opponent.</p> <h3>7. Debug</h3> <p>Use <code>VIBEC_DEBUG=1 npx vibec</code> for detailed logs.</p> <h3>Troubleshooting</h3> <ul> <li><strong>API Key Missing</strong>: Set <code>VIBEC_API_KEY</code></li> <li><strong>No Output</strong>: Verify <code>## Output:</code> in prompts</li> <li><strong>Command Not Found</strong>: Use <code>npx vibec</code> or install globally</li> <li><strong>Test Failures</strong>: Check test output for details</li> <li><strong>Plugin Timeout</strong>: Increase <code>--plugin-timeout</code> if needed</li> </ul>

<p>AskThePDF.io, Simply talk to any PDF. With AI you can now engage in natural, interactive conversations with your PDFs, making information extraction a breeze.</p>

<p>Unleash the power of AI to generate hundreds of unique, SEO-optimized articles from a single prompt. Perfect for Private Blog Networks (PBNs), AIrticle-flow supports multilingual content, real-time image creation, and seamless WordPress integration. Boost productivity, quality, and creativity effortlessly. Try it now with 10 free credits and transform your content strategy!</p>

Our AI finds products from public sources, then rotates exposure so useful newcomers have a fair chance to be seen.
Learn how discovery works








