- This repo exists to attempt to start new Blitz Projects with Chakra-UI and TypeScript straight from the get go
- I hope it helps
- Please feel free to raise issues and to contribute
- One Love
This is a Blitz.js app.
- Clone the Repo using this lil button over here
- Using the command line interface navigate to the cloned repo
- Install all the dependencies
- Run your app in the development mode.
Open http://localhost:3000 with your browser to see the result.
this app comes with authentication installed
you can signup and login staight off the bat
.env.local file has required environment variables:
.env.test.local file has required environment variables:
Runs your tests using Jest.
npm run test
Blitz comes with a powerful CLI that is designed to make development easy and fast. You can install it with
npm i -g blitz
blitz [COMMAND] dev Start a development server build Create a production build start Start a production server export Export your Blitz app as a static application prisma Run prisma commands generate Generate new files for your Blitz project console Run the Blitz console REPL install Install a recipe help Display help for blitz test Run project tests
You can read more about it on the CLI Overview documentation.
Here is the starting structure of your app.
BlitzApp ├── app/ │ ├── api/ │ ├── auth/ │ │ ├── components/ │ │ │ ├── LoginForm.tsx │ │ │ └── SignupForm.tsx │ │ ├── mutations/ │ │ │ ├── changePassword.ts │ │ │ ├── forgotPassword.test.ts │ │ │ ├── forgotPassword.ts │ │ │ ├── login.ts │ │ │ ├── logout.ts │ │ │ ├── resetPassword.test.ts │ │ │ ├── resetPassword.ts │ │ │ └── signup.ts │ │ ├── pages/ │ │ │ ├── forgot-password.tsx │ │ │ ├── login.tsx │ │ │ ├── reset-password.tsx │ │ │ └── signup.tsx │ │ └── validations.ts │ ├── core/ │ │ ├── components/ │ │ │ ├── Form.tsx │ │ │ └── LabeledTextField.tsx │ │ ├── hooks/ │ │ │ └── useCurrentUser.ts │ │ └── layouts/ │ │ └── Layout.tsx │ ├── pages/ │ │ ├── _app.tsx │ │ ├── _document.tsx │ │ ├── 404.tsx │ │ ├── index.test.tsx │ │ └── index.tsx │ └── users/ │ └── queries/ │ └── getCurrentUser.ts ├── db/ │ ├── migrations/ │ ├── index.ts │ ├── schema.prisma │ └── seeds.ts ├── integrations/ ├── mailers/ │ └── forgotPasswordMailer.ts ├── public/ │ ├── favicon.ico │ └── logo.png ├── test/ │ ├── setup.ts │ └── utils.tsx ├── .eslintrc.js ├── babel.config.js ├── blitz.config.ts ├── jest.config.ts ├── package.json ├── README.md ├── tsconfig.json └── types.ts
These files are:
app/folder is a container for most of your project. This is where you’ll put any pages or API routes.
db/is where your database configuration goes. If you’re writing models or checking migrations, this is where to go.
public/is a folder where you will put any static assets. If you have images, files, or videos which you want to use in your app, this is where to put them.
integrations/is a folder to put all third-party integrations like with Stripe, Sentry, etc.
test/is a folder where you can put test utilities and integration tests.
package.jsoncontains information about your dependencies and devDependencies. If you’re using a tool like
yarn, you won’t have to worry about this much.
tsconfig.jsonis our recommended setup for TypeScript.
blitz.config.tsis for advanced custom configuration of Blitz. Here you can learn how to use it.
jest.config.jscontains config for Jest tests. You can customize it if needed.
You can read more about it in the File Structure section of the documentation.
Blitz comes with a set of tools that corrects and formats your code, facilitating its future maintenance. You can modify their options and even uninstall them.
- ESLint: It lints your code: searches for bad practices and tell you about it. You can customize it via the
.eslintrc.js, and you can install (or even write) plugins to have it the way you like it. It already comes with the
blitzconfig, but you can remove it safely. Learn More.
- Husky: It adds githooks, little pieces of code that get executed when certain Git events are triggered. For example,
pre-commitis triggered just before a commit is created. You can see the current hooks inside
.husky/. If are having problems committing and pushing, check out ther troubleshooting guide. Learn More.
- Prettier: It formats your code to look the same everywhere. You can configure it via the
.prettierignorecontains the files that should be ignored by Prettier; useful when you have large files or when you want to keep a custom formatting. Learn More.
Read the Blitz.js Documentation to learn more.
The Blitz community is warm, safe, diverse, inclusive, and fun! Feel free to reach out to us in any of our communication channels.