Bison Release 1.12.0
We're excited to ship another version of Bison that not only improves the web apps we build for our clients, but also the developer experience of working on Bison apps.
Not familiar with Bison? It's Echobind's starter repository for full-stack Next.js web apps. Check out the links below for more background on Bison and how to use it:
Upgrade to Next.js 12 and React 18
As always, there are so many improvements introduced with each version of Next.js, and we’re excited to upgrade to the latest version. In particular, we’ve been taking advantage of the new middleware feature to protect pages and API routes.
This year, we are also looking into more ways to utilize React 18 features such as server components and streaming rendering to improve performance for client-side interactivity.
In order to upgrade to React 18, this also required an upgrade to Chakra 2.0, so be sure to follow their migration guide if you’re upgrading an older Bison app.
Prisma
Upgrading to the latest Prisma also provides many new features. One to highlight is how we are handling running seed scripts. We’ve introduced a new pattern for seeding development and production environments using two scripts, yarn db:seed and db:seed:prod respectively. Refer to our documentation to see how to organize your seed data and scripts.
TypeScript
We've upgraded Bison to use the latest version of TypeScript, 4.6. In addition to that, we've also enabled the strict compiler option and refactored the codebase to be even more strongly typed. This will help to enforce best practices to ensure all variables are typed which results in a more maintainable codebase.
Path Aliases
We’ve introduced the following path alias that will allow us to have cleaner imports by avoiding the use of relative imports:
"paths": { "@/*": ["./*"] },
We’ve refactored all relative imports in the template to use this new alias, here’s one example:
// Using relative import import { prisma } from '../../lib/prisma'; // Using path alias import import { prisma } from '@/lib/prisma';
ESLint
Our eslint-plugin-echobind has been upgraded to use ESLint 8. In addition to this, we also found and fixed a loophole in our CI that was allowing lint errors into the repository.
Windows
We’ve fixed a long-standing issue that prevented creating a new Bison app on Windows. With many more improvements planned for our CLI, we’ve updated our CI to run our CLI tests on Windows to ensure all features work on Windows going forward.
Contributing to the Bison Template
Check out our contributing guide for more information on how you can help out. Whether it's reporting bugs, creating pull requests, or participating in discussions, all contributions are welcome!