State of Greenwood (2025)

Published: Dec XXX, 2025

Greenwood Logo

TODO:

The Year In Review

TypeScript Support

Greenwood now provides built-in support for TypeScript, with the ability to fallback to using tsc if certain TypeScript features you're using (like Decorators, enums, namespaces, etc (opens in a new window)) are not supported through just type stripping alone. This was motivated in part due to NodeJS adding support out of the box. This means you can write your entire project, including SSR pages and API routes, entirely in TypeScript with no configuration required!

This also means that you can author your Greenwood configuration files and plugins with TypeScript too:

// greenwood.config.ts
import type { Config } from "@greenwood/cli";

const config: Config = {
  // ...
};

export default config;

For actual type-checking, below is Greenwood's recommended tsconfig.json settings so that you can run tsc during CI.

{
  "compilerOptions": {
    // minimum required configuration
    "target": "es2020",
    "module": "preserve",
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true,
    "noEmit": true,

    // additional recommended configuration
    "lib": ["ES2020", "DOM", "DOM.Iterable"],
    "verbatimModuleSyntax": true,
    "erasableSyntaxOnly": true,
  },

  "exclude": ["./public/", "./greenwood/", "node_modules"],
}

Check out our TypeScript docs to learn more about getting setup with TypeScript and Greenwood.

New Project Scaffolding

The Init scaffolding CLI got an major overhaul this year, moving to a more robust, prompt based experience that will walk you through a number of options for creating and customizing your next Greenwood project. Now, when scaffolding out a new Greenwood project, you're able to specify the name / output directory, support for TypeScript, and package manager.

It's as easy as running:

$ npx @greenwood/init@latest

Read the docs to get started with your next Greenwood project today.

AWS Adapter

This year we released an official adapter plugin for generating Lambda compatible function code for your SSR pages and API routes with AWS. ☁️

SimplY install the plugin and add it to your Greenwood config file:

import { greenwoodPluginAdapterAws } from "@greenwood/plugin-adapter-aws";

export default {
  plugins: [greenwoodPluginAdapterAws()],
};

Taking into consideration that there are many methods and options for deploying to AWS, this adapter plugin is primarily focused on generating consistent and predictable build output that can be complimented by some form of IaC (Infrastructure as Code) (opens in a new window) or deployment tooling of your choice. The build output will look similar to Greenwood's own standard build output and will be available in the .aws-output/ folder at the root of your project after running the build command.

To learn more, you can read our v0.32.0 release blog post (opens in a new window) and checkout the docs (opens in a new window) to get started.

The Year Ahead

TODO:

Now that we've got our new website launch behind us, the Greenwood team is very eager to wrap up our current efforts to release v0.34.0 and ongoing march towards a 1.0 release.


We hope to complete this effort over the next couple of months with the hope to spend the rest of our time in 2025 burning down our 1.0 milestone (opens in a new window).

In Closing

Greenwood wants to be there every step of the way to help you get the most out of the web and ensure you have full ownership of your code and content. From SPA to SSG to SSR and everything in between, building vanilla or with friends, we want Greenwood to run wherever the web can run so the choice can always be yours.

Please come join us on GitHub (opens in a new window) and Discord and we can't wait to see what you build with Greenwood! Project Evergreen logo