Skip to Content
ProductCapabilities

Capabilities

Everything below ships in the codebase today. It is what you extend — not a slide-deck roadmap.

Product surface (what your users see)

AreaWhat works
AuthEmail sign-up / sign-in, session handling, email confirmation (configurable)
WorkspacesSingle account; Team plan unlocks org members and invites (no workspace switcher)
BoardsCreative boards: prompt composer, batch variants (e.g. 4 images), studio gallery
GenerationAsync jobs: submit → queue → provider → storage → finalize credits
CreditsBalance in the UI, insufficient-credit upsell, usage tied to successful jobs
BillingPlans (free / pro / team), checkout flows, portal, plan-gated features
SettingsAccount, org members, billing, integrations catalog
API consoleSeparate app (apps/api-console): API keys, usage, billing, playground
HelpIn-app help panel and contact support form (app context, not the marketing form)

Try the UX without a backend: demo.oequ.io  (apps/demo with mock adapters).

Platform (what you do not have to write)

Credit ledger

  • Reserve → finalize with idempotent request IDs
  • Refund on failed or cancelled jobs (credits are not burned on provider errors)
  • Monthly allowance reset per plan (free / pro / team)
  • Auditable transaction log, not a single balance column

Details: Credits & billing.

Async generation pipeline

  • Provider-agnostic job model ( fal.ai wired; mock for local dev)
  • Signed webhooks, storage upload, batch rows, partial failure handling
  • Model catalog in libs/generation-core, synced to Edge Functions

Details: Generation domain.

Security

  • Postgres RLS as the authority — not route guards alone
  • Privileged writes through Edge Functions with service role
  • Plan upgrades and billing events via verified webhooks

Details: Security model, Production hardening.

Billing adapters

ModeUse case
mockLocal demo and E2E without Stripe
stripeCheckout + subscription webhooks
customRegional PSP, invoice, YooKassa-style webhooks

The Angular UI talks to a BillingPort — no Stripe SDK inside feature libraries.

Details: Custom billing provider.

Public API

  • Versioned REST API via Edge Function public-v1 (keys, rate limits, idempotency)
  • Developer console on port 4202: npm run start:api-console
  • Studio (apps/web) and API console are separate deployables

Engineering detail: docs/PUBLIC_API_CONSOLE_START_HERE.md in the monorepo.

Engineering quality

PracticeIn the repo
Hexagonal portsSwap mock vs Supabase in app.config.ts only
Nx monorepoShared libs: ports, features-*, shell, ui
i18nTransloco; English in the app shell (locale infrastructure ready for more)
E2EPlaywright suites for demo and web
DocsThis site (Nextra), llms.txt for AI assistants

Stack

LayerTechnology
FrontendAngular 21+, standalone components, signals
UISpartan-ng, Tailwind CSS 4
BackendSupabase — Postgres, Auth, Storage, Edge Functions
AIfal.ai (production path), mock provider (dev)
Docs siteNextra 4 + Next.js (this site)

Full table: Stack.

What is intentionally out of scope

  • We do not run your production Supabase or bill your end-users
  • No single vertical “AI wrapper” GTM — you bring the model and positioning
  • Marketing site and this docs app are separate deployables (Vite landing + Nextra docs)

Next

Last updated on