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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@spaceandtimelabs/makeinfinite-ui

v0.73.0-beta.9

Published

A React-based front-end for the MakeInfinite service, enabling non-technical users to develop miniapps through chat-based interactions with LLMs.

Readme

MakeInfinite UI

A React-based front-end for the MakeInfinite service, enabling non-technical users to develop miniapps through chat-based interactions with LLMs.

Features

Chat-Based Development

  • Interactive chat interface for communicating with LLMs
  • Real-time component development and modification
  • Git-based project management using isomorphic-git

Image Gallery

The Image Gallery feature allows users to easily reference images in their chat messages when discussing component modifications.

Using Images in Chat

  1. Click the "Images" button next to the chat input
  2. Browse available images in your project
  3. Click an image to insert its path into your message
  4. Continue editing your message or send it

Project Image Management

Images should be placed in the your-project/src/assets/images/ directory of your project:

your-project/
  ├── src/
  │   ├── assets/
  │   │   ├── images/
  │   │   │   ├── image1.jpg
  │   │   │   ├── image2.png
  │   │   │   └── ...
  │   └── ...
  └── ...

Supported Image Formats

  • JPEG/JPG
  • PNG
  • GIF
  • WebP

First-Time Setup

  • If no images directory exists, the gallery will prompt you to create one
  • Once created, you can add images to the directory
  • Images will automatically appear in the gallery

Development Setup

This project uses Vite with React and TypeScript.

Getting Started

  1. Install dependencies:
npm install
# or
yarn install
  1. Serve CDN server

This command will build makeinfinite-ui in DEV mode so it's easier for debugging as well as serve the build files to be accessed through CDN

npm run serve-cdn
# or
yarn serve-cdn

Optional: Test that serving CDN worked

yarn test-cdn
  1. Update the bff script to point to the above CDN url
  2. Update index requestedHost to your miniapp url
  // Example:
  const requestedHost = "brewingbliss.cosmics.app";
  1. Start bff
  cd /your-path/dreamspace-miniapp-bff
  yarn dev

Project Structure

makeinfinite-ui/
  ├── lib/
  │   ├── components/
  │   │   ├── ImageGallery/
  │   │   ├── PlaceholderChatbot/
  │   │   └── ...
  │   ├── filesystem.ts
  │   └── ...
  ├── src/
  └── ...

ESLint Configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

Configure the top-level parserOptions property:

export default tseslint.config({
  languageOptions: {
    parserOptions: {
      project: ["./tsconfig.node.json", "./tsconfig.app.json"],
      tsconfigRootDir: import.meta.dirname,
    },
  },
});

For React-specific linting:

// eslint.config.js
import react from "eslint-plugin-react";

export default tseslint.config({
  settings: { react: { version: "18.3" } },
  plugins: {
    react,
  },
  rules: {
    ...react.configs.recommended.rules,
    ...react.configs["jsx-runtime"].rules,
  },
});

Testing

Run the test suite:

npm test
# or
yarn test

Test Coverage

The project includes comprehensive tests for all components, including:

  • Unit tests for components
  • Integration tests for features
  • Mock filesystem operations
  • Error handling scenarios

Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Write tests for your changes
  4. Ensure all tests pass
  5. Submit a pull request

Project Architecture

Key Components

ImageGallery

  • Displays project images in a modal gallery
  • Handles image selection and insertion into chat
  • Manages directory creation and file loading
  • Provides error handling and recovery options

PlaceholderChatbot

  • Manages chat interface and message history
  • Integrates with image gallery for image references
  • Handles real-time communication with backend

File System Integration

The project uses isomorphic-git for managing local repositories:

  • Files are stored in the browser's filesystem
  • Changes are synchronized with remote repositories
  • Image files are loaded and displayed from local storage

License

This project is licensed under the terms specified in the LICENSE file.