ADR-002: ADR 002: Frontend Framework Selection - Remix over Next.js

Status: Proposed
Version: 1.0
Date: 2025-12-25
Supersedes: N/A
Related ADRs: N/A
Related PRDs: N/A


Context

The SEA-Forge™ platform requires a modern frontend framework to deliver interactive, real-time documentation, artifact generation, and architecture visualization capabilities. The primary candidates evaluated were Remix and Next.js, both React-based meta-frameworks with strong ecosystem support.

Decision

We adopt Remix as the frontend framework for SEA-Forge™.

Choose Remix because SEA-Forge™ is:

✅ A data-heavy application (not a marketing site)
Server-side intensive (graph queries, validations, generations)
Deeply nested information architecture
Developer-focused (fast, clean URLs, no hydration mismatches)
Self-hosted (not leveraging Vercel-specific features)

Remix’s philosophy of “use the platform” (web standards, HTTP, URLs) aligns perfectly with SEA-Forge™’s goal of being a transparent, understandable “living map” of enterprise architecture.



Rationale

TBD

Constraints

TBD

Quality Attributes


Bounded Contexts Impacted

TBD

Consequences

TBD

Additional Notes

Accepted

SEA-Forge™’s frontend must support:

  1. Data-Intensive, Real-Time Operations

  2. Complex, Nested Information Architecture

  3. Developer-Focused Experience

  4. Microservices Backend Integration

  5. Artifact Generation & Export

  6. Future Collaboration Features (Roadmap)

Remix Advantage:

Next.js Limitation:


Remix Advantage:

Next.js Limitation:


Remix Advantage:

Next.js Limitation:


Remix Advantage:

Next.js Limitation:


Remix Advantage:

Next.js Limitation:


Remix Advantage:

Next.js Limitation:


Remix Advantage:

Next.js Limitation:


Faster initial page loads through aggressive server rendering
Simpler data management with loaders/actions vs. multiple fetching patterns
Better handling of microservices architecture via server-side data fetching
Cleaner code for complex hierarchical views
Progressive enhancement by default improves accessibility
Smaller client bundles reduce JavaScript overhead
Easier debugging with less client/server state mismatch

⚠️ Smaller ecosystem compared to Next.js (fewer tutorials, plugins)
⚠️ Less “magic” means more manual optimization in some cases
⚠️ Newer technology with less production battle-testing


Pros:

Cons:

Pros:

Cons:

Pros:

Cons:


1
2
3
4
5
6
7
8
9
web-app/
├── app/
│   ├── routes/          # File-based routing
│   ├── components/      # Shared React components
│   ├── services/        # Backend integrations (Oxigraph, PostgreSQL)
│   ├── utils/           # Shared utilities
│   └── root.tsx         # Root layout
├── public/              # Static assets
└── remix.config.js      # Remix configuration

2026-Q1 - Reassess after 6 months of production use