Skip to content

Front-end developer · Tarragona

Ignasi
Capella

I design the interface and then I build it. Two published sites in Astro and JavaScript, and both are open to inspection and measurement right now.

Available now · Remote or hybrid · On-site in Tarragona, Spain

What I use

  • Astro
  • TypeScript
  • JavaScript
  • HTML semántico
  • CSS moderno
  • Accesibilidad WCAG 2.2 AA
  • Rendimiento y Core Web Vitals
  • Internacionalización
  • SEO técnico
01

Projects

Two published sites. Both can be opened, measured and audited.

Velàlia’s home page in dark mode: the name set in a roman typeface over a field of wind drawn in night blue, with the buttons to book a table and see the menus, and a compass rose in the corner.
Concept

Velàlia

Fine-dining restaurant · Three languages

The website of a restaurant at this level almost always fails the same way: the menu is a PDF that is unreadable on a phone, the allergens are not spelled out, booking is handled by someone else’s widget that loads late and brings cookies, and it is all in one language on a coast where half the table does not speak Spanish.

53 KB
the home page, over 4 requests and without a single image
0
axe-core violations across 6 pages × 5 environments
3
languages with translated routes, not just prefixed ones
DoesItLast’s home page: the headline “Don’t throw it out yet”, the food search box and the grid of the most-looked-up foods.
Own product In production

DoesItLast

Food storage guide · English and Spanish

Working out whether something that has been in the fridge for days is still edible ends up in forums that contradict each other. The reliable information is public — FDA and USDA — but it lives in documents nobody opens with the fridge door open.

166
foods published in English and Spanish
369
static, indexable URLs in the sitemap
0
accounts, cookies and third-party requests
02

How I work

Four claims and, next to each one, the number that holds it up. Without a number there would be no row.

  1. 01

    Accessibility

    Not a box ticked at the end. axe-core runs over every page in four environments — mobile and desktop, with normal and reduced motion — and the page list comes from the compiled sitemap, so what gets audited is what gets published, not a list someone has to remember to update.

    Measured Velàlia: 0 violations across 6 pages × 5 environments. This site: 0 across 7 × 4.

  2. 02

    Performance

    The budget is decided before writing, not optimised afterwards. No framework in the browser, no animation library, and not a single third-party request. What you never send, you never have to optimise.

    Measured This site: 6 requests and 59 KB uncompressed, 1.3 s LCP on mobile, 0 CLS. Velàlia: 53 KB with no images at all.

  3. 03

    Internationalisation

    Translated routes, not prefixed ones: in English this case lives at /en/projects/velalia, not /en/proyectos/velalia. One lookup table feeds the language switcher, the reciprocal hreflang tags and the sitemap, so they cannot drift apart.

    Measured Velàlia in three languages across 13 pages. DoesItLast in two, with 166 entries in each.

  4. 04

    Technical SEO

    One static, indexable page for every thing somebody might search for, each with its canonical URL, its structured data and its sitemap entry. What people type into a search box is a specific question, and it has to land on the answer, not on an empty search box.

    Measured DoesItLast: 369 URLs in the sitemap, one per food and per language.

03

Stack

Grouped by what each thing is for. Everything on this list is in a project you can open: what is not, is not on it.

Building the interface

  • Astro
  • TypeScript
  • JavaScript
  • HTML semántico
  • CSS moderno

Making it work for everyone

  • Accesibilidad WCAG 2.2 AA
  • Rendimiento y Core Web Vitals
  • Internacionalización
  • PWA y sin conexión

Making it findable

  • SEO técnico
  • Datos estructurados
  • AVIF, WebP y srcset

Proving it

  • Playwright
  • axe-core
  • Lighthouse

Shipping

  • Cloudflare Pages
  • Cloudflare Functions
  • Git

What's not on that list

React and Node: I'm learning them, and they're not on the list above because I have nothing published with them yet. The next project in this portfolio will be in React.

04

About

I come from multimedia design. BSc in Multimedia from the UOC, finished in February 2025.

Along the way I stopped wanting to hand a design over for someone else to build. The same thing always gets lost between a design file and the browser — the detail — and the detail is the work: the focus ring nobody sees, the text that jumps when the font loads, the filter that stops working when one file fails to arrive. Those are not fixed in review; they are avoided by deciding them while building.

Since December 2021 I have worked remotely for Mitek Systems verifying identity documents: checking that a document is genuine, extracting its data and spotting what does not add up. It is not development. But it is four years of looking slowly at something that is almost right until you find what is wrong, which is exactly what reviewing an interface is.

Education
BSc in Multimedia
Universitat Oberta de Catalunya (UOC) · February 2025
Experience
Manual document reviewer
Mitek Systems · Remote · 2021—
Languages
Spanish (Native) · Catalan (Native) · English (B2 certified) · German (A2)
Location
Tarragona, Spain

Download CV

05

Contact

Write to me and I will reply.