Commit Graph

429 Commits

Author SHA1 Message Date
Rui Saraiva
60d571fe11
chore: update Rui's avatar
Resized from a 512x512 source to 112x112, the size the other two use and
twice the 56px it renders at.

The circle is baked into the file, not applied by CSS — the component sets
no border-radius at all, and the existing avatars are pre-masked with fully
transparent corners. A plain square resize rendered as a square next to two
circles, so the mask is composited in with dest-in.

PNG with palette quantisation: 8.3 KB against 28.6 KB for straight RGBA,
with no difference visible at 3x magnification on either the face or the
masked edge. That also puts it under the 13.1 KB the other two weigh.
2026-07-26 14:49:20 +01:00
Rui Saraiva
135c260189
feat(seo): add a canonical link and a sitemap
favycon.app has no DNS records at all, so favycon.vercel.app is the only
hostname this site answers on and the canonical is unambiguous. It uses the
SITE_URL constant, so it cannot disagree with og:url.

The sitemap is a single static URL. Its loc is written without a trailing
slash to match the canonical string exactly — the two forms are the same
URL per RFC 3986, but nothing here forces them to differ, so they don't.
No lastmod: a hand-maintained file would claim a freshness it can't know.

robots.txt gains the Sitemap line and a note that /api/favycon is POST-only
and answers a GET with 405. It stays out of the disallow list deliberately:
a 405 tells a crawler more than a rule it has to fetch robots.txt to find.
2026-07-26 14:39:13 +01:00
Rui Saraiva
74275a31a7
chore: use the alias address and the current role
The package author email was a Gmail address. The site already contacts
through hello@ruisaraiva.dev, an alias forwarded to that inbox, and the
point of the alias is that a published field can be rotated without
touching the real mailbox — so the package field uses it too.

The credits still described Rui as a Full-Stack Developer, which was true
when the tool was built in 2020. Augusto's and Miguel's roles are left as
they are.
2026-07-26 14:38:40 +01:00
Rui Saraiva
78c9508195
feat(seo): declare the author and add llms.txt
The about modal is lazily mounted, so the credits and contact address are
not in the server-rendered HTML and no crawler ever sees them. Authorship
therefore goes in the head, where it is always present: a meta author, a
rel=author link to ruisaraiva.dev, and SoftwareApplication JSON-LD.

The structured data names Rui as author and Augusto and Miguel as
contributors, because the modal credits three people and the markup should
not tell a machine a tidier story than the page tells a reader.

Also adds public/llms.txt: accepted input formats, the 310px and 512px
minimums, and exactly what the zip contains, including that favicon.svg
only appears for SVG input and manifest.json only with the PWA option. It
is written from utils/favicon.ts and the route handler rather than from
memory. Note it is a static file, so it is the one thing here that can
drift from the sizes it documents.

Two hardcoded favycon.vercel.app strings become the SITE_URL constant the
rest of the file now uses.
2026-07-26 14:31:52 +01:00
Rui Saraiva
3588ab0506
feat: link the author credit to a website and update the contact address
Two changes to the about modal, in the same file:

Rui's credit pointed at a Twitter handle and now points at ruisaraiva.dev,
with a globe icon. Augusto keeps Twitter and Miguel keeps GitHub, so the
link type is now one of three rather than a binary — hence a small lookup
instead of a second ternary in the JSX. The icon is drawn from circle,
line and ellipse primitives rather than path data, so the geometry is
exact.

Because the globe is stroked where the GitHub mark is filled, the
dark-mode rule for it has to set stroke rather than fill. Both were
checked in both themes.

The subtitle said "follow these guys on Twitter", which only one of the
three links now is, so it drops the platform.

