Pinegrow 9 BETA 1 is out 🌲

Pinegrow 9 Beta 1 is available for download :slight_smile:

This is a huge release, not measured by new features, but by effort that went into polishing the most common workflows, refreshing the UI and taking care of many rough edges.

Take Pinegrow 9 for a spin and let us know if you run into any issues - or just to tell us how you feel about it.

Still on to-do for the full release is the light theme and fixing all the bugs you will report.

Watch the videos about the top 5 improvements to get oriented:

The plan is to fix any bugs you report over the weekend and publicly release another Beta on Monday, before we then close the ongoing sale.

Thanks & have a fun weekend!
Matjaz

6 Likes

I am looking forward to trying this. One small point I noticed is that the About screen says version 8.9.1 on my Mac. There is a splash screen when opening that mentions getting the Tailwind add-on, and that is presumably for first-time users, rather than those who had it already in 8.6.2.

Thanks @Bilko! The version 8.91 is used for the Beta release, to keep the 9.0 free for the official PG 9 release. The Tailwind promo is a part of the ongoing sale promotion. I’ll disable it in PG 9 to keep things clear.

1 Like

So far so good! I really like the smart mode, it really keeps the interface clean and easy to work with. Thanks so much for this great update. I’ll report any bugs, but so far I haven’t found any!

1 Like

So far really nice. I like the new UI in the layer tree, and the vertical line is really handy. A few Tailwind centric stuff turns up in a Bootstrap project, but I am not sure if it’s just because it’s an existing project quirk. I will document it and send it to support. But that might not happen for a day or two. I had expected I would switch straight to flexible, but Smart works really well. Looking forward to light mode, as I usually use that. Preview is working smoother than Browser Sync does across devices, you have a done an excellent job here. I will put it through more intense stuff on Monday.

Great job @matjaz it has a good feel IMO.

2 Likes

:partying_face: congratulations …

will give it a spin over the holidays

2 Likes

Here is Beta 2 with Light theme, improved dropbox positioning, bug fixes:

6 Likes

Congratulations on this remarkable work. I appreciate the new user interface. I have a small observation regarding the PHP file, its icon always remains that of HTML5. Very good work @matjaz

1 Like

Thanks @JuniorZabunga, will add the PHP icon.

2 Likes

You are welcome @matjaz .

Possible Bug→ Pingrow 9 (8.9.1)

The top menu get stuck sometimes and it is not possible to click any item. To fix it, Pingrow restart is needed…

1 Like

Thanks @Arkadiusz , next time it occurs, can you share the error logged in the devtools.

You can open the devtools by right clicking on the Pinegrow (it changes to a close icon when hovered) icon, and by choosing ā€œInspectā€œ, and look for any error logs in the Console tab. Alternatively, you could also use shortcut cmd/ctrl+shift+c.

1 Like

The problem appears when working in class tree ( components ). Some properties items are not selectable ( no drop down ) . To change the property you need to add it manually but after that the errors appears. The Pingrow top menus are not longer working afterwords: See Console errors log:

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.setClass (pg.class.tree.js:4118:14)

at Object.on_mouseenter (pg.class.tree.js:1990:62)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.handle (jquery-3.3.1.js:5536:45)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.restore (pg.class.tree.js:4164:14)

at Object.on_mouseleave (pg.class.tree.js:1993:62)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.handle (jquery-3.3.1.js:5536:45)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.setClass (pg.class.tree.js:4118:14)

at Object.on_mouseenter (pg.class.tree.js:1990:62)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.handle (jquery-3.3.1.js:5536:45)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.restore (pg.class.tree.js:4164:14)

at Object.on_mouseleave (pg.class.tree.js:1993:62)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.handle (jquery-3.3.1.js:5536:45)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.setClass (pg.class.tree.js:4118:14)

at Object.on_mouseenter (pg.class.tree.js:1990:62)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.handle (jquery-3.3.1.js:5536:45)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.restore (pg.class.tree.js:4164:14)

at PgFastDOMClassPreviewForSelector.destroy (pg.class.tree.js:4173:32)

at Object.setValue \[as action\] (pg.class.tree.js:1787:42)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.restore (pg.class.tree.js:4164:14)

at Object.on_mouseleave (pg.class.tree.js:1993:62)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.handle (jquery-3.3.1.js:5536:45)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)

pg.class.tree.js:4128 Uncaught TypeError: this.pgel.withEmitEvent is not a function

at PgFastDOMClassPreviewForSelector.updateInLivePreview (pg.class.tree.js:4128:23)

at PgFastDOMClassPreviewForSelector.setClass (pg.class.tree.js:4118:14)

at Object.on_mouseenter (pg.class.tree.js:1990:62)

at HTMLAnchorElement.<anonymous> (<anonymous>)

at HTMLAnchorElement.handle (jquery-3.3.1.js:5536:45)

at HTMLAnchorElement.dispatch (jquery-3.3.1.js:5183:45)

at elemData.handle (jquery-3.3.1.js:4991:47)
1 Like

Thanks @Arkadiusz, the fix will be out in the next beta, most likely tomorrow.

2 Likes

Hello Matjaz,
Did the issue I raised was fixed in the P9 ? .Tx

@Arkadiusz it is fixed, but I didn’t manage to do a fresh beta release yet. Giving a date like ā€œtomorrowā€ always comes back to bite me :slight_smile:

3 Likes

Thanks Matjaz… I understand!!!…Although the suspense is ā€˜killing’ us :wink:

Pinegrow 9 Beta 3 is out :slight_smile:

It has a bunch of improvements, not just bug fixes:

Core features
  • Info panel placement: Move the Info panel to the right, below page views, or into a floating window.

  • Hide panels from tabs: Right-click a panel tab to hide it (Smart mode keeps essential panels visible).

  • Recent projects thumbnails: Hide or show thumbnails per project from the start screen menu.

  • Smarter project naming: When keeping a temporary project, Pinegrow suggests a name based on the page title.

  • More project file icons: Project panel now shows icons for PHP, JSX/TSX, Vue, Svelte, TypeScript and ZIP files.

  • Live preview scroll sync: Scroll sync now handles horizontal scrolling and scroll-snap containers more reliably.

  • Tutorials refreshed: Pine Poems and tutorial UI got updates and polish.

AI Assistant
  • Motion docs on demand: Pinecone can fetch Motion (Framer Motion) docs when implementing interactions.

  • Debug console errors: New Debug quick action uses page console errors to help fix issues.

  • Save external images: New [pineconesaveurl] command saves external image URLs into the project before use.

  • Image generation upgrades: OpenRouter image generation adds model choices, transparency support, multiple input images, and better error handling.

  • Create project from brief: After saving a project brief, Pinecone offers a one-click action to build the project.

Tailwind Visual Editor
  • Colors: hide default palette: Toggle default framework colors in the Colors control to focus on custom palettes.

  • Class tracking in scripts: Tailwind class usage detection now scans inline scripts for JS-generated classes.

  • Class styles validation: Improved Tailwind class styles with clearer warnings and better handling of component styles.

Bug fixes
  • Polish and fixes: Many smaller improvements and bug fixes across the app.
7 Likes