Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
00cb2ec
feat: add static site generation (SSG) package
cemalturkcan Mar 25, 2026
3e672ff
docs: add @geajs/ssg to root README packages, examples, and docs
cemalturkcan Mar 25, 2026
b87be27
docs: add client-only routes (skip) to SSG README and docs
cemalturkcan Mar 25, 2026
7b72414
refactor: replace client:true route config with <Client> component tag
cemalturkcan Mar 25, 2026
65080e9
feat(ssg): add Head management, 404, robots.txt, minification, and tr…
cemalturkcan Mar 25, 2026
d553471
fix: resolve reviewer issues — LiveClock separate file, Head browser …
cemalturkcan Mar 25, 2026
1e364ce
fix: resolve build hang from lingering Vite server handles, update Cl…
cemalturkcan Mar 25, 2026
d56ec53
fix: reviewer fixes — Head stale tag cleanup, ESM preview, determinis…
cemalturkcan Mar 25, 2026
6c89b1f
fix: preview server root URL serving 404 instead of index.html
cemalturkcan Mar 25, 2026
63a8e97
feat(ssg): enable client-side takeover — keep scripts, add reactive C…
cemalturkcan Mar 25, 2026
de7120d
fix: Client component renders children in browser mode
cemalturkcan Mar 25, 2026
262fc62
refactor: remove Client component — SSG renders full HTML, JS adds re…
cemalturkcan Mar 25, 2026
19355f4
fix: resolve @geajs/ssg via alias in production build instead of mark…
cemalturkcan Mar 25, 2026
3347049
refactor: extract __SSG_CONTENT__ to separate _ssg/content.js file, s…
cemalturkcan Mar 25, 2026
153815a
fix: add defer to content.js, unify ContentFile type, remove dead cod…
cemalturkcan Mar 25, 2026
2135739
feat: MPA hydration architecture — zero JS on static pages, selective…
cemalturkcan Mar 25, 2026
e42b211
fix: dev mode fallback — hydrate() returns boolean, main.ts dynamical…
cemalturkcan Mar 25, 2026
f79d923
perf: guard dev fallback with import.meta.env.DEV to eliminate dead A…
cemalturkcan Mar 25, 2026
4d0190a
fix: address all reviewer findings — props hydration, one-shot getUid…
cemalturkcan Mar 25, 2026
0dad378
docs: update SSG docs with MPA hydration, content field clarification…
cemalturkcan Mar 26, 2026
b037ac1
fix: use directory-based output (trailingSlash default) for static se…
cemalturkcan Mar 26, 2026
3ba375a
fix: output 404 page as directory structure for static server compati…
cemalturkcan Mar 26, 2026
971b28a
fix(ssg): harden render, crawl, head, shell and vite-plugin edge cases
cemalturkcan Mar 26, 2026
939a718
fix(core): guard created() in SSG mode, clean stale meta tags, safe S…
cemalturkcan Mar 26, 2026
a949436
fix(ssg): remove process.exit from closeBundle to not kill other plugins
cemalturkcan Mar 26, 2026
19093fb
fix(ssg): address CodeRabbit review feedback and fix duplicate export
cemalturkcan Mar 28, 2026
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: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ docs/.vitepress/cache
docs/public/gea-ui-showcase
website/docs
.worktrees
.idea
.data
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ This scaffolds a Vite-powered project with TypeScript, a sample store, class and
| [`@geajs/core`](packages/gea) | Core framework — stores, components, reactivity, DOM patching | [![npm](https://img.shields.io/npm/v/@geajs/core.svg)](https://www.npmjs.com/package/@geajs/core) |
| [`@geajs/ui`](packages/gea-ui) | Headless UI primitives — accessible, composable components built on [Zag.js](https://zagjs.com) | [![npm](https://img.shields.io/npm/v/@geajs/ui.svg)](https://www.npmjs.com/package/@geajs/ui) |
| [`@geajs/mobile`](packages/gea-mobile) | Mobile UI primitives — views, navigation, gestures, layout | [![npm](https://img.shields.io/npm/v/@geajs/mobile.svg)](https://www.npmjs.com/package/@geajs/mobile) |
| [`@geajs/ssg`](packages/gea-ssg) | Static site generation — markdown content, dynamic routes, sitemap | [![npm](https://img.shields.io/npm/v/@geajs/ssg.svg)](https://www.npmjs.com/package/@geajs/ssg) |
| [`@geajs/vite-plugin`](packages/vite-plugin-gea) | Vite plugin — JSX transform, reactivity wiring, HMR | [![npm](https://img.shields.io/npm/v/@geajs/vite-plugin.svg)](https://www.npmjs.com/package/@geajs/vite-plugin) |
| [`create-gea`](packages/create-gea) | Project scaffolder — `npm create gea@latest` | [![npm](https://img.shields.io/npm/v/create-gea.svg)](https://www.npmjs.com/package/create-gea) |
| [`gea-tools`](packages/gea-tools) | VS Code / Cursor extension — completions, hover, diagnostics | — |
Expand Down Expand Up @@ -117,6 +118,7 @@ See the full comparisons: [React vs Gea](docs/comparison/react-vs-gea.md) | [Vue
| [router](examples/router) | Client-side routing with `RouterView`, `Link`, and dynamic params |
| [kanban](examples/kanban) | Kanban board with drag semantics |
| [mobile-showcase](examples/mobile-showcase) | Mobile UI showcase using `@geajs/mobile` components |
| [ssg-basic](examples/ssg-basic) | Static site with markdown content, dynamic routes, and sitemap |

## Documentation

Expand All @@ -126,6 +128,7 @@ Full documentation is available in the [docs](docs/) directory, covering:
- [Stores](docs/core-concepts/stores.md) and [Components](docs/core-concepts/components.md)
- [JSX Syntax](docs/core-concepts/jsx-syntax.md)
- [Router](docs/gea-router/overview.md)
- [Static Site Generation](docs/tooling/ssg.md)
- [Gea UI](docs/gea-ui/overview.md)
- [Gea Mobile](docs/gea-mobile/overview.md)
- [API Reference](docs/api-reference.md)
Expand Down
1 change: 1 addition & 0 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
## Tooling

- [Vite Plugin](tooling/vite-plugin.md)
- [Static Site Generation](tooling/ssg.md)
- [create-gea](tooling/create-gea.md)
- [VS Code Extension](tooling/vscode-extension.md)

Expand Down
Loading