Anime Scroll is a Next.js 14-based application that leverages server actions for efficient API calls, implements infinite scrolling for seamless content loading, and enhances user experience with Framer Motion animations. Ideal for anime enthusiasts, it integrates features such as data fetching from the Shikimori API, client-side rendering with motion components, and optimizations for improved performance.
- Server Side App with Next.js 14: Utilizes the latest version of Next.js for server-side rendering and server actions.
- Server Actions: Abstracts the process of making API calls from client to server, allowing you to perform create, update, and delete actions alongside typical read operations.
- Infinite Scroll: Implements infinite scrolling to dynamically load content as the user scrolls.
- Framer Motion Animations: Enhances the user interface with smooth and interactive animations.
- Next.js 14
- React
- Framer Motion
- Shikimori API
- react-intersection-observer
Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.
- Node.js (v14 or later)
- npm or yarn
- Clone the repository:
git clone https://github.com/ankitray-dev/anime-scroll.git
- Navigate to the project directory:
cd anime-scroll
- Install dependencies:
or
npm install
yarn install
- Start the development server:
or
npm run dev
yarn dev
- Open your browser and go to
http://localhost:3000
to see the app in action.
We welcome contributions from the community. To contribute, follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
- Make your changes and commit them:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature-name
- Open a pull request on GitHub.
This project is licensed under the MIT License.
- Thanks to the creators of Next.js, Framer Motion, and Shikimori API.
- Special thanks to the developers who contributed to the react-intersection-observer package.
For questions or feedback, please contact Ankit at [[email protected]].