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.
| 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) |
| 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)