feat(welcome): add Haru testimonial with Discord avatar (#577)

## Summary
- Update the existing **Haru** testimonial on the landing page with
their Discord feedback
- Use Haru's Discord avatar via a new optional `avatar` field on
testimonials (falls back to Gravatar when absent)
- Update the matching `es.json` translation

## Notes
The Discord CDN avatar degrades gracefully to the `Facehash` fallback if
the URL ever expires (Discord rotates the hash when a user changes their
avatar).
This commit is contained in:
Víctor Falcón 2026-06-22 11:10:43 +02:00 committed by GitHub
parent c75e834b89
commit b0e74fac2c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 4 deletions

View File

@ -2094,7 +2094,7 @@
"I found Whisper Money and instantly knew I needed it. I was stuck doing everything in a spreadsheet — a chore I kept putting off. This makes it effortless.": "Descubrí Whisper Money y supe al instante que lo necesitaba. Estaba haciéndolo todo en una hoja de cálculo, una tarea que acababa posponiendo siempre. Esto lo hace facilísimo.",
"Thank you so much for creating such a clean, simple app.": "Muchísimas gracias por crear una app tan limpia y sencilla.",
"Great project!": "¡Gran proyecto!",
"I love this project!": "¡Me encanta este proyecto!",
"I used to keep everything in a spreadsheet and it took forever — now I have my bank under control and add cash payments manually. Great work!": "Antes lo ponía todo en un Excel y me llevaba muchísimo tiempo; ahora tengo el banco controlado y los pagos en efectivo los añado manualmente. ¡Gran trabajo!",
"I'm genuinely happy using an open-source project with a real commitment to privacy — that's exactly what I want from a finance app.": "Estoy realmente contento usando un proyecto open-source con un compromiso real con la privacidad: es exactamente lo que quiero de una app de finanzas.",
"I can't wait to discover everything the app can do. Thank you — it must have taken a tremendous effort. Congratulations!": "Con muchas ganas de ir descubriendo todo lo que se puede hacer con la aplicación. ¡Gracias! Debe haber sido un esfuerzo tremendo. ¡Enhorabuena!",
"The app is intuitive, functional, and a real help for managing my finances day to day. What stands out most is how much the free version offers — it really shows your commitment to your users. Ill keep recommending it!": "La aplicación es intuitiva, funcional y de gran ayuda para gestionar mis finanzas en el día a día. Lo que más destaca es la cantidad de opciones de la versión gratuita: demuestra vuestro compromiso con los usuarios. ¡Seguiré recomendándola!",

View File

@ -1943,7 +1943,12 @@ export default function Welcome({
const planEntries = Object.entries(pricing.plans);
const { isMobile } = usePwaInstall();
const testimonials = [
const testimonials: {
name: string;
gravatar: string;
text: string;
avatar?: string;
}[] = [
{
name: 'Brian Bansuela',
gravatar: '9314f776a17ae977871076ac71f2ff60',
@ -1994,7 +1999,10 @@ export default function Welcome({
{
name: 'Haru',
gravatar: '3e52d6b2cbefb0fa2a572a588b3f7953',
text: __('I love this project!'),
avatar: 'https://cdn.discordapp.com/avatars/313325435687534594/4c5f74503bfc5942732c5c9d415ed255.webp?size=128',
text: __(
'I used to keep everything in a spreadsheet and it took forever — now I have my bank under control and add cash payments manually. Great work!',
),
},
{
name: 'Tom',
@ -2582,7 +2590,10 @@ export default function Welcome({
<div className="flex items-center gap-3">
<Avatar className="size-10">
<AvatarImage
src={`https://www.gravatar.com/avatar/${testimonial.gravatar}?s=160&d=404`}
src={
testimonial.avatar ??
`https://www.gravatar.com/avatar/${testimonial.gravatar}?s=160&d=404`
}
alt={
testimonial.name
}