HACKER Q&A
📣 thesurlydev

How do you bootstrap your software projects?


I've used a variety of ways to bootstrap my projects and I'm curious how others do it.

Some examples I've seen:

- GitHub template

- Cargo generate and init (Rust)

- Framework-specific starters (Spring Boot, Micronaut, etc)

- Front-end CLI "init" commands

- Using simple scripts and a templating library like Mustache

I'm aware that the source code aspect is highly dependent on the language and frameworks but I'm also interested in the other "components" like configuration, documentation, CI/CD, packaging, issue management, and project setup in GitHub, etc.

I'd also be interested to learn about mechanisms that have ongoing capabilities beyond just spitting out an initial project structure.

What are the best tools you've seen that are cross-platform and support multiple languages and project types (microservice, CLI, desktop, etc.)?


  👤 caprock Accepted Answer ✓
I bootstrap each project by spending hours or even months finding and procuring just the right domain name. There is no other way.

👤 h2odragon
ugh. boilerplate.

nothing stirs the creative juice to a greater froth than the site of a blank window in a text editor. numerous projects begin as `thing.py` and after a hour or two of whacking get a better name.

copying ancillary files around from project to project is an invitation to propagate old mistakes, that you should be making fresh each time. Gaze upon the horror that is GNU Automake and despair.


👤 altdataseller
If it's a personal project, I usually reuse a lot of what I wrote in a previous project: everything from the deployment scripts to the boilerplate stuff like user auth. I don't bother with CI/CD, issue management, and everything optional that isn't needed to ship product.

If it's a work project, then I just throw my hands up and give up


👤 mejutoco
Sometimes I use this to abstract boilerplate https://github.com/cookiecutter/cookiecutter

It can use a repo as a template.

It supports some interactive questions to choose options but mostly it is jinja templates.

Having libraries would be another option.


👤 brightvegetable
I have the exact same questions, so I am building http://indiehackerstacks.com/

But to answer your question here, I am building it using NextJS stack (storage, etc) with tRPC.


👤 cuu508
Brainstorm and plan on paper, experiment in a throwaway directory.

If the experiment gets to a stage where I want to track progress, run git init.

If it gets to a stage where I want to publish my progress, push to github, add README, CHANGELOG, LICENSE etc.