Skip to content

Commit 1bb003b

Browse files
initial content for whats new and key features
1 parent b2c565f commit 1bb003b

2 files changed

Lines changed: 133 additions & 0 deletions

File tree

src/assets/typescript-square.svg

Lines changed: 6 additions & 0 deletions
Loading

src/pages/blog/release/v0-33-0.md

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
---
2+
title: Release - v0.33.0
3+
abstract: TypeScript for all and an improved Greenwood init scaffolding experience.
4+
published: 2025-9-12
5+
coverImage: /assets/typescript-square.svg
6+
layout: blog
7+
---
8+
9+
# Greenwood v0.33.0
10+
11+
**Published: Sept XXth, 2025**
12+
13+
<img src="/assets/typescript.svg" style="display:block; width: 25%; margin: 0 auto;" alt="AWS logo"/>
14+
15+
## What's New
16+
17+
A new Greenwood release is here! As per the usual round of enhancements and bug fixes, we are excited to highlight a few of the key features available in this release. These highlights include native TypeScript support (no longer experimental!), an overhaul of Greenwood's new project init scaffolding, and a new standalone markdown plugin. The new minimum version of NodeJS has now been bumped to `>= 22.18.0`
18+
19+
This release also continues our effort to improved ecosystem compatibility with fixes for our Adapter plugins and improved import map generation handling. Thank you so much to everyone who got involved with us for this release including two new first-time contributors! It means a lot to us and we appreciate your support of Greenwood! 💚
20+
21+
> Please refer to the [release notes](https://github.com/ProjectEvergreen/greenwood/releases/tag/v0.33.0) for the complete changelog and overview of breaking changes.
22+
23+
## Native TypeScript Support
24+
25+
With NodeJS `22.18.0`, TypeScript support in Greenwood is no longer experimental and requires no flags.
26+
27+
```json5
28+
// before
29+
{
30+
scripts: {
31+
build: "'NODE_OPTIONS=--experimental-strip-types' greenwood build",
32+
},
33+
}
34+
```
35+
36+
```json5
37+
// after
38+
{
39+
scripts: {
40+
build: "greenwood build",
41+
},
42+
}
43+
```
44+
45+
We've also formalized our [_tsconfig.json_ settings](/docs/resources/typescript/#setup), updating our required options and recommended settings, which you can see below.
46+
47+
```json5
48+
{
49+
compilerOptions: {
50+
// minimum required configuration
51+
target: "es2020",
52+
module: "preserve",
53+
moduleResolution: "bundler",
54+
allowImportingTsExtensions: true,
55+
noEmit: true,
56+
57+
// additional recommended configuration
58+
lib: ["ES2020", "DOM", "DOM.Iterable"],
59+
verbatimModuleSyntax: true,
60+
erasableSyntaxOnly: true,
61+
},
62+
63+
exclude: ["./public/", "./greenwood/", "node_modules"],
64+
}
65+
```
66+
67+
Don't want to set this all up yourself? We've got you, this is all automatically generated through Greenwood init scaffolding CLI. Wait, TypeScript in the init CLI? Yes, you heard that correctly, so let's tell you all about it! 👇
68+
69+
## Init Scaffolding
70+
71+
The Init scaffolding CLI has been improved to be a more robust, prompt based experience, which will walk you through selecting a number of scaffolding options for your project. Now when scaffolding out a new Greenwood project, you're now able to specify name / output directory, TypeScript support, and package manager installation.
72+
73+
It's as easy as running:
74+
75+
```shell
76+
$ npx @greenwood/init@latest
77+
```
78+
79+
As all the prompted options are available as CLI flags, if you know what you want, you can one shot the entire scaffolding all in one command! For example, to automatically create and name a project with TypeScript and PNPM, you could use this command:
80+
81+
```shell
82+
$ npx @greenwood/init@latest --name my-app --ts --i pnpm
83+
```
84+
85+
> Check out our [Init setup docs](/docs/introduction/setup/#init) to see the full list of options.
86+
87+
## Standalone Markdown Plugin
88+
89+
Although a breaking change, we've made the decision to move markdown support outside of the Greenwood CLI and into its own plugin, still based on the [**unified**](https://unifiedjs.com/) ecosystem. There were a few motivations for this change:
90+
91+
- Markdown support required _seven_ dependencies, which is a lot for something not every project might need.
92+
- There are many flavors and implementations of markdown, and so this allows any user to swap out the implementation with their own preference.
93+
- It validates in a meaningful way that any file format could become a custom page format, like YAML or JSON.
94+
95+
Upgrading is super easy, just install **@greenwood/plugin-markdown** and add it your Greenwood configuration file, and pass any markdown plugins as options to the plugin.
96+
97+
```js
98+
// before
99+
export default {
100+
markdown: {
101+
plugins: ["@mapbox/rehype-prism", "rehype-autolink-headings", "remark-gfm"],
102+
},
103+
};
104+
```
105+
106+
```js
107+
// after
108+
import { greenwoodPluginMarkdown } from "@greenwood/plugin-markdown";
109+
110+
export default {
111+
plugins: [
112+
greenwoodPluginMarkdown({
113+
plugins: ["@mapbox/rehype-prism", "rehype-autolink-headings", "remark-gfm"],
114+
}),
115+
],
116+
};
117+
```
118+
119+
> Check out [the (new) docs page](/docs/plugins/markdown/) for all information on adopting the plugin.
120+
121+
## Honorable Mentions
122+
123+
TODO
124+
125+
---
126+
127+
As always, we're excited to see where the community can take Greenwood and are always available to chat on [GitHub](https://github.com/ProjectEvergreen/greenwood) or [Discord](/discord/). See you for the next release! ✌️

0 commit comments

Comments
 (0)