Skip to content

Tech Choice Comparisons ​

1. 3D Graphics Engine: Three.js + React Three Fiber vs Plain WebGL vs Babylon.js vs Spline ​

CriteriaThree.js + R3F (Chosen)Plain WebGLBabylon.jsSpline
React IntegrationNative JSX Scene GraphManual Canvas HooksWrapper RequiredIframe / Web Component
Bundle Overhead~150KB gzippedZero (browser native)~300KB gzippedHosted runtime
Learning CurveModerateExtremely SteepModerateVery Low
Shader CustomizationFull ShaderMaterial supportRaw GLSLFull Material EngineProprietary editor only

Why Chosen: R3F brings Three.js into the declarative React 19 component lifecycle, allowing spatial meshes to react directly to application state while maintaining 60fps rendering.

2. Smooth Scrolling: Lenis vs Locomotive Scroll vs Native CSS Scroll-Behavior ​

CriteriaLenis (Chosen)Locomotive ScrollNative CSS Smooth Scroll
Performance60fps RAF loopCan cause scroll jankNative C++ browser engine
Custom MomentumFully configurable cubic easingHeavy DOM hijackingNone
AccessibilityAuto-disables on reduced-motionRequires custom codeNative compliance
Bundle Size< 4KB> 20KB0KB

Why Chosen: Lenis preserves native browser scroll physics while applying lightweight, non-intrusive momentum easing without breaking keyboard accessibility.

3. Database: MongoDB / Mongoose vs PostgreSQL vs Firebase Firestore ​

CriteriaMongoDB (Chosen)PostgreSQLFirebase Firestore
Data ModelFlexible BSON DocumentsRelational TablesHierarchical Documents
Rich Content FitExceptional (nested tags/JSON)Good with JSONBGood
ScalingBuilt-in horizontal shardingRead replicas & CitusAuto-managed serverless
Vendor Lock-inLow (open source engine)Zero (open source standard)High (Google proprietary)

Why Chosen: Editorial articles frequently change schema (new metadata, interactive blocks, multi-tier tags), making MongoDB's flexible schema ideal.