CedarJS is an opinionated, full-stack React framework that makes building web applications fast and enjoyable. It includes everything you need: React for the frontend, GraphQL for the API, Prisma for the database, and built-in support for authentication, testing, and deployment.
CedarJS is a fork of the RedwoodJS GraphQL framework that is actively maintained and used in production by companies of all sizes. With active development focused on modern web standards and developer experience, Cedar is evolving with new features and improvements that aren't available in RedwoodJS.
CedarJS would obviously not be where it is today without the vision and heroic efforts of the RedwoodJS founders, maintainers and community.
cedar has become a powerful symbol of strength and revitalization
— https://indigenousfoundations.arts.ubc.ca/cedar/
If you're currently using RedwoodGraphQL, here's why you might want to consider Cedar:
- Cedar is actively maintained by developers who use it in production daily. New features, bug fixes, and security updates are consistently delivered.
- Cedar includes improvements and features that aren't available in RedwoodJS, like Recurring Jobs and experimental ESM support.
- Moving toward ESM-only packages and modern JavaScript standards to future-proof your applications.
- Cedar maintains backward compatibility with RedwoodJS v8.6, making migration straightforward with a clear upgrade path.
Whether you're building a startup MVP, a departmental tool, or a full production application, here's what you get with Cedar:
- Fast Setup. Get from zero to deployed application with a database in minutes, not days.
- An extensive CLI with generator and setup commands for most things you want to do. A dedicated CLI is faster and cheaper than asking AI to do it for you, and 100% predictable.
- Team empowerment. Keep your entire stack in TypeScript/JavaScript. No context switching between languages or separate teams for frontend and backend. Everyone is empowered to contribute across the entire application.
- Architectural decisions made for you, so you don't get stuck in analysis paralysis or get decision fatigue. But it doesn't lock you in. You have full control over your code, your auth, your database, and your deployment.
- Ready made integrations for hosting on Vercel, Netlify, AWS, Render, or your own servers. Switch providers easily without major rewrites.
- A production ready framework. Used by companies in production with a mature ecosystem and comprehensive documentation.
- You start with a working app that includes routing, database setup, and testing – all configured and ready to go. And if there's more you need, like authorization, there's most likely a setup command or a generator for it.
Startups that need to move fast and iterate quickly. Solo developers who want to build full-stack apps without managing complex tooling. Development teams that value standardization and clear conventions. Companies transitioning from RedwoodJS or looking for an actively maintained full-stack framework with a dedicated API layer. Or just about anyone who wants to focus on building features rather than configuring build tools and infrastructure
- Search and replace all instances of
"@redwoodjs/(.*)": "\d+\.\d+\.\d+"
with"@cedarjs/$1": "0.1.1"
(or whatever the latest version of Cedar is when you run this) in all threepackage.json
files. - Run
yarn install
to update your lock file. - Make a git commit with all changes as a checkpoint to make it easier to see what changes in the following steps
- Search and replace all instances of
@redwoodjs
in all files with@cedarjs
. - Also find all mentions of
storybook-framework-redwoodjs-vite
and replace withstorybook-framework-cedarjs
- Pay attention to
yarn.lock
. If anything changed in there you probably have to do some manual editing. (Contact me if you need help.) - Delete all files and folders inside
.redwood/
exceptREADME.md
- Run
yarn install
andyarn rw build
. Make sure everything works as expected. - Make a new git commit (or amend the previous one you did)
- Update
web/vite.config.ts
to haveimport { cedar } from '@cedarjs/vite';
andplugins: [cedar()],
instead of the olderimport redwood from '@redwoodjs/vite';
andplugins: [redwood()],
These are things I want to remove to make the surface area of things I need to maintain smaller. Notice that UI libraries you already have setup will continue to work. Just new projects won't have the setup support for them. Auth and deploy providers are more difficult. I'll leave those in longer. Let me know what you use so I know what to keep and what to remove!
- Mantine and Chakra-UI setup
- Redwood Record
- Telemetry
- Auth providers I don't know of anyone using
- Deploy providers I don't know of anyone using
- Old docs versions
- Old codemods
- The structure package (internal legacy package)
- Make all packages ESM only where possible and ESM+CJS where needed to
keep compatibility with existing RW apps. Packages still to convert:
-
@cedarjs/cli
-
@cedarjs/fastify-web
-
@cedarjs/api-server
-
@cedarjs/api
- etc. Full list: #19
-
- Future major version: Make all packages ESM only
- Future major version: Make new Cedar apps ESM only
- Future major version: Make it possible to switch existing Cedar apps to ESM
- Enable strict mode for new Cedar TypeScript apps.
- Upgrade to Node 24
- Setup dependabot/renovate to automatically merge PRs that pass all checks
- Move to Vitest for Cedar ESM apps
- Update packages we use to their latest versions. Notable examples:
-
react
-
prisma
-
apollo
-
vite
-
fastify
-
- Mirror the RedwoodJS docs to make sure they don't get deleted
- Done. See https://cedarjs.com/docs
- Document where CedarJS diverges from RedwoodJS. (Future major version.)
- Better support for file uploads
- dbAuth version with OAuth support
- Whatever I need to make it easier to work with the OpenAI API/SDK and other AI tools
- Your feature request here! Let me know what you need!
0.x releases of CedarJS will be fully compatible with RedwoodJS v8.6, so the best documentation for CedarJS is actually still the RedwoodJS documentation, which I have a copy of here: https://cedarjs.com/docs. I have made a few edits and updates to it, but it's still mostly the same as the original Redwood docs. Unfortunately they're not available at their old url anymore, but their sourcs are still here: https://github.com/redwoodjs/graphql/tree/main/docs
The only thing you'll have to adjust when reading, and copying code examples
from the docs, are the package names and replace every @redwoodjs
package with
a @cedarjs
package of the same name.
Tobbe Lundberg |