2024 Year-End Review
2024 saw many changes in the JS ecosystem, with the releases of React 19, React Native 0.76, and Vite 6.
In addition to supporting these new framework versions, FaasJS released the following new features in 2024:
@faasjs/server
- ES Module support
- Native Response support, enhancing stream processing capabilities
- Removed vendor dependencies, strengthening independent deployment capabilities
- Support for system signals like SIGTERM, ensuring requests complete before shutdown
- Significantly optimized and simplified log output for better troubleshooting and analysis
- Middleware mode support for easy integration with other backend framework plugins
- Static file support with stream output to reduce memory usage
@faasjs/react
- React 19 support
- Server Action support
- Added several utility functions, such as:
createSplittingContext
as a lightweight alternative to Redux and other state management librariesuseEqualEffect
,useEqualCallback
and other high-performance object comparison HookssplittingState
for quick generation of multiple states- Helper Hooks like
usePrevious
,useStateRef
- New form components compatible with both React and React Native
2025 Plans
FaasJS has been available for 5 years, consistently aiming to provide independent developers and small teams with rapid development and low-cost maintenance solutions.
In 2025, FaasJS will maintain this positioning while making new attempts and adjustments based on the existing JS ecosystem:
Enhanced Logging and Monitoring
FaasJS has included application performance logging since its inception, but only as log output, which isn’t ideal for monitoring and analysis.
Therefore, next year’s plan includes major enhancements to @faasjs/logger
, supporting JSON format log output and providing extensible Transport for integration with various monitoring systems.
The new logging system will facilitate monitoring of routine request latency, errors, database timing, and support custom extensions and tagging capabilities for monitoring things like large model token usage.
Defined Technology Stack
Initially, FaasJS created compatibility packages for various mainstream infrastructures, but independent developers and small teams rarely need to use multiple infrastructures simultaneously.
Therefore, in 2025, FaasJS will specify its supported technology stack and remove unnecessary compatibility layers.
The planned core technology stack includes:
- Docker
- Supports both independent deployment and cloud services like Lambda
- Uses standard Dockerfile for compatibility with Podman and other container engines
- May introduce lightweight self-deployment tools to simplify deployment and maintenance
- Alpine
- As base image to reduce image size
- Node.js
- As runtime, supporting latest LTS version
- No special compatibility support for Bun and Deno as they improve Node.js compatibility
- Npm
- As package manager, supporting latest version
- No special compatibility support for Yarn or Pnpm due to compatibility issues
- TypeScript
- As primary development language, supporting latest LTS version
- Enhanced frontend-backend type constraints for improved development efficiency
- React
- As primary frontend framework, supporting latest LTS version
- Focusing on React due to React Native and Expo’s rapid development
- Vue support through
@faasjs/browser
only
- PostgreSQL
- As primary database, supporting latest LTS version
- Considering postgres over pg (under evaluation)
- Considering drizzle over knex (under evaluation)
- Removing compatibility packages for Redis and MongoDB to simplify stack
- Vitest
- As primary testing framework, supporting latest LTS version
- Gradual migration from Jest to Vitest for better performance and built-in features
Astro Ecosystem Integration
While Astro’s technology stack is heavy, it offers a great development experience and is more suitable for FaasJS’s positioning than the increasingly complex Next.js.
I’m currently researching how to integrate Astro with FaasJS for an improved development experience.
However, it will still be based on the technology stack mentioned above, especially Docker, as experience shows that edge services (like Cloudflare, Vercel) often fail deployment due to missing dependencies.
Conclusion
Next year’s plan represents the biggest adjustment since FaasJS’s inception, with many uncertainties. Comments and suggestions are welcome.