anibalsantosgomez.film is a portfolio website showcasing analog photography. Built with a modern tech stack, the site leverages Next.js and various libraries to deliver a smooth and interactive user experience.
- Photo Gallery: Display high-quality analog photographs in a visually appealing gallery.
- Interactive Animations: Enhance user experience with smooth animations using Framer Motion.
- Contact Form: Allows visitors to get in touch through a contact form powered by Nodemailer.
- Content Management: Easily manage site content with TinaCMS.
- Validation: Ensure robust data handling with Zod.
- Next.js: Framework for building the React application.
- Framer Motion: For animations and interactive effects.
- Nodemailer: For handling contact form submissions.
- Sonner: For user notifications and alerts.
- TinaCMS: For content management and site editing.
- Zod: For schema validation and data handling.
-
Clone the Repository: Clone this repository to your local machine.
git clone https://github.com/ansango/anibalsantosgomez.film.git
-
Install Dependencies: Navigate to the project directory and install the necessary dependencies.
cd anibalsantosgomez.film npm install
-
Set Up Environment Variables: Create a
.env.local
file in the root directory of the project and add your environment variables as follows:# ENV NEXT_PUBLIC_TINA_CLIENT_ID=*** TINA_TOKEN=*** # AWS S3 config S3_REGION=*** S3_BUCKET=*** S3_ACCESS_KEY=*** S3_SECRET_KEY=*** NEXT_PUBLIC_BUCKET_URL=*** # Nodemailer config NODEMAILER_PASS=*** NODEMAILER_USER=*** NODEMAILER_HOST=*** NODEMAILER_PORT=*** # Public URI NEXT_PUBLIC_WEB_URI=*** # Google Analytics NEXT_PUBLIC_GA_MEASUREMENT_ID=***
-
Run the Development Server: Start the development server to see the application in action.
npm run dev
The application will be available at http://localhost:3000.
-
View the Portfolio: Navigate through the portfolio to explore the gallery of analog photographs.
-
Contact Form: Use the contact form to get in touch or send inquiries. Ensure your email configuration is set up correctly to handle submissions.
-
Content Management: Edit and manage content using TinaCMS, accessible via the provided interface.
For deployment, you can use Vercel or any other preferred hosting provider. Follow their respective documentation for deployment instructions.
Contributions are welcome! Please fork the repository and submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.
- Next.js for the framework.
- Framer Motion for animations.
- Nodemailer for email handling.
- Sonner for notifications.
- TinaCMS for content management.
- Zod for schema validation.
For any questions or support, please open an issue in the repository.