Skip to content

Integration Inventory

External services this repo talks to.

Cloud / infra

Service SDK Use
AWS S3 (two buckets, two regions) aws-sdk v2 Media storage (user uploads, generated images, templates)
AWS Bedrock Not used in this repo (no Bedrock SDK in package.json)
Google Vertex / Gemini / Cloud RAG Not used in this repo

AI

Service SDK Use
OpenAI openai ^4.63.0 All AI generation: content, images, FAQs, quizzes, quotes, trends

OpenAI is the only AI provider for designer-api. This contrasts with someli-api, which uses Bedrock + Vertex + OpenAI.

Polotno

Service SDK Use
Polotno polotno-node ^2.10.4 Server-side template rendering (PNG/JPG export from JSON design data)

The Polotno license key is initialised inside routes/routes.js — search for createInstance( or setLicenseKey( to find it; verify whether it's hardcoded or env-driven.

Media tooling

Service SDK Use
Sharp sharp ^0.33.5 Image resize / format conversion
FFmpeg (system binary) fluent-ffmpeg ^2.1.3 Video processing
Puppeteer (headless Chrome) puppeteer ^23.4.0 PDF / HTML-to-image generation
PDF parsing pdf-parse ^1.1.1 Extract text from PDFs (in pdfToExtractData.js)

Stock media

Service SDK Use
Pexels (HTTP via axios / request, key from conf.PEXELS_API_KEY) Stock photo search
Pixabay (HTTP, key from conf.PIXABAY_API_KEY) Stock photo search
Unsplash unsplash-js ^7.0.19 (key hardcoded in routes/routes.js) Stock photo search

Notifications

Service SDK Use
Slack slack ^11.0.2 teamsnotification.js pings a channel when content is missing (hardcoded token + channel)

Despite the file name "teamsnotification.js" (suggesting MS Teams), the code uses the Slack SDK. The naming is misleading — verify whether Teams was the original target and Slack is a later replacement.

Email

Service SDK Use
SendGrid (SENDGRID_API_KEY in env, but @sendgrid/mail is not in package.json) Unclear: either email is sent via raw HTTPS, or email features are dormant

Action: verify email pathway. If used, add @sendgrid/mail. If unused, remove SENDGRID_API_KEY from conf.js.

News

Service SDK Use
News API (NEWS_API_KEY in env; HTTP) Likely used by trendsbot.js for news-driven content

HTTP clients

Library Use
axios ^1.7.7 Modern HTTP client
node-fetch (transitively via unsplash-js) Polyfill
sync-request ^6.1.0 Blocking HTTP — used in teamsnotification.js
request ^2.88.2 Deprecated — verify usage and replace
fetch ^1.1.0 Spurious — remove

Outbound to other Someli services

None observed. designer-api does not call someli-api HTTP, Someli-admin-api, or someli-dashboard-be. Coordination is via the shared MySQL database only.

Inbound

  • Someli-Designer (Nuxt FE) calls this API via process.env.baseURL
  • Nothing else (no public consumers)

Diagram

┌──────────────────┐         ┌──────────────────────┐         ┌──────────────────────┐
│ Someli-Designer  │  HTTP   │   designer-api       │  HTTP   │  External            │
│ (Nuxt browser)   │ ──────▶ │   (this repo)        │ ──────▶ │  OpenAI, Polotno,    │
└──────────────────┘         │                      │         │  Unsplash, Pexels,   │
                             │                      │         │  Pixabay, NewsAPI,   │
                             │                      │         │  AWS S3, Slack       │
                             └─────────┬────────────┘         └──────────────────────┘
                                       │ MySQL (shared with someli-api / admin / dashboard)
                             ┌──────────────────────┐
                             │  MySQL database      │
                             └──────────────────────┘

Notable absences

  • No queue / message broker (consistent with platform)
  • No metric / log aggregation (consistent with platform)
  • No service-to-service auth (consistent with platform — coordination is via shared DB)
  • No webhook handlers for inbound payment / event traffic (designer-api isn't customer-facing)