Pokemon

screenshot of Pokemon
nextjs
react
tailwind
radix-ui
shadcn-ui
drizzle-orm

Pokemon

A Next.js 13 application built using the new router, server components and server actions, as well as NextAuth.js, Drizzle ORM and Turso in an Nx monorepo

Overview:

The PokémonA Next.js 13 application is a project built to explore the use of server actions, server components, Drizzle ORM, and the new intercepting/parallel routes in Next.js. It also integrates authentication using NextAuth.js and utilizes Turso for the database. However, it is important to note that this app may not be using the best practices since server actions are still in alpha, and there may be issues when running the app in an Nx monorepo.

Features:

  • Next.js App Directory: Utilizes the new Next.js app directory and its features such as dynamic open graph images and metadata.
  • Intercepting/Parallel Routes: Implements intercepting and parallel routes for improved functionality.
  • Authentication with NextAuth.js: Integration of NextAuth.js for user authentication.
  • Drizzle ORM: Uses Drizzle ORM for database operations.
  • Turso Database Integration: Integrates Turso as the database for the application.
  • TypeScript: Implements TypeScript for improved type safety.

Installation:

To run the PokémonA Next.js 13 application locally, follow these steps:

  1. Install dependencies using npm.
  2. Copy the .env.example file to .env and update the variables, including setting up GitHub OAuth.
  3. Run the database migrations and seed the database.
  4. Start the development server.

Summary:

The PokémonA Next.js 13 application is a project that explores the use of server actions, server components, Drizzle ORM, and intercepting/parallel routes in Next.js. It also integrates authentication using NextAuth.js and utilizes Turso as the database. However, it is important to note that the app may not follow best practices and may have some issues when running in an Nx monorepo. Overall, it serves as a playground for experimenting with these technologies.

nextjs
Next.js

Next.js is a React-based web framework that enables server-side rendering, static site generation, and other powerful features for building modern web applications.

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

tailwind
Tailwind

Tailwind CSS is a utility-first CSS framework that provides pre-defined classes for building responsive and customizable user interfaces.

radix-ui
Radix UI

Radix Primitives is a low-level UI component library with a focus on accessibility, customization and developer experience. You can use these components either as the base layer of your design system, or adopt them incrementally.

shadcn-ui
Shadcn UI

Beautifully designed components that you can copy and paste into your apps. Accessible. Customizable. Open Source.

drizzle-orm
Drizzle ORM

Drizzle ORM is a TypeScript ORM for SQL databases designed with maximum type safety in mind. It comes with a drizzle-kit CLI companion for automatic SQL migrations generation. Drizzle ORM is meant to be a library, not a framework. It stays as an opt-in solution all the time at any levels.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

framer-motion
Framer Motion

Alpine.js is a lightweight JavaScript framework that simplifies the process of creating dynamic, reactive user interfaces on the web. It uses a declarative syntax that offers a higher level of abstraction compared to vanilla JavaScript, while being more performant and easier to use than jQuery.

postcss
Postcss

PostCSS is a popular open-source tool that enables web developers to transform CSS styles with JavaScript plugins. It allows for efficient processing of CSS styles, from applying vendor prefixes to improving browser compatibility, ultimately resulting in cleaner, faster, and more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.

vercel
Vercel

Vercel offers built-in support for deploying and hosting Next.js applications, making it a popular choice among Next.js developers.