Skip to content
Draft
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
adc8681
feat(astro): scaffold app
tnagorra Jul 10, 2026
2fd437b
feat(astro): port pages, components, i18n
tnagorra Jul 10, 2026
0e196c1
feat(astro): remote-image pipeline + hydration dedup
tnagorra Jul 10, 2026
ae5bb30
feat(blogs): co-locate images with content
tnagorra Jul 10, 2026
8f591e1
chore(locales): drop stale *_old.json
tnagorra Jul 10, 2026
43e21b9
feat(data): incremental fetch-data
tnagorra Jul 10, 2026
51f1561
feat(astro): restore incremental layer; fix activation + sitemap bugs
tnagorra Jul 10, 2026
51ef370
docs(upstream): issue refs in shim headers
tnagorra Jul 10, 2026
6d986d6
feat(packages): astro-hydration-dedup
tnagorra Jul 11, 2026
42e040b
feat(packages): astro-remote-images
tnagorra Jul 11, 2026
646db34
feat(packages): astro-incremental-static
tnagorra Jul 11, 2026
d6d2904
docs(packages): index + backlinks
tnagorra Jul 11, 2026
78676a4
docs(astro): app README
tnagorra Jul 11, 2026
4eca1d1
style: comments explain why, not what
tnagorra Jul 11, 2026
f1ea592
style: reword to activation/checklist
tnagorra Jul 11, 2026
3811f14
refactor: move Astro app to repo root, remove Next app
tnagorra Jul 13, 2026
6255e43
fix: add favicon.ico
tnagorra Jul 13, 2026
b4cadfc
chore: restore docker dev setup
tnagorra Jul 13, 2026
e5805eb
chore(lint): eslint + stylelint + pre-commit for the Astro app
tnagorra Jul 13, 2026
ff59ce1
chore: switch to pnpm; drop workspaces
tnagorra Jul 13, 2026
46c38f5
fix(types): pass astro check; add typecheck script + hook
tnagorra Jul 13, 2026
717d3af
feat(scripts): verify-dist post-build checks
tnagorra Jul 13, 2026
5edb997
feat(data): fail-fast validation + translation-gap report
tnagorra Jul 13, 2026
046663a
chore: pin node >=22.18; docs for the new checks
tnagorra Jul 13, 2026
3d50bc1
test(e2e): playwright island smoke tests
tnagorra Jul 13, 2026
f06412e
docs: make readme + package references self-contained
tnagorra Jul 13, 2026
9778406
chore: rename docker service to astro; add editorconfig
tnagorra Jul 14, 2026
5b9d7af
feat(styles): restore the CSS Modules design system from main
tnagorra Jul 14, 2026
9cc5e44
perf(css): short hashed module class names in production
tnagorra Jul 14, 2026
faef028
feat(data): generate types from the backend submodule schema
tnagorra Jul 14, 2026
fa76706
feat(types): tsconfig path aliases; slim generated types
tnagorra Jul 14, 2026
fe1f124
chore: knip replaces unimported; drop dead exports it found
tnagorra Jul 14, 2026
ef9b363
chore(css): concentric ordering + indentation via modern stylelint
tnagorra Jul 14, 2026
2cf5bcd
style: 4-space indentation everywhere, enforced
tnagorra Jul 14, 2026
0208fdc
docs: rebuild README on main's skeleton
tnagorra Jul 14, 2026
d1940fe
perf(css): externalize all stylesheets
tnagorra Jul 14, 2026
2a0838e
perf(css): 4-char collision-checked module class names
tnagorra Jul 14, 2026
9b80318
refactor: restore reusable presentational components
tnagorra Jul 14, 2026
4f6f698
refactor: Link + ImageWrapper components
tnagorra Jul 14, 2026
34f044a
refactor: React twins of shared primitives for the islands
tnagorra Jul 14, 2026
3ada92f
refactor: main's component directory convention
tnagorra Jul 14, 2026
2f3d040
style: one attribute per line on multi-attribute tags
tnagorra Jul 14, 2026
28ac356
feat(incremental): sweep unreferenced _astro assets after merge
tnagorra Jul 15, 2026
2a0cdbc
refactor: extract asset sweep into astro-dist-sweep package
tnagorra Jul 15, 2026
87eb96c
perf(build): render pages with concurrency 4
tnagorra Jul 15, 2026
bcf8a34
chore: consolidate build artifacts under build/, rename fullData
tnagorra Jul 15, 2026
43207fb
chore: move full-data under build/
tnagorra Jul 15, 2026
e0164ee
chore: ignore core dumps
tnagorra Jul 15, 2026
e10eeda
fix(i18n): locale-prefixed project links + remembered-locale redirects
tnagorra Jul 19, 2026
7f9aabe
fix(data): last-updated from the data file's mtime
tnagorra Jul 20, 2026
8d7d9ef
fix(ui): restore ImageWrapper around store buttons + uptime logo
tnagorra Jul 20, 2026
38de6d5
fix(ui): visual parity with the live Next site
tnagorra Jul 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
45 changes: 7 additions & 38 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,38 +1,7 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc/sensitive
.DS_Store
.env
.env.local
secrets

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# typescript
*.tsbuildinfo

