Bono Alquiler Joven: a rental grant in plain language

An independent bilingual guide that turns an official grant call into a few clear questions

Date

2026

What I did

Product design

Front-end development

Civic tech

The Bono Alquiler Joven is a rental grant from the Comunitat Valenciana. Its requirements live across official bulletins, annexes and corrections. This project turns them into a short guided check, in Spanish and Valencian, so a young tenant can see whether the grant likely applies to them and what to prepare. It is orientation, never an official decision.

Early stop screen of the Bono Alquiler Joven check: a notice says the answer does not meet the 2026 conditions, with the reason, the official source and two buttons
If an answer rules you out, it stops there and says why, with the official source.

What it does

  • Two guided paths: /pedir (check whether you meet the requirements) and /tengo (justify a grant already awarded), plus /sobre (about the project) and /mapa (service map).
  • Fully bilingual, Spanish and Valencian ("Bo Lloguer Jove"), with all copy in message files and errors shown in the active language.
  • It only asks the questions that apply to each situation. Numeric fields reject negatives and the rent must be above zero.
  • The final summary is generated on the device as a text file.
The check, one question at a time, until an answer rules the grant out.

Rules as code

  • The eligibility logic lives in a rules module independent from the interface: questions, conditions and evaluation, with its own tests covering rules, conditional questions and numeric validation.
  • The rules are transcribed from the 2026 call as published in the DOGV (bases, annexes and later corrections), so each condition traces back to its source.
  • Municipality and zone data comes from the same official sources, including the municipalities affected by the DANA.

Privacy by default

  • No backend, no cookies and nothing is sent anywhere: answers live in sessionStorage, so they survive a reload and disappear when the tab closes. The language preference is the only localStorage key and it holds no answers.
  • The site is served with noindex, nofollow and a blocking robots.txt: it is meant to be shared directly, not found through search.
  • Analytics are limited to anonymous aggregate visits (page, origin, device, country) with URL parameters stripped. Answers and amounts are never sent.

Stack and accessibility

  • Static React + Vite single-page app, Tailwind CSS 4, shadcn/ui over Radix, Lucide icons, and Instrument Sans self-hosted.
  • Touch targets of at least 44 px, visible focus, keyboard-friendly municipality search that ignores accents, prefers-reduced-motion support, and a green accent used only with dark text.
  • Live at bono-alquiler-joven.vercel.app.

Maintenance

  • The rules change with every call, so the guide has to be updated or retired for each new one. The sources to re-check (bases, corrections, municipality lists, fiscal periods and dates) are listed in the repository README, and the individual resolution always prevails when justifying a grant.

More projects