Live Demo: am-i-here-or-not
Am I Here or Not? is a high-contrast, editorial-style photo gallery and creative manifesto built with Next.js. This project explores experimental photography and self-inquiry through a dynamic, magazine-inspired design. It features four thematic pages that guide the user through a unique narrative from the model's perspective:
- Home (
/): The landing page, posing the central question, "Am I Here or Not?" - Subject (
/subject): An "About Me" page that delves into the model's identity and story. - Focus (
/focus): A horizontal, scroll-driven gallery showcasing a collection of experimental photography. - Signal (
/signal): A "Contact" page for reaching out and connecting.
This project is built with a modern tech stack and includes several notable features:
-
Framework: Built with Next.js 14 (App Router) and TypeScript for a robust, type-safe, and performant application.
-
Styling: Styled with Tailwind CSS v4 for a utility-first CSS workflow.
-
Animations: - Powered by GSAP (GreenSock Animation Platform) for high-performance, complex animations. - Implements
ScrollTriggerfor engaging scroll-based animations. - Features smooth scrolling powered by Lenis. -
Interactive UI/UX: - Follow Cursor: A custom cursor that provides a unique and interactive user experience.
-
Performance: Leverages Turbopack, Next.js's Rust-based bundler, for an optimized and fast development experience.
-
Code Quality: Enforced with Biome for linting and formatting, ensuring a clean and consistent codebase.
First, install the dependencies:
Prerequisites: Node.js 18 LTS or later is recommended.
npm install
# or
yarn install
# or
pnpm installThen, run the development server with Turbopack for faster builds:
npm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 in your browser to see the website.
The page will automatically reload when you make changes to the code. You can also view any build errors or lint warnings in the console.
npm run dev- Starts the development server with Turbopacknpm run build- Creates an optimized production build.npm run start- Starts the production server (after building).npm run lint- Runs Biome to check for code issues.npm run format- Formats code with Biome.
The project uses Tailwind CSS v4 with custom utilities. To change the color scheme or styling:
- Edit
src/app/globals.cssto update CSS variables and custom utilities - Modify Tailwind classes in component files
- The color palette and design tokens are defined in the global CSS file
To add a new page:
- Create a new folder in
src/app/ - Add a
page.tsxfile with your page component - Update the navigation in
src/components/Navbar.tsx
A brief overview of the project's directory structure:
π am-i-here-or-not
βββ π public
β βββ π images
βββ π src
β βββ π app
β β βββ π focus
β β βββ π signal
β β βββ π subject
β βββ π components
β βββ π fonts
β βββ π libs
β βββ π utils
βββ .gitignore
βββ LICENSE.md
βββ README.md
βββ biome.json
βββ next.config.ts
βββ package-lock.json
βββ package.json
βββ postcss.config.mjs
βββ tsconfig.json
To create a production build and start the production server:
npm run build
npm run start- Port already in use:
npm run dev -- -p 3001- Dependency issues:
rm -rf node_modules package-lock.json
npm install-
Linting or Formatting Errors: Run
npm run lintornpm run formatto fix issues automatically. -
Build failures: Check console error messages; ensure all dependencies are installed and compatible versions are used.
-
GSAP and animation issues: Ensure GSAP animations are triggered after component mount.
This project uses Biome for linting and formatting, complemented by Prettier, to ensure a clean and consistent codebase.
- Run
npm run lintto check code style - Run
npm run formatto automatically format your code with Biome.
Here is a fresh, updated responsive-focused roadmap for your photography portfolio site:
This portfolio is evolving with future features planned for a seamless, responsive experience:
- Mobile-First Design: Optimized layouts ensuring smooth browsing on phones and tablets.
- Performance Enhancements: Fast-loading images and efficient resource management for all devices.
Your feedback and suggestions are welcome!
Open to suggestions and feedback! To contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeatureName). - Commit your changes (
git commit -m 'Add some feature'). - Push to the branch (
git push origin feature/YourFeatureName). - Open a pull request.
This project is licensed under the MIT License. See the file for more information.