The contact address moves from hello@favycon.app, which is no longer in
use, to hello@ruisaraiva.dev.
2026-07-26 14:31:52 +01:00
Rui Saraiva
0705e4e404
chore: upgrade Node and sharp dependency (#484) 2024-11-30 18:17:07 +00:00
Rui Saraiva
a2d70d783f
fix: remove initial background flash 2022-07-07 11:29:08 +01:00
Rui Saraiva
37a1af5f35
Merge pull request #482 from ruisaraiva19/develop 2022-07-07 08:38:55 +01:00
Rui Saraiva
04a34e04c2
chore(deps): upgrade dependencies 2022-07-07 08:26:00 +01:00
Rui Saraiva
a82367ed0c
fix: update security headers 2021-12-12 22:30:29 +00:00
Rui Saraiva
4e756a4b91
fix: update security headers 2021-12-12 22:25:15 +00:00
Rui Saraiva
c28c95300f
fix: update security headers 2021-12-12 22:23:06 +00:00
Rui Saraiva
48e242eb3c
fix: update security headers 2021-12-12 22:13:36 +00:00
Rui Saraiva
e56b36c158
feat: add security headers 2021-12-12 22:07:05 +00:00
Rui Saraiva
612fe2e58e
Merge branch 'develop' 2021-12-05 00:40:21 +00:00
Rui Saraiva
02a0834df4
feat: add custom Splitbee events 2021-12-05 00:34:47 +00:00
Rui Saraiva
b7bbd09335
Merge branch 'develop' 2021-12-04 23:53:46 +00:00
Rui Saraiva
138fe96a49
feat: upgrade react-use-gesture to @use-gesture/react 2021-12-04 23:45:43 +00:00
Rui Saraiva
f01116e55c
feat: use Next.js Image component 2021-12-04 23:43:26 +00:00
Rui Saraiva
a4c638c9bc
Merge branch 'develop' 2021-12-04 18:50:18 +00:00
Rui Saraiva
ad824518d8
feat: replace GA with Splitbee 2021-12-04 18:49:55 +00:00
Rui Saraiva
971430485a
Merge branch 'develop' 2021-12-04 18:40:47 +00:00
Rui Saraiva
f19f9ef112
chore: update seo meta tags 2021-12-04 18:40:16 +00:00
Rui Saraiva
b82734dc7c
Merge branch 'develop' 2021-12-04 18:36:59 +00:00
Rui Saraiva
785563a71c
feat: upgrade dependencies (#480)
* feat: upgrade dependencies

* chore: update linter and CI workflows

* chore: upgrade browserslist
2021-12-04 18:32:53 +00:00
Rui Saraiva
8fc9a5b35d Merge branch 'develop' 2021-07-13 01:09:02 +01:00
Rui Saraiva
6c6d4f6e63 chore: update contributors count 2021-07-13 01:01:04 +01:00
Rui Saraiva
9000eabe85 docs: remove netlify from README 2021-07-13 00:59:41 +01:00
Rui Saraiva
0492a8ec4d feat: upgrade dependencies 2021-07-13 00:56:37 +01:00
Rui Saraiva
089cb33e65 Merge branch 'develop' 2021-07-13 00:06:51 +01:00
Rui Saraiva
f73222ab2b chore: add FUNDING 2021-07-13 00:06:16 +01:00
renovate[bot]
5128fce83f
fix(deps): update dependency next to v10.0.8 (#462)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-13 16:35:51 +00:00
renovate[bot]
9c60f22183
chore(deps): update node.js to v14.16.0 (#460)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-13 16:34:05 +00:00
dependabot[bot]
f0bf4037ee
chore(deps): bump elliptic from 6.5.3 to 6.5.4 (#467)
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-13 16:33:40 +00:00
renovate[bot]
39bcf433bc
chore(deps): update commitlint monorepo to v12 (#466)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-03-13 16:33:31 +00:00
Rui Saraiva
6b484be634
Merge pull request #446 from ruisaraiva19/develop
chore: release
2021-02-07 19:26:51 +00:00
Rui Saraiva
d71ff13353
Merge branch 'main' into develop 2021-02-07 12:39:15 +00:00
Rui Saraiva
b72b8fe267
fix(deps): upgrade dependencies (#433)
* fix(deps): upgrade dependencies

* chore(deps): upgrade dependencies

* feat(images): add blur hash placeholders

* ci(engines): remove engines property
2021-02-07 12:38:22 +00:00
Rui Saraiva
78d321d7d6
chore(node): upgrade Node.js to v14 (#432) 2021-01-24 14:40:37 +00:00
renovate[bot]
f57d19844d
fix(deps): update dependency preact to v10.5.11 (#419)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-24 10:32:02 +00:00
renovate[bot]
632a2dc0cc
chore(deps): update dependency eslint-plugin-react to v7.22.0 (#418)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-24 10:31:51 +00:00
renovate[bot]
66759aa1c5
chore(deps): update dependency sass to v1.32.5 (#417)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-24 10:31:34 +00:00
renovate[bot]
b4108703b4
chore(deps): update typescript-eslint monorepo to v4.14.0 (#414)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-24 10:30:48 +00:00
renovate[bot]
4dfe920422
chore(deps): update dependency start-server-and-test to v1.11.7 (#413)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-24 10:30:31 +00:00
renovate[bot]
9e4e2fe77e
chore(deps): update dependency @types/node to v14.14.22 (#412)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-01-24 10:30:20 +00:00
renovate[bot]
fb9796f198
chore(deps): update dependency eslint-config-prettier to v7.1.0 (#409)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-25 18:33:03 +00:00
renovate[bot]
8231a9baf4
chore(deps): update typescript-eslint monorepo to v4.11.0 (#410)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-25 18:01:17 +00:00
renovate[bot]
329145574c
chore(deps): update dependency eslint to v7.16.0 (#408)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-25 18:00:49 +00:00
renovate[bot]
4dcf9ab254
fix(deps): update dependency @prefresh/next to v1.4.4 (#407)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-25 18:00:38 +00:00
renovate[bot]
b8bac0e3fc
chore(deps): update dependency @types/node to v14.14.14 (#406)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2020-12-18 20:34:34 +00:00