Ikorya

SaaS web app with AI · 2026

Ikorya is a web app that walks anyone through turning scattered memories into a coffee table book of around thirty pages, say, about a loved one’s life. We designed and built the whole product: a guided interview with voice notes, an editable timeline, AI writing and images, automatic layout, a 3D viewer, and PDF export. These are family stories, so privacy was designed and tested before the pilot opened.

Ikorya web app homepage: “Turn memories into a book” (headline in Spanish)
Client
Ikorya
Year
2026
Our role
Product, UX/UI, end-to-end development, and infrastructure
Platform
Web app
Status
Pilot with real accounts since September 2026
54/54
data isolation tests, not a single leak
115
automated tests, all green
9
editorial collections, 25 templates

Context

01

A book about a life, no design skills required.

Users bring the story (text or voice notes), documents, and images. The AI plays editor: it interviews, spots the key moments, proposes the structure, writes, captions the photos, and generates or restores images.

The flagship use case: a short book about Grandma’s life. The art direction goes for editorial calm, none of that “AI tool” look: the pages look like paper.

The challenge

02

Four jobs in one app, and data that can’t get out.

Put the work of an interviewer, a writer, a photo editor, and a layout designer in anyone’s hands, with a result that doesn’t look like a template.

  1. 01Family stories, photos, and voices: privacy is non-negotiable from day one.
  2. 02Images that keep the likeness of real people without inventing scenes that never happened.
  3. 03What you flip through on screen is exactly what gets printed.
  4. 04A locked scope: create, tell, generate, tweak, and export.
How it worksFrom the interview to the timeline, and from there to the pages of the book.

How we worked

03

The process, step by step

  1. 01

    Scope

    Functional scope signed in June, followed by a module-by-module PRD with acceptance criteria, the architecture, and a build plan in waves.

  2. 02

    Build

    Parallel waves of AI agents, each the sole owner of its own folders so nobody steps on anybody’s toes, plus QA with two reviewers and browser testing: 16 findings fixed.

  3. 03

    Three designs

    Three complete directions, landing page and app, that you could compare inside the app itself with a switcher. The client picked one.

  4. 04

    Trust and family

    Images proposed before they’re saved, controls to skip or pause topics, an honest “how much book do we have” meter, family collaboration by link, and AI provenance credits.

  5. 05

    Audit

    A review from every angle (backend and security, frontend, data, product, and DevOps), verified against the code. Verdict: no rewrite and no stack change.

  6. 06

    Polish

    A complete UI system, nine editorial collections with 25 templates, and a 3D book viewer.

  7. 07

    Pilot and handoff

    Production and staging in Frankfurt, the isolation matrix, pilot accounts, and the code on GitLab with a dev → test → main flow, plus a product wiki and a backlog for the team.

Problems & fixes

04

Problems we ran into and how we fixed them

  1. Nobody sees a book that isn’t theirs

    Problem
    Family stories, photos, and voices: exporting and publishing couldn’t be the same thing.
    Fix
    Exporting a PDF no longer publishes anything. Publishing is a separate action, confirmed and revocable, with a random link; the public edition filters the moments first and only then signs the image URLs. Every voice note requires consent, and photos are stripped of their metadata.
    Result
    An automated isolation matrix: 54 of 54 checks, two runs in a row, zero leaks.
  2. Images for sensitive moments

    Problem
    For moments about a death or an illness, the image model came back with no image and no error.
    Fix
    Claude first translates the moment into a purely visual scene (object, light, place, season) without spelling out the sensitive part, with retries and diagnostics.
    Result
    A moment about a death produced a warm image on the first try: a table by a snowy window.
  3. The model, swamped on the first real test

    Problem
    On the client’s account, the image model returned “high demand” and the feature looked broken.
    Fix
    Retries with a growing wait, for overload only; quota errors are left out on purpose, because retrying them is pointless.
    Result
    The transient failure now gets absorbed on its own, with a test to back it.
  4. What you flip through is what you print

    Problem
    The viewer and the PDF could drift apart, and a parameter in the PDF library was shrinking the height of every page.
    Fix
    Viewer, editor, and PDF all read the same layout model, in the same unit; the parameter was removed and text was capped by density.
    Result
    A single model for screen and print.
  5. Sign-up links that were “no longer valid”

    Problem
    The pilot’s activation links carried the token in a part of the URL that never reaches the server.
    Fix
    A confirmation route that redeems the token on the server, with a locked-down redirect; public routes stay on an explicit list.
    Result
    All five pilot accounts, activated.
  6. Family pitches in without opening up the database

    Problem
    A relative without an account had to be able to add a photo or a memory to a specific moment.
    Fix
    A per-moment link that the owner generates; all collaboration runs through a single server module that revalidates the link on every write.
    Result
    Tested end to end: contribute, attribute, revoke, and block.

What we built

05

Pieces of the project

  • 01

    The book

    An Ikorya book, pages turning.

  • Ikorya web app homepage
    02

    The landing page

    Editorial calm: the pages look like paper.

  • A grandmother and her granddaughter looking at a photo book together
    03

    For the family

    Books to keep and to give as gifts.

Results

06

What we pulled off

  • 54/54

    isolation tests

    Two owners, an anonymous visitor, the private photo storage, the public link, and a revoked invitation. Zero leaks.

  • 115

    automated tests, all green

    From 28 in July to 115 in September.

  • 0

    lint errors and warnings

    In the July audit, with browser QA on desktop and mobile.

  • 9 · 25

    collections and templates

    Nine editorial collections and 25 page templates.

  • 5 → 3

    steps to create a book

    The creation wizard, simplified after testing it.

  • 5

    pilot accounts

    With sign-ups closed since September 8, 2026.

Services

  • Product
  • UX/UI
  • Development
  • Applied AI
  • QA

Built with

  • Next.js 16
  • React 19
  • Supabase
  • Tailwind
  • Claude
  • Nano Banana Pro
  • fal.ai
  • Whisper
  • Vercel