Projects - Rafael García Prieto
ENES

Projects

Projects

Personal products, digital banking, mobile commerce and internal tools.

A selection of personal products and representative work, described through the problem each one solves, my role and the technical decisions I made.

← Back home

Personal and family project

Jucart

Product, frontend architecture and AI-assisted development

Jucart started as a private shopping list to replace the whiteboard on the fridge: add products and cross them off without friction. From that small need it grew in layers: offline use for shopping, Supabase to share it across devices and a ticket inbox that Codex processes to extract lines and build price history. The tool keeps a simple interface while adding automation and price history.

  • A household need turned into a product.
  • Offline first with Dexie and IndexedDB.
  • Shared synchronisation with Supabase.
  • Tickets and prices processed with Codex.
  • React
  • TypeScript
  • Vite
  • SCSS Modules
  • Dexie
  • Supabase
  • PWA
  • Codex
  • Playwright

Social product in production

Music Bingo

Product, full-stack architecture and real-time experience

Mobile web app for running in-person music bingo games. Hosts import songs from text, CSV or Spotify, share a code or QR, and announce each track; players use digital cards on their phones. Convex holds shared game state and validates marks, lines and bingo claims. Spotify can control playback when an account is connected, while the music itself plays outside the app.

  • Separate host and player experiences.
  • Shared room with a six-character code and QR.
  • Deterministic 3 × 4 cards and authoritative state in Convex.
  • Optional Spotify integration to import and announce songs.
  • Next.js
  • React
  • TypeScript
  • Convex
  • Spotify API
  • Vitest
  • Playwright

Local and community digital platform

Palomares del Campo

Product, full-stack architecture and frontend development

Editorial website and interactive experiences for Palomares del Campo. News, municipal notices and routes are generated as static pages; Leaflet and OpenStreetMap provide maps and GPX routes, while Three.js scenes load on demand with a fallback. Convex provides remote state for a geolocated game and moderated “Palomareños por el mundo” submissions, without making editorial content depend on the backend.

  • Static editorial content, independent from remote services.
  • Maps with Leaflet, OpenStreetMap and GPX routes.
  • Optional Three.js scenes with on-demand loading and a fallback.
  • Geolocated game and community submissions with remote moderation.
  • Game coordinates and radii are identified as provisional.

Private family product

Irati

Product, architecture and AI-assisted development

Irati began when my daughter was born: I wanted to stop scattering her information across folders, documents and different apps. It started with a profile, weight tracking and a vaccine calendar; later it absorbed a travel checklist that had lived in TickTick. When connectivity proved unreliable at the paediatrician, it evolved into an offline-first PWA. Most of the project has been built by talking with Codex, resuming context and moving in phases as new needs appeared.

  • Centralising family information in one place.
  • Weight tracking and vaccine calendar.
  • Travel checklist brought over from TickTick.
  • Offline first for use at the paediatrician.
  • Next.js
  • React
  • TypeScript
  • Supabase
  • Dexie
  • Serwist
  • Codex
  • Vitest

Personal and family product

Curvas de crecimiento infantiles

Product, frontend architecture and development

Web application for recording children's measurements and viewing their progress against WHO growth references. It began as a fork of child-growth-charts and continues as an active family tool, tested with families in our circle. Data stays in the browser, with no accounts or server.

  • Local data, with no accounts or server.
  • WHO growth references.
  • Continuous testing with families in our circle.
  • Fork and continuation of child-growth-charts by Frederik Leonhardt.
  • TypeScript
  • Mithril
  • Chartist
  • Webpack
  • Sass
  • localStorage
  • WHO

Professional website with CMS

Borch Gómez

Frontend architecture, content and deployment

Professional website for an audiovisual creator, built with Astro, SCSS and vanilla JavaScript. The project separates content, domain and infrastructure, integrates Sanity as an optional CMS and keeps local fallbacks to guarantee stable builds and safe Vercel deployments.

Professional website draft

Bárbara Núñez Osteópata

Technical base, frontend design and deployment setup

Draft professional website built with Astro, TypeScript and SCSS. The base is prepared for static deployment on Vercel and covers technical SEO, canonical URLs, Open Graph, sitemap, robots, an evolving roadmap and work tracking.

Shared management mobile application

Loto Sync

Product, frontend, API and data model

Mobile web application for shared lottery ticket management, groups, receipts, results and prize-pool movements. Built with Next.js, TypeScript, Prisma, Postgres and file storage, with an internal API for tickets, results, prizes and backups.

Private multipage course

Preparación al parto

Static architecture, content and navigation

Private static website for organizing birth-preparation notes as a multipage course. Built with Astro and Markdown, it generates lesson pages, an aggregated full-reading version and LLM-ready content, with progressive navigation, security headers and static deployment on Vercel.

Public data application

Gas Price Finder

Frontend, serverless API and data integration

Fuel price finder built with Svelte and Vite, with a serverless API on Vercel, daily client and server caching, clean layered architecture and installable app support. The project integrates external data and handles HTTP/TLS communication details with a public upstream.

Personal CLI tool

OneDrive File Sync

API integration, synchronization and local automation

TypeScript CLI tool for syncing a local file with OneDrive through Microsoft Graph. Designed for cron usage, local OAuth and permissions scoped to the App Folder, with a simple last-modified conflict strategy.

  • TypeScript
  • Microsoft Graph
  • OAuth
  • Node.js
  • CLI

Mobile-first mini webapp

Kamikazes Events

Frontend, API and swappable persistence

Mobile-first mini webapp for voting event dates, built with Next.js, TypeScript, React Day Picker and swappable persistence between Vercel KV and a local mock. It includes a server-only API, validations, ordered results and a simple storage abstraction.

  • Next.js
  • TypeScript
  • Vercel KV
  • React Day Picker

Unfinished institutional project

Ayuntamiento de Belmontejo

Web architecture, CMS, automation and quality

Institutional website proposal built with Astro and Decap CMS. Although the project did not go live, it left a technical base with editable content, automated municipal notices from an RSS feed, forms, Vercel deployment and a quality layer with ESLint, Prettier, Vitest, Playwright, visual snapshots, Sonar and pre-push hooks.

  • Astro
  • TypeScript
  • Decap CMS
  • Playwright
  • Vitest

Lit and collaboration project

BuyBuddies

Frontend architecture, TDD and Google Sheets integration

Collaborative shopping-list application built with TypeScript, Lit and Material Web Components. It uses Google Sheets as a configurable data source, a mock repository for development and a domain-oriented approach with TDD, Vercel deployment and optional Bugsnag observability.