Feedback: just tried BASE for our project
spennyp opened this issue · 2 comments
Describe the solution you'd like
I just tried to use BOAT as the template for our next project at Paperclip Labs.
I ended up aborting, and starting fresh instead.
I want to provide my reasons, as maybe there is some useful feedback which can be extracted.
Feedback 1:
I think there is too much bloat in the template. The initial state is overwhelming, and I ended up gutting a lot of the code. My project only needed a subset of the functionality.
For example:
- I want to use chadcn ui, so most template components are not useful
- I don’t need any of the demo code
- I want to do most of my data fetching server side with Viem directly (with address as query param), so don’t need most of the helper hooks
- This project specifically didn’t need contracts, so I delete the contracts folder, and unnested the web app from the web folder
- The test files sprinkled throughout made it harder to navigate. Tbh I find it odd a template needs tests in general, see my points below about modularizing. Anything that needs to be tested should probably not live in the template.
Potential solution to address feedback 1:
- Instead of all or nothing, selecting which features you want to use in a console config prompt would be nice. Create next app does a good job of this.
- I think the “demo” app and the template should be separate, or at least an option to exclude the demo in the config prompt mentioned above.
Feedback 2:
I have an opinionated way I like to structure things, and I found myself reorganizing much of the template code. I realize that a template will never suit everyone, so take this with a grain of salt, maybe it’s just me being picky.
One of the reasons I love onchainkit is because it's just unopinionated utilities. You can import them and use however you like.
Potential solution to address feedback 2:
- Move anything that does’t need to be in the template into its own package (or maybe into onchainkit)
- I think addressing feedback 1, and trying to modularize would alleviate this in general, part of it was just getting bogged down in all the unneeded boilerplate.
I think BOAT is really great for people just getting started with all these tools, or for a quick hackathon project. But for me, and specifically the project I tried it on, in its current state I don’t think it is the best fit. I do wish something like this existed when I was first getting into building in this space.
To summarize, overall, my suggestions are:
- Keep it simple yet configurable, only add what the user wants.
- Modularize, which will help with^, since it will pull code out of the template and into packages.
I look forward to trying BOAT again for our next project, and really appreciate everything you guys are doing!
Describe alternatives you've considered.
No response
This feedback is GOLD, thank you so much @spennyp
I agree with everything written here. In the first 10 weeks of BOAT, we focused on finding our direction. We experimented with various ideas to determine which ones would stick and which ones wouldn't.
Feedback like this is incredibly valuable in helping us identify areas for improvement or enhancement. This feedback actually reflects many of the internal debates that the core team has been having recently, and you are assisting us in validating several points.
I will address each feedback individually and make progress on it over the next 4-5 weeks. I eagerly anticipate receiving more feedback from you as we continue to make significant progress.
On a positive note, I'm thrilled that you enjoy OnchainKit.
We started to introduce modular installs! - [feature] module installs
Not perfect but slowly getting there. Thank you for your detailed feedback!