Digital Assets

PixelBotStock

An AI-powered stock image marketplace engineered to scale to 100k+ assets — without scaling manual effort.

Full-StackInfrastructure
Project Overview
ClientPixelBotStock
IndustryDigital Assets / Stock Photography
ArchitectureService-Based / Microservice-Oriented
FrontendNext.js on Vercel
BackendLaravel
DatabasePostgreSQL
Search EngineMeilisearch
AI LayerOpenAI
ProcessingDedicated Queue Worker
100k+Image library scale supported
<50msMeilisearch query response time
0Manual tags required per image
The Challenge

Building a stock platform at scale demands more than storage. Manual metadata tagging is unsustainable past a few thousand assets. Search must return results in milliseconds regardless of library size. And the ingestion pipeline — resizing, watermarking, AI enrichment, search indexing — must run entirely in the background without ever blocking the API or degrading the user experience.

Our Approach

We architected a service-oriented system with Laravel as the orchestration layer, PostgreSQL for structured data, and Meilisearch as a dedicated search engine. A dedicated queue worker handles all asynchronous operations: image resizing, compression, watermark generation, and OpenAI metadata generation. Every image passes through a full AI enrichment pipeline — generating SEO-optimised titles, descriptions, and keyword tags — before being indexed into Meilisearch. The result: every searchable asset is automatically enriched, consistently tagged, and instantly discoverable. The Next.js frontend is deployed on Vercel for global edge distribution and CDN caching.

Technical Architecture

Frontend — Next.js on Vercel

The Next.js frontend is deployed on Vercel, enabling global edge distribution, automatic scaling, CDN caching, and SEO-friendly dynamic routing. It consumes the Laravel API and communicates directly with Meilisearch for instant, client-side search-as-you-type — keeping the experience snappy regardless of library size.

Backend — Laravel API & Admin Panel

Laravel acts as the core orchestration layer, handling authentication and authorisation, subscription management, the image ingestion pipeline, metadata storage, licensing logic, and search synchronisation with Meilisearch. The admin dashboard gives operators full control over batch uploads, metadata editing, tag management, category organisation, and search tuning — all through a clean, purpose-built interface.

Database — PostgreSQL

PostgreSQL was chosen for its reliability, indexing strength, and flexibility with structured data. It stores users, subscriptions, image metadata, AI-generated titles and descriptions, tags, categories, and licensing records — all with full relational integrity and support for flexible metadata fields that can evolve as the platform grows.

AI Metadata — OpenAI Integration

To eliminate manual tagging and dramatically improve search quality, we integrated OpenAI directly into the image ingestion workflow. After an image is stored, a queue worker dispatches it to the OpenAI API, which analyses the image and returns an SEO-optimised title, a detailed description, relevant keyword tags, and context-aware category suggestions. This metadata is written back to PostgreSQL before the image is indexed — ensuring every searchable asset is fully enriched from day one.

Search — Meilisearch

Search is powered by Meilisearch, a dedicated high-speed search engine that delivers millisecond-level search-as-you-type, typo tolerance, relevance weighting, and filterable attributes. Critically, images are only indexed after AI metadata generation is complete — guaranteeing that every result is fully enriched, accurately tagged, and strongly ranked before a user ever sees it.

Queue Worker — Asynchronous Processing Layer

A dedicated background worker handles all heavy operations outside the request cycle: image resizing, compression, watermark generation, OpenAI API calls, Meilisearch indexing, and subscription lifecycle tasks. This keeps the API fast and non-blocking, supports automatic retry logic on failure, and gives the platform the headroom to process thousands of new assets without any degradation in user-facing performance.

Image Ingestion Pipeline
01

Admin uploads image via the Laravel dashboard

02

Initial metadata is stored in PostgreSQL

03

Queue worker triggers image resizing, compression, and watermark generation

04

OpenAI API analyses the image and generates an SEO-optimised title, detailed description, keyword tags, and category suggestions

05

AI-generated metadata is written back to PostgreSQL

06

Fully enriched record is indexed into Meilisearch

07

Image becomes instantly searchable on the Next.js frontend

Business Impact
  • AI-automated content scaling — the library grows without growing the team
  • Improved SEO across every asset through consistent, structured AI-generated metadata
  • Millisecond asset discovery via a dedicated, tuned search engine
  • Eliminated manual tagging, categorisation, and metadata overhead for operators
  • Enterprise-ready architecture capable of white-label SaaS deployment
  • Each service layer — frontend, API, search engine, worker — scales independently
Tech Stack

Click any tag to see other projects using the same technology

Your business deserves
a better website.

Book a free 30-minute call. We'll look at what you have, tell you what's possible, and give you an honest plan and price — useful whether you build with us or not.

No pressure. No jargon. No obligation.