FRAN CANETE
03 / Lab · Product case studies

AI product and agent systems, built end to end.

03 case studies·Independent product work·Updated Sep 2026

Independent case studies demonstrating applied AI product engineering and deterministic agent tooling: model workflows, structured extraction, embeddings, local data systems, human review, reliability controls, and the full-stack foundations that make automation useful in practice.

01

Agent CRM.

agentcrm.francanete.com →·GitHub →·Developer tool·Open source · npm v0.1.1

Open-source, local-first CRM infrastructure for personal AI agents: a deterministic Node.js CLI, structured JSON contracts, and one portable SQLite database.

Product outcome

Gives personal agents structured, queryable relationship context and safe CRM operations without making an LLM or hosted service the system of record.

  1. 01User asks an agent to remember or retrieve relationship context
  2. 02Portable Agent Skill guides deterministic CLI use
  3. 03Agent inspects schema and searches before creating records
  4. 04Schema-aware services validate the requested operation
  5. 05SQLite transaction applies the change and updates search state
  6. 06Immutable history records provenance and retry metadata
  • The Node.js CLI exposes structured JSON success and error envelopes so agents and scripts can use explicit, machine-readable contracts.
  • SQLite holds typed records, custom objects, directed relationships, FTS5 search, and bounded context without a separate CRM server or vector database.
  • Domain services separate command parsing from validation, lifecycle operations, CSV ingestion, and versioned native backup and restore.
  • Validated filter objects compile to parameterized SQL; callers cannot submit arbitrary SQL.
  • Schema validation, immediate transactions, and idempotency keys prevent malformed, partial, duplicate, or conflicting mutations.
  • Archive and restore preserve identifiers and immutable history instead of silently deleting data.
  • The privacy model distinguishes local storage from the wider trust boundary: agent hosts, model providers, messaging channels, and the operating system may still process CRM data.
Agent SkillJSON CLI contractsSQLite FTS5Zod
Node.js 24TypeScriptnode:sqliteSQLiteCommanderVitestBiometsup
What I learned
  • Agent workflows do not always need another model call. For structured relationship work, a deterministic local tool with clear contracts can be safer and more useful than unstructured agent memory.
  • Local-first is a meaningful ownership choice, but it needs honest boundaries: the database is not encrypted by Agent CRM, and the surrounding agent, model, operating system, and messaging channel still matter.
  • Reliable agent actions come from ordinary software-engineering controls: validation, parameterized queries, idempotency, transactions, explicit lifecycle rules, backups, and audit history.
02

Duebase.

duebase.com →·SaaS·Live

AI-enabled financial due diligence SaaS that turns UK Companies House filings into structured financial signals, risk assessments, and health scores.

Product outcome

Turns raw company filings into structured financial metrics, risk signals, and health scores that are easier to inspect and compare.

  1. 01Company selected
  2. 02Filing retrieved
  3. 03Gemini structured extraction
  4. 04Schema validation and retry
  5. 05Risk signals generated
  6. 06Results shown in dashboard
  • Gemini 2.5 Flash returns schema-constrained JSON instead of free-form prose, turning financial statements into product-ready data.
  • Inngest orchestrates long-running document analysis with retries, status updates, and recovery paths outside the request cycle.
  • Per-job token tracking and cost estimation make model usage visible, while the Companies House integration supplies authoritative source data.
  • Schema validation and retry handling prevent malformed model output from silently becoming trusted product state.
  • Processing statuses make asynchronous work and failures visible instead of presenting uncertain results as instant success.
  • Subscription-based usage limits and middleware checks keep AI consumption bounded and enforceable.
Google Gemini 2.5 FlashInngestZod
Next.js 14 (App Router)TypeScriptMaterial-UI (MUI) v7React Query (TanStack Query v5)React Hook FormNext.js API RoutesSequelize ORMPostgreSQL+9
What I learned
  • Structured outputs make LLM features more dependable, but the value comes from schema design, validation, retries, and graceful failure handling rather than the model alone.
  • Payment reconciliation is product infrastructure. Provider status, webhook timing, customer links, and access state need explicit recovery paths before real users arrive.
  • Trial systems live or die by lifecycle logic. Usage limits, reset timing, upgrade paths, and production traffic expose bugs that happy-path demos miss.
03

Plaudera.

plaudera.com →·SaaS·Live

AI-enabled customer feedback platform for collecting product ideas, detecting duplicates, scoring demand confidence, and managing roadmap decisions. Built around embeddings, similarity search, async background jobs, and human review workflows so AI can assist prioritisation without taking opaque or irreversible decisions.

Product outcome

Turns fragmented feedback into reviewable duplicate candidates and stronger demand signals without automatically merging user submissions.

  1. 01Feedback submitted
  2. 02Embedding generated
  3. 03pgvector similarity search
  4. 04Candidate duplicates scored
  5. 05Human merge or dismiss
  • Embeddings turn feedback into vector representations so semantically similar ideas can be retrieved even when the wording differs.
  • Gemini and similarity scoring support duplicate detection and confidence signals built from votes, contributor diversity, frequency, and impact.
  • Inngest moves background work outside the request cycle, while PostgreSQL and pgvector keep product data and vector search in one system.
  • Potential duplicates enter a review workflow; the model never makes an irreversible merge decision.
  • Merge and dismiss actions remain explicit and auditable so product teams can correct uncertain matches.
  • Rate limits, CORS and CSRF controls, contributor sessions, and bot protection secure the public and embedded inputs feeding the workflow.
Google GeminiGoogle EmbeddingsVercel AI SDKpgvectorInngest
Next.js 16React 19TypeScriptTailwind CSS 4shadcn/uiDrizzle ORMPostgreSQLBetter Auth+7
What I learned
  • Prioritisation needs more than vote count. Confidence scoring has to account for diversity, impact, frequency, and concentration so the product does not optimise for the loudest minority.
  • AI duplicate detection becomes useful only when paired with human review. Embeddings can find candidates, but merge/dismiss flows and audit trails make the feature trustworthy.
  • Embeddable workflows turn product ideas into infrastructure work quickly: CORS, CSRF, contributor sessions, rate limits, page rules, and bot protection all matter.