Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
ed0170a
i18n updates (ru-RU) (#1369)
cheeaun Nov 26, 2025
6337941
i18n updates (de-DE) (#1370)
cheeaun Nov 26, 2025
448382f
i18n updates (de-DE,it-IT) (#1371)
cheeaun Nov 27, 2025
3b76dc2
Update changelog
cheeaun Nov 27, 2025
d20d106
Better copy for notes
cheeaun Nov 27, 2025
52c2f00
Experiment fix status bar color on iOS 26
cheeaun Nov 27, 2025
7f95b9e
Shorten restore limit
cheeaun Nov 28, 2025
5c3be09
Make PHANPY_WEBSITE default to no value
cheeaun Nov 28, 2025
5d054a8
Instant scroll for j/k nav
cheeaun Nov 29, 2025
15cd34d
It's time for ghost posts 👻
cheeaun Nov 29, 2025
9953581
Fix meta-theme-color not applied when > 40em
cheeaun Nov 29, 2025
36f2b58
i18n updates (ar-SA,ca-ES,cs-CZ,de-DE,es-ES,fi-FI,fr-FR,gl-ES,it-IT,p…
cheeaun Nov 29, 2025
f24dfeb
Pathetic attempt to make this work
cheeaun Nov 29, 2025
96e4977
Revert "Pathetic attempt to make this work"
cheeaun Nov 29, 2025
2295f03
Update README.md
github-actions[bot] Nov 30, 2025
f9d5d2d
i18n updates (ca-ES,eo-UY,es-ES,fi-FI) (#1376)
cheeaun Nov 30, 2025
5356e5b
Make sure annual report only appear on current year
cheeaun Dec 1, 2025
4e90ab5
Test comment out blind fix
cheeaun Dec 1, 2025
830e91c
Add copy on how to keep up
cheeaun Dec 1, 2025
6247c6b
Revert "Test comment out blind fix"
cheeaun Dec 1, 2025
dedfe86
Smart sub-menu direction based on menu's width
cheeaun Dec 1, 2025
30b1d76
Quick copy when click
cheeaun Dec 1, 2025
206dd14
i18n updates (it-IT) (#1377)
cheeaun Dec 1, 2025
56e62a8
Try show audio's image
cheeaun Dec 2, 2025
19179e1
i18n updates (fi-FI) (#1380)
cheeaun Dec 3, 2025
dc4f885
i18n updates (gl-ES) (#1381)
cheeaun Dec 3, 2025
49311d3
Test set canonical link
cheeaun Dec 2, 2025
04f061e
Upgrade deps
cheeaun Dec 3, 2025
69cf879
Fix register application failing
cheeaun Dec 3, 2025
bed1b96
i18n updates (pl-PL) (#1382)
cheeaun Dec 4, 2025
b577103
Fix var fallback not working
cheeaun Dec 4, 2025
17d29c4
Fix favicon for compose page
cheeaun Dec 4, 2025
4622c44
i18n updates (eu-ES) (#1385)
cheeaun Dec 5, 2025
2e3a73a
Update README.md
github-actions[bot] Dec 7, 2025
7957f4b
i18n updates (eu-ES,fi-FI) (#1386)
cheeaun Dec 7, 2025
a34d898
Allow larger QPs
cheeaun Dec 5, 2025
d23a45b
Oops, forgot useLingui here
cheeaun Dec 7, 2025
e001cb8
Quote chain and shallow quote
cheeaun Dec 7, 2025
175bac7
Locale file update
cheeaun Dec 7, 2025
5a54ebf
Fix biome not supporting timeline-range-name yet
cheeaun Dec 7, 2025
2af00ed
i18n updates (ar-SA,ca-ES,cs-CZ,de-DE,eo-UY,es-ES,eu-ES,fa-IR,fi-FI,f…
cheeaun Dec 7, 2025
fd52f77
Handle empty state for custom emojis modal
cheeaun Dec 7, 2025
c649324
i18n updates (ar-SA,ca-ES,cs-CZ,de-DE,eo-UY,es-ES,eu-ES,fa-IR,fi-FI,f…
cheeaun Dec 7, 2025
2ba3628
i18n updates (ca-ES,es-ES,fi-FI,zh-CN) (#1390)
cheeaun Dec 7, 2025
f0ce018
Try report bundle sizes
cheeaun Dec 8, 2025
6a86036
Thanks biome
cheeaun Dec 8, 2025
44955ac
Let's try GITHUB_OUTPUT instead
cheeaun Dec 8, 2025
be0e2ad
Let's try again
cheeaun Dec 8, 2025
7e31d3e
Debugging what is happening inside github actions
cheeaun Dec 8, 2025
e019ad8
Possible fix
cheeaun Dec 8, 2025
5d55cd9
Use latest version of actions
cheeaun Dec 8, 2025
5ccf386
Another attempt
cheeaun Dec 8, 2025
7aa6f32
Add present to LICENSE
cheeaun Dec 8, 2025
4f9e4c0
Migrate from moize to micro-memoize
cheeaun Dec 8, 2025
4021dd8
Fix backdrop hiding the background "page"
cheeaun Dec 9, 2025
e7b46d3
Biome is doing a good job
cheeaun Dec 9, 2025
4efdc9d
Experiment switch to quote icon
cheeaun Dec 9, 2025
7083300
Add experimental Web Install API
cheeaun Dec 10, 2025
1ff7e57
i18n updates (ar-SA,ca-ES,cs-CZ,de-DE,es-ES,eu-ES,fi-FI,fr-FR,gl-ES,i…
cheeaun Dec 10, 2025
d6967cf
i18n updates (fi-FI,gl-ES) (#1393)
cheeaun Dec 10, 2025
cfb01d3
Add new link to woodpeckersnest.space instance
roughnecks Dec 10, 2025
d26686b
Merge pull request #1394 from roughnecks/wpn-public-instance
cheeaun Dec 10, 2025
4c8132d
Remove auto-copy URL
cheeaun Dec 11, 2025
21300a8
i18n updates (es-ES,it-IT,pl-PL) (#1395)
cheeaun Dec 12, 2025
7670cbe
Update README.md
github-actions[bot] Dec 14, 2025
a4e1d9f
Add search menu and buttons for profiles
cheeaun Dec 15, 2025
764d70d
Fix .clear not working
cheeaun Dec 16, 2025
d5952d2
i18n updates (ar-SA,ca-ES,cs-CZ,de-DE,eo-UY,es-ES,eu-ES,fa-IR,fi-FI,f…
cheeaun Dec 16, 2025
a03635b
i18n updates (ca-ES,es-ES,fi-FI,gl-ES,pl-PL) (#1397)
cheeaun Dec 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .env
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
PHANPY_CLIENT_NAME=Phanpy
PHANPY_WEBSITE=https://phanpy.social
PHANPY_LINGVA_INSTANCES="lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud"
PHANPY_PRIVACY_POLICY_URL="https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD"
PHANPY_TRANSLANG_INSTANCES="translang.phanpy.social"
32 changes: 32 additions & 0 deletions .github/workflows/bundle-size.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Bundle Size Report

on:
pull_request:
branches: [production]

permissions:
pull-requests: write

jobs:
bundle-size:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
cache: "npm"
- run: npm ci
- name: Build and extract bundle sizes
run: npm run build:sizes --silent > bundle-sizes.md
- name: Debug - show file content
run: |
echo "File size:"
wc -l bundle-sizes.md
echo "First 20 lines:"
head -20 bundle-sizes.md
- name: Comment on PR
uses: marocchino/sticky-pull-request-comment@v2
with:
header: bundle-size
path: bundle-sizes.md
6 changes: 4 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,11 +383,13 @@ Recap: Mastodon v4.3 features (https://github.com/mastodon/mastodon/releases/tag
- 💬 Slightly more support for Mastodon v4.5's native quote posts
- 🐛 Bug fixes

## Next
## November 26, 2025

📢 https://mastodon.social/@cheeaun/115616195859103739

- 🤳 QR code for profiles and shortcuts settings
- 🔃 Import/export accounts
- 📸 Extract description from attached images
- 📸 Extract description from attached image metadata
- 🐛 Bug fixes

<!--
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2023 Lim Chee Aun
Copyright (c) 2023-present, Lim Chee Aun

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
19 changes: 16 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ Available variables:
- App title, when installed as PWA, shown in the Home screen, macOS dock, Windows taskbar, etc
- OpenGraph card title, when shared on social networks
- Client name, when [registering the app for authentication](https://docs.joinmastodon.org/client/token/#app) and shown as client used on posts in some apps/clients
- `PHANPY_WEBSITE` (optional but recommended, default: `https://phanpy.social`) affects:
- `PHANPY_WEBSITE` (optional but recommended, no defaults) affects:
- Canonical URL of the website
- OpenGraph card URL, when shared on social networks
- Root path for the OpenGraph card image
Expand Down Expand Up @@ -300,6 +300,17 @@ Try online search for "how to self-host static sites" as there are many ways to

See documentation for [translang-api](https://github.com/cheeaun/translang-api).

### Keeping up with releases

1. 👀 Watch this repo for releases.
2. 🛜 Subscribe to the feed: https://github.com/cheeaun/phanpy/releases.atom
3. 👉 Follow [Phanpy](https://hachyderm.io/@phanpy) on Mastodon.
4. ➡️ Query JSON:
- Production: https://phanpy.social/version.json
- Development: https://dev.phanpy.social/version.json

Changelog available here: [CHANGELOG.md](CHANGELOG.md)

## Community deployments

These are self-hosted by other wonderful folks.
Expand All @@ -321,6 +332,7 @@ These are self-hosted by other wonderful folks.
- [phanpy.vmst.io](https://phanpy.vmst.io/) by [@[email protected]](https://vmst.io/@vmstan)
- [phanpy.linuxusers.in](https://phanpy.linuxusers.in) by [@[email protected]](https://linuxusers.in/dharmik)
- [phanpy.blablalinux.be](https://phanpy.blablalinux.be) by [@[email protected]](https://mastodon.blablalinux.be/@blablalinux)
- [fedi.woodpeckersnest.space](https://fedi.woodpeckersnest.space) by [@[email protected]](https://social.woodpeckersnest.space/@roughnecks)

> Note: Add yours by creating a pull request.

Expand Down Expand Up @@ -365,6 +377,7 @@ Costs involved in running and developing this web app:
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16528627/medium/9036f6eced0257f4e1ea4c5bd499de2d_default.png" alt="" width="16" height="16" /> ElPamplina (Spanish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/15592209/medium/28f10212dce24e74c25e27ea6d0e9126.png" alt="" width="16" height="16" /> filipesmedeiros (Portuguese)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/14277386/medium/29b30d2c73a214000e3941c9978f49e4_default.png" alt="" width="16" height="16" /> Fitik (Esperanto, Hebrew)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/15791971/medium/1790a2101ceb13f61816b8fe6fbe6d90.jpeg" alt="" width="16" height="16" /> fracl (Italian)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/14444512/medium/99d0e7a3076deccbdfe0aa0b0612308c.jpeg" alt="" width="16" height="16" /> Freeesia (Japanese)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/15777621/medium/9e3409aac9c20973984440aa1542b260_default.png" alt="" width="16" height="16" /> gflorian (German)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/12617257/medium/7a0122f352a94d95be10780bb83f63ef.jpg" alt="" width="16" height="16" /> ghose (Galician)
Expand All @@ -373,7 +386,6 @@ Costs involved in running and developing this web app:
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/13454728/medium/1f78b7124b3c962bc4ae55e8d701fc91_default.png" alt="" width="16" height="16" /> isard (Catalan)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16646485/medium/5d76c44212a4048a815ab437fb170856_default.png" alt="" width="16" height="16" /> kaliuwu (Polish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16532403/medium/4cefb19623bcc44d7cdb9e25aebf5250.jpeg" alt="" width="16" height="16" /> karlafej (Czech)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/15791971/medium/1790a2101ceb13f61816b8fe6fbe6d90.jpeg" alt="" width="16" height="16" /> katullo11 (Italian)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/14677260/medium/e9f17e62ab69ed6212a16c94d779e7f3.png" alt="" width="16" height="16" /> Kytta (German)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16529521/medium/ae6add93a901b0fefa2d9b1077920d73.png" alt="" width="16" height="16" /> llun (Thai)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16291756/medium/a662122faa4f9a71b259b0e561f923b4.png" alt="" width="16" height="16" /> lucsdev24 (Occitan, Portuguese, Portuguese, Brazilian)
Expand All @@ -389,6 +401,7 @@ Costs involved in running and developing this web app:
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/13613969/medium/c7834ddc0ada84a79671697a944bb274.png" alt="" width="16" height="16" /> moreal (Korean)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/14158861/medium/ba1ff31dc5743b067ea6685f735229a5_default.png" alt="" width="16" height="16" /> MrWillCom (Chinese Simplified)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/15652333/medium/7f36f289f9e2fe41d89ad534a1047f0e.png" alt="" width="16" height="16" /> nclm (French)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/17450186/medium/6f5768f64963379c7ddfdccd53572c60.jpeg" alt="" width="16" height="16" /> NiklasA95 (German)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/15000639/medium/ebbf0bb7d5027a1903d11b7f5f34f65b.jpeg" alt="" width="16" height="16" /> nycterent (Lithuanian)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16539461/medium/2f41b9f0b802c1d200a6ab62167a7229_default.png" alt="" width="16" height="16" /> pazpi (Italian)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/13954917/medium/56a2cba267eb1b5d122bf62ddc0dd732_default.png" alt="" width="16" height="16" /> PPNplus (Thai)
Expand All @@ -414,7 +427,7 @@ Costs involved in running and developing this web app:
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16236470/medium/315b1ebbd38e0f7e41d44bee752afa33.jpg" alt="" width="16" height="16" /> Usia (Ukrainian)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16791511/medium/13af704ac9b4ce8350cd2dc6b823d050.jpg" alt="" width="16" height="16" /> uzaylul (Turkish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/14427566/medium/ab733b5044c21867fc5a9d1b22cd2c03.png" alt="" width="16" height="16" /> Vac31. (Lithuanian)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16026914/medium/4f2a96210b76cbc330584cfdd01fabc4_default.png" alt="" width="16" height="16" /> valtlai (Finnish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16026914/medium/35f400b0799c35e8e5f4556a7fa63544.jpg" alt="" width="16" height="16" /> valtlai (Finnish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16608515/medium/85506c21dce8df07843ca11908ee3951.jpeg" alt="" width="16" height="16" /> vasiriri (Polish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16355626/medium/a10a29f0016c6beb94e8219d50e8b8d7.jpeg" alt="" width="16" height="16" /> voitech (Polish)
- <img src="https://crowdin-static.cf-downloads.crowdin.com/avatar/16563757/medium/af4556c13862d1fd593b51084a159b75_default.png" alt="" width="16" height="16" /> voyagercy (Chinese Traditional)
Expand Down
1 change: 1 addition & 0 deletions biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"scripts/**/*.js",
"!wrangler.jsonc",
"!i18n-volunteers.json",
"!src/components/quote-chain-modal.css",
"!!**/.git",
"!!**/dist",
"!!**/node_modules"
Expand Down
2 changes: 1 addition & 1 deletion compose/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Compose / %PHANPY_CLIENT_NAME%</title>
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
<meta name="color-scheme" content="light dark" />
<meta name="google" content="notranslate" />
</head>
Expand Down
2 changes: 1 addition & 1 deletion env.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
},
"PHANPY_WEBSITE": {
"type": "string",
"default": "https://phanpy.social",
"format": "uri",
"examples": ["https://phanpy.social", "https://dev.phanpy.social"],
"description": "Canonical URL of the website, affects OpenGraph card URL and client URL for authentication"
},
"PHANPY_PRIVACY_POLICY_URL": {
Expand Down
11 changes: 0 additions & 11 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
<meta name="apple-mobile-web-app-title" content="%PHANPY_CLIENT_NAME%" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<link rel="canonical" href="%PHANPY_WEBSITE%" />
<meta
name=""
data-theme-setting="manual"
Expand Down Expand Up @@ -50,16 +49,6 @@
/>
<meta name="google" content="notranslate" />
<link rel="me" href="https://hachyderm.io/@phanpy" />

<!-- Metacrap https://broken-links.com/2015/12/01/little-less-metacrap/ -->
<meta property="twitter:card" content="summary_large_image" />
<meta property="og:url" content="%PHANPY_WEBSITE%" />
<meta property="og:title" content="%PHANPY_CLIENT_NAME%" />
<meta
property="og:description"
content="Minimalistic opinionated Mastodon web client"
/>
<meta property="og:image" content="%PHANPY_WEBSITE%/og-image-2.jpg" />
</head>
<body>
<div id="app"></div>
Expand Down
Loading
Loading