# editor config
.vscode/

# generated types
src/generated/
cache/
node_modules
dist
dist-cache
.astro
.astro-incremental
.image-cache
.git
11 changes: 11 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4

[*.{yml,yaml}]
indent_size = 2
28 changes: 0 additions & 28 deletions .eslintrc.json

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need a eslint.config.mjs?

This file was deleted.

47 changes: 27 additions & 20 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# deps
node_modules/

# dependencies
/node_modules
/.pnp
.pnp.js
# site data (fetched via `npm run fetch-data`; also the incremental-fetch cache)
fullData/

# build output
dist/
dist-cache/
.astro/

# testing
/coverage
# incremental build state (code-hash, manifest, per-page shards).
# In CI, restore/save this dir alongside dist/ so warm builds skip unchanged pages.
.astro-incremental/

# next.js
/.next/
/out/
# generated optimized images (emitted into dist/ at build time)
public/_img/

# production
/build
# persistent build-time image optimization cache.
# In CI, restore/save this dir as a build cache so warm builds reuse the
# webp encodes instead of refetching + re-encoding every remote image.
.image-cache/

# scratch build logs / measurements
build*.log
measure_*.txt

# misc
.DS_Store
Expand All @@ -22,19 +32,16 @@

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# typescript
*.tsbuildinfo

# editor config
.vscode/

# generated types
generated
fullData/
# playwright
test-results/
playwright-report/

cache/
server/
# generated from backend/schema.graphql via `pnpm generate:type`
generated/
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
22
25 changes: 10 additions & 15 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,21 @@
repos:
- repo: local
hooks:
- id: check-unused
name: check-unused
language: system
pass_filenames: false
entry: yarn check-unused

- id: lint
name: lint
name: eslint
entry: pnpm --silent lint
language: system
types_or: [ts, tsx, javascript]
pass_filenames: false
entry: yarn lint

- id: css-lint
name: CSS Lint
name: stylelint
entry: pnpm --silent css-lint
language: system
types: [css]
pass_filenames: false
entry: yarn css-lint

- id: type-check
name: Typecheck
- id: typecheck
name: astro check
entry: pnpm --silent typecheck
language: system
types_or: [ts, tsx, astro]
pass_filenames: false
entry: yarn typecheck
8 changes: 5 additions & 3 deletions .stylelintrc.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
{
"plugins": [],
"plugins": [
"@stylistic/stylelint-plugin"
],
"extends": [
"stylelint-config-recommended",
"stylelint-config-concentric"
"stylelint-config-concentric-order"
],
"rules": {
"indentation": 4,
"@stylistic/indentation": 4,
"selector-pseudo-class-no-unknown": [
true,
{
Expand Down
18 changes: 0 additions & 18 deletions .unimportedrc.json

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why remove unimported?

This file was deleted.

Binary file removed .yarn/install-state.gz
Binary file not shown.
1 change: 0 additions & 1 deletion .yarnrc.yml

This file was deleted.

12 changes: 4 additions & 8 deletions Dockerfile

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why remove "git config --global --add safe.directory /code"

Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
FROM node:18-buster-slim
# Dev-only image; the app is mounted by docker-compose and built there.
FROM node:22-bookworm-slim

RUN apt-get update -y \
&& apt-get install -y --no-install-recommends \
git bash g++ make \
# Clean-up
&& rm -rf /var/lib/apt/lists/* \
# Add /code as safe directory
&& git config --global --add safe.directory /code
RUN apt-get update && apt-get install -y --no-install-recommends git \
&& rm -rf /var/lib/apt/lists/*

WORKDIR /code
Loading