* Version Packages
* chore: its a minor not major
* pnpm lock fix
* Apply suggestions from code review
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* Version Packages
* make the version 2.1.0
* Update integration-tests/no-suspense/package.json
* pnpm lock fix
* use latest pnpm version
* Revert "use latest pnpm version"
This reverts commit 5fab234a4a.
* Revert "pnpm lock fix"
This reverts commit 690a467cf7.
* Revert "make the version 2.1.0"
This reverts commit 922e95156f.
* make the version 2.1.0
* pnpm lock fix
* fix
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* Use this.rootContext instead of webpack internals
Ensures the root context is read from the public API that webpack exposes. This is the first step for Turbopack support as Turbopack includes `this.rootContext` as well
* Turbopack support for Blitz
* Update packages/blitz-rpc/src/server/loader/server/loader-server.ts
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
* fix: CI and update next.js version in test app
* feat: add tests for turbo and expose new `turbo` boolean
* upgrade to latest next version
* use latest canary in internal packages and tests
* chore: add changeset
* chore: minor fix on how the test is run
* fix stray DYNAMIC_SERVER_USAGE thrown
* cleanup
* chore: changeset
* pnpm lock fix
* fix turbo tests
* fixes
* oops
* add turbo config only when needed
* remove need for any change to `next.config.js`
---------
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* fix: process.kill("SIGABRT") not supported on windows
* fix: use process.kill("SIGINT") across all operative systems
* Update .changeset/clever-insects-shave.md
---------
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* fix: remove custom errors thrown by blitz
* Create curvy-cougars-lick.md
* use require and eval rather than the await which becomes a `yield import` possibly causing the issue
* pnpm lock fix
* Update .changeset/curvy-cougars-lick.md
* add comment
* use correct error type
* Apply suggestions from code review
* perf: add check to make sure only non expired sessions are selected by default
* remove console.logs
* Create chatty-ants-bake.md
* remove `expiresAt` from the publicData
* remove internal from changelog
---------
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* Added support for legacy projects that have the pages folder located inside a /src directory
* Fixed line 687 for path.resolve(`${findPagesDirectory}/api/rpc`) not actually calling the function and added path.resolve's to findPagesDirectory
* Update for lines 56 and 1340 to add support for app and pages directories located in /src
* new blitz app starter
* tanstack form first time working
* complete app template
* re-arrange generator folders
* add app router as recomended
* upgrade to next 13.5.2 and update location of internal function
* Create lucky-teachers-sleep.md
* fix bootupMarkers
* fix issues with qm integration test
* Update integration-tests/utils/next-test-utils.ts
* next.js generated stuff
* Update .changeset/lucky-teachers-sleep.md
* remove unnecessary next lints to the integration-tests
* Update main.yml
* Revert "remove unnecessary next lints to the integration-tests"
This reverts commit 3226b2e3ba.
* fix starter with tanstack form
* make changes to the generator
* mske final changes
* pnpm lock fix
* more changes
* add logging to rsc invoke and decouple auth from rpc again
* implement object chaining
* add `onInvokeError` options to catch errors without manual wrapping
* rename `LoggerOptions` to `RpcLoggerOptions`
* spacing
* fix error typed to `any`
* update class code
* tests working again
* add last test case proving working modal of roles
* Create moody-pandas-do.md
* Apply suggestions from code review
* move app -> `src/app`
* move from auth -> (auth) directory structure
* review 1 fixes
* missing change from auth -> (auth) change
* review 2: more fixes and match old behaviour
* pnpm lock fix
* add new pages to the `pathsToMove` array
* remove submodule
* remove changelog from the template
* fix name of .env
* match readme
* march prisma schema
* match package.json
* match blitz-client and blitz-server files
* remove vercel logo
* remove `next13`
* upgrade next and add husky
* fix build error
* Create poor-bikes-wait.md
* Revert "remove `next13`"
This reverts commit c0d7f54ab1.
* remove next13
* re-add next 13 that exists in main
* Apply suggestions from code review
* pnpm lock
* improvements to the template
* fix location of imports in `reset-password` page
* Update packages/blitz/src/cli/commands/new.ts
Co-authored-by: Tobias <tobias@fixmycity.de>
* Update packages/generator/templates/app/src/pages/api/rpc/blitzrpcroute.ts
Co-authored-by: Tobias <tobias@fixmycity.de>
* fix auth -> (auth)
* Update packages/generator/templates/app/src/app/layout.tsx
Co-authored-by: Tobias <tobias@fixmycity.de>
* Apply suggestions from code review
Co-authored-by: Tobias <tobias@fixmycity.de>
* abstact forms as client compoennts and pages as rscs
* re-add proper singup mutation
* remove console.log
* fix additonal forms
* pnpm lock fix
* fix missing ,
* Add project package manager to postInstallSteps
* add husky
* move to devDeps
* add preview email
* remove extra components folder
* add 800px as maximum of body size
* remove auth from reset-password url
* fix non-existant compoennts
* pnpm
* fix favicon
* package.json fixes
* revert to `latest`
* move to `devDeps`
* add display names
* make it a template
* new route generator
* fidnally got it working
* add `isAppDir` check
* should be the final changes
* fix
* fix import error
* revert
* make zod optional when needed
* fix tests
* fix nullable issue
* Update packages/blitz-auth/src/server/auth-sessions.ts
* new folder structure
---------
Co-authored-by: Tobias <tobias@fixmycity.de>
* upgrade to next 14
* use default react import
* use `next/compat/router`
* set baseurl for next13 app
* get it working
* fix Error Component
* fix floating promisis
* Create modern-cups-cheat.md
* fix type of error boundary
* get react query working again
* remove experimental
* remove broken test since next export is removed
* fix qm integration test
* fix mismatch of cookie names in client and server
* fix `auth-with-rpc`
* fix unit tests
* fix snapshot
* remove `@tanstack/query-core` dep from `@blitzjs/rpc`
* Update .changeset/modern-cups-cheat.md
* fix: lockfile
* regression: re-export react query client utilites
* Update .changeset/modern-cups-cheat.md
* do not export `withRouter`
* revert change to `BlitzProvider`
* remove unnecessary next types
* add logic to auto handle role with usage of `redirectAuthenticatedTo`
* Create hot-knives-vanish.md
* fix `globalThis.__BLITZ_GET_RSC_CONTEXT` being overriden
* pnpm lock fix
* export `next-auth` and all its requirements in a sub-directory
* Create modern-insects-raise.md
* undo changes to `secure-password` adapter
* try another way
* Update .changeset/modern-insects-raise.md
* Update .changeset/modern-insects-raise.md
* patch next-auth
* add logging to rsc invoke and decouple auth from rpc again
* implement object chaining
* add `onInvokeError` options to catch errors without manual wrapping
* rename `LoggerOptions` to `RpcLoggerOptions`
* spacing
* fix error typed to `any`
* update class code
* tests working again
* add last test case proving working modal of roles
* Create moody-pandas-do.md
* Apply suggestions from code review
* blitz invoke logger
* fix logic to test the role
* add tests
* pnpm lock
* Create afraid-ligers-build.md
---------
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* feat: Load Head lazyily using `dynamic`
* feat: upgrate turbo and fix layout.tsx
* fix: pnpm lock version
* Create chatty-scissors-jump.md
* Update .changeset/chatty-scissors-jump.md
* fix: move `dynamic` call to the top of the file
* add loading state to be null and no ssr
* upgrade to next 13.5.2 and update location of internal function
* Create lucky-teachers-sleep.md
* fix bootupMarkers
* fix issues with qm integration test
* Update integration-tests/utils/next-test-utils.ts
* next.js generated stuff
* Update .changeset/lucky-teachers-sleep.md
* remove unnecessary next lints to the integration-tests
* Update main.yml
* Revert "remove unnecessary next lints to the integration-tests"
This reverts commit 3226b2e3ba.
* chore: add nix
This could help contributers... contribute!
* build: use turborepo pipelines for coordination
instead of hacking it with sleeps and such....
* chore: update dev script
now we're cooking with gas! no more hacks, no more awkward flags
* chore: update pnpm version requirement
you want to support v6?? then use a v6-compatible pnpm version
* chore: update pnpm-lock
* improve blitz rpc logging
* implement improved setup with jsdoc comments
* make it verbose by default
* change routePath to resolverName for easier use
* Update packages/blitz-rpc/src/index-server.ts
* rename to make language more inclusive
* set output as debug
* Create sixty-rockets-count.md
* Update sixty-rockets-count.md
* Update sixty-rockets-count.md
* fix verbose bug
* Apply suggestions from code review
Co-authored-by: Brandon Bayer <b@bayer.ws>
---------
Co-authored-by: Brandon Bayer <b@bayer.ws>
* fix: make Next.js version stick to 13.3.4
* fix: upgrade Next.js from 13.3.4 to 13.4.5
---------
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* initial port
* read custom template values from blitz-server
* fix unit tests
* add unit tests
* remove comments
* make db import generic
* fix blitz genrate not updating values
* cleanup
* fix parent generation in createMutation and components, and move existing pages when --parent is called
* cleanup
* Create silly-peas-work.md
* Update .changeset/silly-peas-work.md
* add types for codegen
* fix belongsTo not working
* fix pnpm-lock
* use latest blitz logging setup in generator
* show error when structure of codegen is incorrect using zod
* cleanup
* make prisma import generic
* update tests
* generic prisma to work on subsequent runs
* initial commit adding dropdown option when using belongTo and parent flag
* cleanup
* fix --parent flag
* fix type
* Update getUsers.ts
* fix duplicate
* update prop type to options for --parent or belongsTo option and add LabelSelectField
* update tests
* Update blitz-server.ts
* fix lock file and add react-final-form select component
* fix default bug for string values in #2863
* Update apps/toolkit-app/app/blitz-server.ts
* update to latest changes
* implement suggessions
* fix tests and remove custom log
* add required test and remove error if prisma does not exist
* remove error log if no prisma schema
* works without prisma
* move zod to devDeps
* fix zod version
* preWriteFile and postWriteFile hooks
* fix pnpm lock
* Update packages/generator/src/generators/template-builders/field-values-builder.ts
Co-authored-by: John Vandivier <vandivier_john@yahoo.com>
* initial revert changes to log and add better types
* minor fix
* minor fix
* Update main.yml
* fix playwright issue
* Update main.yml
* try agin
* fix env location
* fix path
* fix version
* try another way
* with deps
* fix version
* cleanup
* add new zod `datetime`
Co-authored-by: Tobias <tobias@fixmycity.de>
* pnpm lock
* update zod to 3.20.0 in generator
* update unit tests
* Create pr-release.yml
* add changeset pre exit to fix error
* update to latest
* fix syntax
* try again
* feature: Consolidate mutations schema to schemas.ts file (#4057)
* fix global install issue
* update the templates from suggestions
* merge the default and custom config
* fix custom codegen
* fix validations
* add partial type to codegen
* commit to rerun the action
---------
Co-authored-by: John Vandivier <vandivier_john@yahoo.com>
Co-authored-by: Tobias <tobias@fixmycity.de>
* secure-password breaking changes
* fix
* more fixes
* fix secure-password imports
* add codemod
* add secure-password to auth integration test
* Apply suggestions from code review
* try adding playwrigth to package.json
* without server mode
* add one to fix conficting ports
* another try
* add waitPort in the right place
* use same port
* manually kill the process
* remove the server mode
* cleanup
* change rpc route basepath includeRPC in monorepos to be one folder up
* changeset
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
* redesign index page for full app template
* pnpmlock
* iteration 2
* Add padding around blitz logo
* Fix more padding
* update padding for logo and button container
* increase max-width
* final draft
* address comments
Co-authored-by: Brandon Bayer <b@bayer.ws>
The previous solution did solve the if-statement but not the line below, which still had this TS error:
```
const relationType = Relation[_fieldName]
// ^- const _fieldName: string | undefined
// Type 'undefined' cannot be used as an index type.ts(2538)
```
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
Co-authored-by: Siddharth Suresh <siddh.suresh@gmail.com>
* Use the new nextjs constant to check if SSR and fix suspense for nextjs 13.1 and above
* satisfy version from 13 to 13.0.6
* check for DYNAMIC_SERVER_USAGE error string for nextjs versions 13-13.0.6
* Create fluffy-coats-flow.md
* revert toolkit-app update to next 13.1
* set error message for compatability with next 13.0.7
* fix changeset
* Reference `vitest.config.ts` instead of jest for README|s
* Update apps/toolkit-app/README.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
This comment was helpful but could be even more helpful if it clearly stated that it referenced the "P"-Code; and link to docs to learn more.
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* inital unwrapping of blitz rpc from blitz auth
* fix linr
* Revert "fix linr"
This reverts commit 000e2c7259.
* remove duplication of code and dynamically import blitz auth if plugin is used
* return types to blitz-auth and import in rpc as types
* remove excess files from git diff
* remove todo ts-ignore
* add changeset
* better error messages
* Update odd-cars-fry.md
* switch from blitz log to console - due to import error.
* Revert "Merge branch 'rpc-without-auth' of https://github.com/blitz-js/blitz into rpc-without-auth"
This reverts commit 5b45d65b4d, reversing
changes made to b15dfa6dec.
* Revert "switch from blitz log to console - due to import error."
This reverts commit b15dfa6dec.
* Revert "better error messages"
This reverts commit 75922cb063.
* fix location of seting global variable
* better error message due to dynamic import
* allow setting csrf token in blitz rpc
* cleanup
* fix
* pnpm lock fix and update csrf api
* fix global.ts type definition
* remove change to merge
* fix pnpm-lock
* update integration-tests to work without blitz-auth
* initial working commit after switch to plugin system
* fix pnpm-lock
* readd the changeset
* update hook names
* Revert "readd the changeset"
This reverts commit 796f3f518e.
* Revert "update hook names"
This reverts commit fb127ed84e.
* Revert "fix pnpm-lock"
This reverts commit d7447b5966.
* Revert "Revert "fix pnpm-lock""
This reverts commit c2f21aa0e5.
* Revert "Revert "update hook names""
This reverts commit 4b66846b20.
* Revert "Revert "readd the changeset""
This reverts commit c95d150e64.
* add header to rpc plugin
* pnpm lock fix
* cleanup - change global hook names to prefix with __BLITZ
* initial commit suggestion - TODO Fix types
* fix most type assertions
* fix error without blitz auth
* add typea to events and middleware reducers
* implement suggestion
* Apply suggestions from code review
Co-authored-by: Brandon Bayer <b@bayer.ws>
* move onSessionCreated event from blitz-auth to blitz-rpc
* move globals to blitz core, move event listener to blitz-next
* remove middlewareCtx to Ctx
* fix imports
* improve type definition of hook types
* format
* Revert "remove middlewareCtx to Ctx"
This reverts commit 4259b4dbed.
* Revert "fix imports"
This reverts commit 7422bfaee3.
* revert changes from MiddlewareCtx to Ctx
* pnpm lock and other fixes
* remove type assertion
* merge to one `Array.reduce`
* Apply suggestions from code review
Co-authored-by: Brandon Bayer <b@bayer.ws>
* implement review suggestions
* Update packages/blitz/src/types.ts
* add unit tests
* cleanup
* Update packages/blitz/tests/plugin.test.ts
* add providers to plugin reduce
* add initial integration test for full blitz rpc+auth and custom client plugins
* test commenting out playwright install
* fixes
* remove changes related to console.log checking
* test
* try with different command
* comment
* another try
* try adding global install
* change console.log to console.info for better identification
* fix db
* lowdb import fix
* convert from lowdb to prisma
* fix blitz build error
* add custom plugin events to integration-tests
* manipulate the timing of event firing
* fix
* check
* add middleware tests
* fix
* fix commented test and cleanup
* add the migration file
Co-authored-by: Brandon Bayer <b@bayer.ws>
* Switch from jest to vitest in new app templates
* Finish vitest setup
* Handle vitest.config.js vs vitest.config.ts
* Add proper vitest config to js templates
* Add changeset
* Update READMEs in new app templates
* Fix tests after vitest upgrade
* Update spyOn references in tests
* fix: builder execute command hangs up
* using "blitz install" inside recipe with addRunCommandStep causes hangs up
Co-authored-by: Selçuk Fatih Sevinç <selcuk@hub.studio>
* Extend paginate.ts to support more complex pagination object
* change pagination object based on reviewer suggestion
* changest inclusion
* update paginate test
Co-authored-by: Paul Moss <paulmoss06@gmail.com>
* fix: remove views from public Session data
* add changeset
* Update .changeset/strong-keys-lie.md
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
* Throw redirect errors when component has mounted
* Create heavy-cobras-own.md
* clean up useEffect
* Add mounted check for AuthenticationError
* remove clean up
* Version Packages (beta)
* Update version number
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* Fixes#3614 - changed console logs to standard logger
I tried to keep the logging format close to what has been present before, by also including the chalk package for coloring.
* Create great-candles-stare.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* Simple function to call new on every cli invocation to update blitz
* Fix printing of how to
* Catch network errors
* Cleanup
* Loop through all locally installed and packages and check if an update is needed
* cache checkForLatestVersion so it runs only on every 24 hours
* make update message pretty
* uncomment shouldUpdate boolean
* run checkLatestVersion on dev command and new
* Dont run in our monorepo + small changes
* Create curly-seas-serve.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* Fix prefetchQuery getting key for infinite wrong
* Add new webpack loader to transform resolvers server-side to have _routePath and other meta values
* Fix key error when loading dehydrated props
* Add unit-tests for loader-server-resolvers.ts
* If project name argument is set to "." change it to current folder name
* Create two-carpets-rhyme.md
Co-authored-by: Dillon Raphael <dillon@creatorsneverdie.com>
* Set up middleware integration test application
* Add middleware integration test
* Update pnpm lock
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
* change BlitzApiRequest to NextApiRequest & update import map & fail catch for custom server
* fix page consolidation when there are sub directories
* Update prisma db export/import
* Update db imports in templates
* update root types file
* update error messages + merge main + changeset
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* init migrate cli command
* make sure migrate command can only be run in legacy blitz directory
* extract codemods into its own package/cli
* removed unused dependencies
* renamed codemods bin directory
* update next.config file to use withBlitz
* codemods update package.json step
* codemod for blitz server & client setup, as well as the blitz rpc route in pages dir
* fix ignore previous step if statement to check for less than instead of equal
* move files from app/pages to root pages directory
* remove blitz babel plugin & update imports inside app dir
* consolidate pages from app dir to root pages dir
* move all api directories to the root pages dir
* use generator templates for blitz rpc route & server/client setup files
* update custom server file
* make custom server step work with require statement & import statements
* useRouterQuery to useRouter().query
* pkg dependecy & import map updates
* Change import map
* Add BlitzLayout to import map
* import withBlitz and wrap App function in _app
* modify _document to use next.js imports
* fix default import for next modules & add useParam to source map
* gssp/gsp
* api routes
* dont run api wrap on rpc/[[...blitz]] & error on usage of local middleware
* DRY cleanup
* update codemod steps
* add ignore extension to getAllFiles
* add more imports to source map
* check for invokeWithMiddleware
* add error counter to middleware checker
* rename codemod & fix silly typo error
* update bin file & change all invokeWithMiddleware to invoke
* add logging from blitz
* manypkg fix
* add codemod test
* lockfile
* fix test
* show errors for invokeWithMiddleware
* update invokeWithMiddleware error message
* line break in new app generator before your new blitz app is ready
* Apply suggestions from code review
* Add changeset
* changeset
* pnpmlock
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* add strict-peer-dependencies=false
side-effects-cache=false to npmrc generator template
* add comment to generated npmrc file
* update versions of next for full and minimal templates
* pinned next version to 12.1.6 in generator templates
* add next back to root package
* fix lock file
* add changeset
Co-authored-by: Aleksandra <alexsandra.sikora@gmail.com>
* no suspense test and trailing slash test
* use playwright for integration tests
* remove seed from server mode test in auth integration
* change pkg-dir version for blitz cli
* use pkg-dir 5.0.0
* clean up
* move seed location in auth test
* explict timeout for auth test
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
* init tests
* fix custom blitz provider for testing-library render function
* fix mutation test setup and set globaThis react environment to true so the act function will work
* added query tests & moved blitz test utils to the utils dir
* clean queries and mutation test files
* remove .env file from qm tests
Co-authored-by: beerose <alexsandra.sikora@gmail.com>
<h5 align="center">"Zero-API" Data Layer — Built on Next.js — Inspired by Ruby on Rails</h3>
<h3 align="center"><a href="https://blitzjs.com/docs/get-started" target="_blank">Read the Documentation</a></h3>
<br>
“Zero-API” data layer **lets you import server code directly into your React components** instead of having to manually add API endpoints and do client-side fetching and caching.
New Blitz apps come with **all the boring stuff already set up for you!** Like ESLint, Prettier, Jest, user sign up, log in, and password reset.
Provides **helpful defaults and conventions** for things like routing, file structure, and authentication while also being extremely flexible.
<h1 align="center">The Missing Fullstack Toolkit for Next.js</h1>
<br>
### Quick Start
You need Node.js 12 or newer
#### Install Blitz
Run `npm install -g blitz` or `yarn global add blitz`
@@ -53,37 +40,8 @@ _You can alternatively use [`npx`](https://www.npmjs.com/package/npx)_
[The Blitz Manifesto](https://blitzjs.com/docs/manifesto) explains these principles in detail.
<br>
### What is Blitz Designed For?
Blitz is designed for tiny to large database-backed applications that have one or more graphical user interfaces.
While we currently only support web, we are pursuing the dream of a single monolithic application that runs on web and mobile with maximum code sharing and minimal boilerplate.
<br>
## Welcome to the Blitz Community 👋
The Blitz community is warm, safe, diverse, inclusive, and fun! LGBTQ+, women, and minorities are especially welcome. Please read our [Code of Conduct](https://blitzjs.com/docs/code-of-conduct).
@@ -108,16 +66,22 @@ Your financial contributions help ensure Blitz continues to be developed and mai
### 🔧 New Blitz Auth Hook `useAuthenticatedBlitzContext`
This hook is implemented as the replacement of the [`BlitzPage` seurity auth utilities](https://blitzjs.com/docs/authorization#secure-your-pages) provided for the pages directory to work with React Server Components in the Nextjs 13 app directory
It can be used in any asynchronous server component be it in `page.ts` or in the layouts in `layout.ts`
It uses the new [`redirect` function](https://beta.nextjs.org/docs/api-reference/redirect) to provide the required authorization in server side
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) + [`Blitz Auth`](https://blitzjs.com/docs/auth).
## Getting Started
First, run the development server:
```bash
npm run dev
# or
yarn dev
```
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
You can go to the `/signup` page and create a new account.
## Learn More
To learn more about Next.js and Blitz.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
- [Blitz.js Documentation](https://blitzjs.com/docs/) — learn about Blitz.js.
- [Blitz Auth Documentation](https://blitzjs.com/docs/auth) — learn about Blitz Auth plugin.
Blitz comes with a test setup using [Jest](https://jestjs.io/) and [react-testing-library](https://testing-library.com/).
## Commands
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](https://blitzjs.com/docs/cli-overview) documentation.
## What's included?
Here is the starting structure of your app.
```
__name__
├── src/
│ ├── 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
│ │ └── layouts/
│ │ └── Layout.tsx
│ ├── pages/
│ │ ├── _app.tsx
│ │ ├── _document.tsx
│ │ ├── 404.tsx
│ │ ├── index.test.tsx
│ │ └── index.tsx
│ └── users/
│ ├── hooks/
│ │ └── useCurrentUser.ts
│ └── 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:
- The `src/` 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.json` contains information about your dependencies and devDependencies. If you’re using a tool like `npm` or `yarn`, you won’t have to worry about this much.
-`tsconfig.json` is our recommended setup for TypeScript.
-`.babel.config.js`, `.eslintrc.js`, `.env`, etc. ("dotfiles") are configuration files for various bits of JavaScript tooling.
-`blitz.config.ts` is for advanced custom configuration of Blitz. [Here you can learn how to use it](https://blitzjs.com/docs/blitz-config).
-`jest.config.js` contains config for Jest tests. You can [customize it if needed](https://jestjs.io/docs/en/configuration).
You can read more about it in the [File Structure](https://blitzjs.com/docs/file-structure) section of the documentation.
### Tools included
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 [`blitz`](https://github.com/blitz-js/blitz/tree/canary/packages/eslint-config) config, but you can remove it safely. [Learn More](https://blitzjs.com/docs/eslint-config).
- **Husky**: It adds [githooks](https://git-scm.com/docs/githooks), little pieces of code that get executed when certain Git events are triggerd. For example, `pre-commit` is triggered just before a commit is created. You can see the current hooks inside `.husky/`. If are having problems commiting and pushing, check out ther [troubleshooting](https://typicode.github.io/husky/#/?id=troubleshoot) guide. [Learn More](https://blitzjs.com/docs/husky-config).
- **Prettier**: It formats your code to look the same everywhere. You can configure it via the `.prettierrc` file. The `.prettierignore` contains 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](https://blitzjs.com/docs/prettier-config).
## Learn more
Read the [Blitz.js Documentation](https://blitzjs.com/docs/getting-started) 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.
- [Website](https://blitzjs.com)
- [Discord](https://blitzjs.com/discord)
- [Report an issue](https://github.com/blitz-js/blitz/issues/new/choose)
// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.