Vibeleaderboard
Index / tool
Visit vectr.store
Category
AI Tools
Rank
No. 1832Tools index

Previous survey · No. 1840 ·

Pricing
Open Source
Type
TOOL
GitHub
110 stars
Date

About

Free, open-source template for building natural language image search on the AI Cloud.

What it does

Vectr turns uploaded images into a searchable collection. It stores each file, asks a vision model for a detailed description, then indexes that description with the image metadata. Users search with ordinary phrases and receive matching images.

Why it's ranked here

The architecture is unusually legible for a complete AI search starter. Upload, description, and indexing run as isolated serverless steps with distinct retry policies. The practical UI includes batch uploads, cancellation, progress, optimistic previews, and semantic results. Its tight service dependencies make it less attractive outside Vercel and Upstash.

What's good

Failure handling receives real attention. Temporary failures trigger delayed retries, while invalid files and quota problems stop permanently. Uploads run in batches of ten, expose cancellation and progress, and reject files above 4.5 MB. Search metadata stays beside the indexed description, avoiding a separate application database.

Tradeoffs

The stack requires Vercel Blob, Upstash Search, Vercel Workflow, and a vision model reached through the AI SDK. Workflow remains a beta dependency. The hosted demo disables uploads. Configuration documentation also disagrees about some environment variable names, which can complicate local setup.

How to use it well

Use it as a working starter for teams building search over an image collection on Vercel. Replace the presentation and domain wording while retaining the upload, description, indexing, and retry pipeline. It does not cover image generation. It describes and retrieves images that users already possess.

Technical notes+

package.json defines a private TypeScript Next.js 16 application with React 19, pnpm-oriented scripts, Upstash Search, Vercel Blob, AI SDK, Zod, Tailwind CSS 4, and workflow 4.0.1-beta.2. next.config.ts wraps Next configuration with withWorkflow and permits images from Vercel Blob hosts. components/upload-button.tsx limits files to 4.5 MB, creates optimistic object URLs, processes batches of ten, and supports aborting requests. components/results.tsx lists up to 50 blobs, while components/results.client.tsx combines uploaded, searched, or default images. env.ts requires Blob and Upstash REST settings at module load, but its variable names differ from those documented in README.md; the README also alternates between an AI Gateway key and an xAI key.

Observed

License
MIT
Primary language
TypeScript
Packaging
Private Node.js application installed with pnpm
Interface
Next.js web application with an upload HTTP endpoint and server-side search action
Platform
Designed for Vercel deployment with Vercel Blob and Workflow
Storage and search
Upstash Search stores indexed descriptions and image metadata

Read from README.md, package.json, lib/utils.ts, env.ts, next.config.ts, postcss.config.mjs, app/page.tsx, app/layout.tsx, hooks/use-mobile.ts, components/deploy.tsx, components/header.tsx, components/preview.tsx, components/results.tsx, components/upload-button.tsx, components/results.client.tsx.

What it can do

  • Search for images using natural language queries

    Text description or natural language queryRelevant images from database

  • Index and process images for searchability

    Image files or image datasetSearchable image index with embeddings

  • Generate vector embeddings from images

    Image filesVector representations of images

  • Build custom image search applications

    Template code and configuration filesDeployable image search application

  • Deploy image search service to AI Cloud

    Application code and image databaseLive image search API endpoint

Tags

vectorimage-searchverceltemplate

Tech Stack

Node.jsNext.jsTypeScript

Media

Vectr

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.