sheet index

this page

  1. 01summary
  2. 02Where I looked
  3. 03What I did and delivered
  4. 04Decisions

home page

  1. 01introduction
  2. 02about
  3. 03interfaces
  4. 04skills
rev. 2026.09

Face verification API

B2B SaaS · developer audience · API + site

summary

Redesign proposal, opening: a face mesh drawing and the verification API headline
Redesign proposal, three steps: capture a frame, verify, issue the session
Redesign proposal, not live; the figures shown are illustrative. Brand withheld. 3D model: SamFStudent, CC BY 4.0.
came in
An API for developers to add face verification to their own apps: a two-part AI back end, liveness detection and face matching, a data model that stores no raw images, and a promotional site that speaks to developers.
examined
Which parts of the promise are measurable (latency, liveness, encryption, KVKK/GDPR), the conversion model (free API sign-up, upgrade to a paid tier, sales contact for enterprise), how the competitors (AWS Rekognition, Azure Face, FaceIO) present themselves.
decisions
The AI side is two separate parts, as in the brief; match and liveness return as two separate result fields. No images stored, only encrypted vectors. API first, then interface; a code sample on the site's first screen. The site was later reassessed; a new visual language was proposed as a clickable prototype.
techniques
Laravel API, face matching and liveness services, encrypted vector storage, webhooks; design system (Inter Tight + IBM Plex Mono, single accent), clickable prototype, a CC BY 4.0 licensed 3D wireframe model.

Where I looked

The job was an API that lets developers add face verification to their own apps, and a site to present it. The problem space was clear: passwords and SMS codes are easy to intercept; face recognition can replace them, but it is not safe as long as a photo or a video can fool it. Off-the-shelf cloud services also often leave developers unsure about data retention and KVKK / GDPR.

So I first looked at which parts of the promise are measurable, how a developer moves from a free sign-up to a paid tier, and how the competitors present themselves.

What I did and delivered

  • A two-part AI back end. Two separate parts were written, as in the brief. Face matching extracts a face vector from the image, compares it with the enrolled vector and returns a confidence score. Liveness detection tells whether the image comes from a live person rather than a photo or video held up to the camera.
  • API. Enrolment and verification endpoints, authentication, rate limits, webhooks for asynchronous flows and clear error codes. Every endpoint is documented with examples in four languages (cURL, Python, JavaScript, PHP).
  • Data model. No raw image is stored; only an encrypted face vector is kept.
  • Accounts and tiers. A flow that starts with a free sign-up and moves to a paid tier, plus an enterprise contact path.
  • Promotional site. A bilingual site whose copy comes from translation keys.
  • Redesign proposal. I later reassessed the site from the outside and proposed a new visual language and page structure; it remained a clickable prototype.

Decisions

  • API first, then interface. The product's value is in the endpoints; the site was built to tell what the API says, accurately.
  • Privacy by default. Not storing images was not a feature added later but the data model's starting decision.
  • Two parts, two results. Match and liveness return in separate fields; developers can assess each on its own.
  • Talk to developers like developers. Code samples, endpoints, error codes and rate limits come before marketing lines.
  • Simplifying in the proposal. The five animation layers on the opening became one main visual (a 3D wireframe face that follows the cursor); the menu went from six items to four; API detail moved to the documentation; each page kept one primary and one secondary action; with no real customers yet, verifiable content (technical documentation, a demo, a security policy) was proposed instead of a logo wall.
  • What an outside look showed. Animations that were fine one by one distracted together; documentation on the promotional page left both audiences half-served; placeholder content is a debt.
Breakdown