You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is an idea to build a Projen type for Astro to provide the most opinionated Astro project setup and management for the new and existing users. With this new idea, a user can generate a new Astro project with highly maintained list of dependencies and configurations, just like npm create astro@latest but also keep synchronize with the upstream update as well as their customization because Projen manages all configurations as code, it's not a one-off boilerplate.
Problems
There are so many options that a user can pick to start a new Astro project e.g. integrations, frameworks, as well as eslint, prettier, VS Code. All are well documented and there are many great templates. However, it's not easy to keep their already created projects updated with documents and templates. Also, it's a tedious but error-prone work to re-configure the exactly same stuff for multiple projects like eslint.
Solution
Projen is a framework to solve the exactly the problems stated above:
projen synthesizes project configuration files such as package.json, tsconfig.json, .gitignore, GitHub Workflows, eslint, jest, etc from a well-typed definition written in JavaScript.
As opposed to existing templating/scaffolding tools, projen is not a one-off generator. Synthesized files should never be manually edited (in fact, projen enforces that). To modify your project setup, users interact with rich strongly-typed class and execute projen to update their project configuration files. https://github.com/projen/projen
Projen type is a preset for these configurations. There are already react, react-ts, nextjs and nextjs-ts built-in types and it also allows to use external type as well.
With this idea, a user can use projen to create a new Astro project using a new astro type and keep the project configuration updated with high customizability e.g. add/remove integrations would be like:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Summary
This is an idea to build a Projen type for Astro to provide the most opinionated Astro project setup and management for the new and existing users. With this new idea, a user can generate a new Astro project with highly maintained list of dependencies and configurations, just like
npm create astro@latest
but also keep synchronize with the upstream update as well as their customization because Projen manages all configurations as code, it's not a one-off boilerplate.Problems
There are so many options that a user can pick to start a new Astro project e.g. integrations, frameworks, as well as eslint, prettier, VS Code. All are well documented and there are many great templates. However, it's not easy to keep their already created projects updated with documents and templates. Also, it's a tedious but error-prone work to re-configure the exactly same stuff for multiple projects like eslint.
Solution
Projen is a framework to solve the exactly the problems stated above:
Projen type is a preset for these configurations. There are already react, react-ts, nextjs and nextjs-ts built-in types and it also allows to use external type as well.
With this idea, a user can use projen to create a new Astro project using a new astro type and keep the project configuration updated with high customizability e.g. add/remove integrations would be like:
Then,
projen
CLI can synthesize the wholeastro.config.mjs
file based on the given parameters and default parameters. It can cover this idea: #396Drawbacks
This is redundant with the current role of
npm create astro@latest
,astro add
and others. Therefore, we need dual maintenance.Beta Was this translation helpful? Give feedback.
All reactions