stacksjs/stacks

Onboarding

Opened this issue · 3 comments

Clear and concise description of the problem

A cross-platform, zero-setup onboarding experience via

curl -Ssf stacksjs.org | sh

Suggested solution

  • ./bootstrap is the only file that should be run to set up any user's dev env (mac, windows, linux) -> needs to make sure all proper prerequisites are installed, and if not, prompt to install via pkgx
    • any subsequent call to the script should ensure the env is still set up correctly
    • make sure that before pkgx is installed, we prompt the user for understanding
  • ensure buddy setup works
  • ensure curl -Ssf stacksjs.org | sh works
  • remove unused ./config files
  • remove unused root project dirs (app, database, docs, resources, lang, server, routes)
  • ensure proper root IDE dir is used

Nice-to-haves

  • bun create templates
    • we already have much of it done already in ./core/bun-create, just need to wrap those up and get them working based on latest & greatest

Validations

curl -Ssf stacksjs.org | sh

The script is designed to work with or without an argument. The former where it expects an argument is used to bootstrap the project and install all dependencies.

The latter is assumed to have all the required dependencies ready.

We can't get to the latter until we have bootstrapped a project. The above command is for the 2nd case.

So it's either we change the initial script to pass the project name argument, eg:

curl -Ssf https://stacksjs.org/bootstrap | sh -s -- myProjectName

or we adjust the script accordingly like we can assume a default directory name for initial project bootstrap.


@chrisbbreuer your inputs appreciated. thanks

I will look into here a little more thoroughly toward end of day today, but I'd say we adjust the script accordingly so that it properly works without any inputs as well.

For example, if we don't pass a project name, we can prompt for it, or default to stacks. Something along those lines, I am thinking.

One thing I know we want to test and optimize for as well is the ./buddy setup script. I was thinking that it makes sense to run this at last within this automation.

For example,

  • need to check if any of the pkgx deps are installed
    • if installed, remove them out of the pkgx.yaml
    • if not installed, install via pkgx (ensure the user knows those deps are getting installed, maybe a note when getting started or a prompt)

and please check the remainder of what's inside the setup command

Thanks. I look forward to your response.