A comprehensive reference implementation showcasing FraiseQL's capabilities across 6 different frontend frameworks in a single monorepo.
Current Progress: Phase 1 - 75% complete (9/12 cycles done) Timeline: Completing Phase 1 by end of Day 6 Critical Blockers (CR-1-4): All resolved ā
This repository uses phase-based development with TDD cycles. Infrastructure is being built sequentially with detailed planning.
š See .phases/README.md for the complete implementation plan
š See PHASE-1-PROGRESS.md for current Phase 1 status
š See MONOREPO-QUICK-START.md for developer setup
fraiseql-blog/
āāā .phases/ # Implementation phases (TDD cycles)
ā āāā README.md
ā āāā phase-01-monorepo-foundation.md
ā āāā phase-02-backend-api.md
ā āāā phase-03-shared-packages.md
ā āāā phase-04-frontend-implementations.md
ā āāā phase-05-e2e-testing.md
ā āāā phase-06-deployment.md
ā āāā phase-07-documentation.md
ā āāā phase-08-finalize.md
ā
āāā apps/ # Frontend applications (6 frameworks)
ā āāā react-blog/
ā āāā vue-blog/
ā āāā svelte-blog/
ā āāā astro-blog/
ā āāā angular-blog/
ā āāā vanilla-blog/
ā
āāā packages/ # Shared packages
ā āāā shared-types/ # GraphQL generated types
ā āāā shared-graphql/ # URQL client + queries/mutations
ā āāā shared-config/ # TypeScript, ESLint, Vite configs
ā āāā test-utils/ # Playwright page objects
ā
āāā e2e/ # E2E test suite
ā āāā tests/
ā āāā fixtures/
ā āāā playwright.config.ts
ā
āāā docs/ # (To be created during Phase 7)
āāā ARCHITECTURE.md
āāā API.md
āāā adr/ # Architecture Decision Records
āāā frontends/ # Framework-specific guides
# Install dependencies
bun install
# Start all dev servers
pnpm dev
# Start single app
pnpm dev:react # or :vue, :svelte, :astro, :angular, :vanilla
# Run tests
pnpm test # All tests
pnpm test:e2e # E2E tests only
# Build all apps
pnpm build
# Lint all packages
pnpm lint
Sequential phases for focused development:
Total: 6-8 weeks
Why these 6 frameworks?
Why URQL?
Why Playwright?
The unique Cascade Invalidation Visualization shows:
Left Pane: Normal blog interface
Right Pane - Section 1: GraphQL Inspector
Right Pane - Section 2: Cascade Visualization
This demonstrates FraiseQL's power in cache management and query optimization.
User Interaction
ā
App UI (React/Vue/Svelte/Astro/Angular/Vanilla)
ā
URQL GraphQL Client
ā
Dual-Pane Inspector (captures request)
ā
FraiseQL Server
āāā GraphQL Resolver
āāā Keycloak Auth
āāā Cascade Invalidation Tracker
ā
PostgreSQL Database
ā
Response ā Cascade Visualization
ā
Cache Update ā UI Re-render
pnpm dev starts all appsSee CONTRIBUTING.md (created in Phase 7) for guidelines.
.phases/README.md and individual phase filesdocs/API.md (Phase 7)docs/frontends/ (Phase 7)docs/ARCHITECTURE.md (Phase 7)Apache 2.0 - See LICENSE file
Ready to start? See .phases/phase-01-monorepo-foundation.md for the first phase details.