André Ximenes
Back to home

Projects

Apps, APIs, and experiments

All work in more detail

  • Screenshot of the Multi-tenant recruiting platform: from careers site to auditable pipeline project

    Multi-tenant recruiting platform: from careers site to auditable pipeline

    I built an end-to-end multi-tenant ATS in TypeScript, with NestJS on the API and Next.js (React) on the product: companies operate in logical isolation per tenant, while the candidate keeps a single profile that spans all applications. The technical differentiator is the combination of explicit state machines (jobs and applications), a customizable pipeline per job with auditing, and a second line of defense for data access via tenant context and Prisma extension over PostgreSQL, plus direct upload to object storage with pre-signed URLs and domain validation in use cases.

    • TypeScript
    • NestJS
    • Next.js
    • Prisma
    • PostgreSQL
    • Zod
  • Screenshot of the Full stack ecommerce: Hono API, Astro storefront, and order domain project

    Full stack ecommerce: Hono API, Astro storefront, and order domain

    I built a full stack ecommerce in a monorepo: REST API in Hono (Bun), SSR storefront in Astro, and persistence in PostgreSQL with Prisma and Redis. The core is JWT session in cookies with refresh, transactional orders with conditional stock, storefront/admin RBAC, and OpenAPI contract with Zod. The API already closes orders; checkout in the storefront is still evolving on the presentation layer.

    • TypeScript
    • Hono
    • Astro
    • PostgreSQL
    • Redis
    • Prisma
  • Screenshot of the Production business sites: CMS on a VPS and HTML on Cloudflare's CDN project

    Production business sites: CMS on a VPS and HTML on Cloudflare's CDN

    I shipped two sites (a grocery store and an atelier) as Astro SSR on a VPS, with a panel so the owner can edit copy, photos, and products. The origin uses a Cloudflare Origin CA certificate, and the host firewall allows 80/443 only from Cloudflare IPs. Every other port stays closed except SSH with fail2ban. The edge keeps public HTML for up to a year and only hits the VPS again after a CMS save invalidates the cache through Cloudflare's CDN API. Content lives in a SQLite document, not an off-the-shelf CMS.

    • TypeScript
    • Astro
    • Node.js
    • SQLite
    • Docker
    • Nginx
    • Cloudflare

Experimental

Prototypes, tools, and technical experiments

  • Screenshot of the Corporate chat with local RAG: indexed policies without going to the cloud project

    Corporate chat with local RAG: indexed policies without going to the cloud

    I built a corporate chatbot with local RAG to query policies and runbooks without sending the corpus to external APIs. I used Bun, Hono, React, Ollama, and Chroma, with hybrid retrieval (vector plus lexical fallback) and NDJSON streaming with cancellation. History is off by default so it does not pollute the embed on small models.

    • Bun
    • Hono
    • React
    • Ollama
    • ChromaDB
    • LangChain
  • Screenshot of the Mock API for prototyping UIs: CSV into SQLite, filters, and OpenAPI contracts project

    Mock API for prototyping UIs: CSV into SQLite, filters, and OpenAPI contracts

    I built Mockê, a public mock API with ready-made datasets (products, postal codes, movies, and more) to prototype frontends without a real backend. The core is Hono on Bun with SQLite cache: atomic sync by hash of the manifest under data/, per-field SQL filters, and typed OpenAPI. Reimport happens only at boot when the CSVs change; there is no runtime watch.

    • Bun
    • Hono
    • SQLite
    • Zod
    • OpenAPI
    • Docker