A full-stack photo album solution that integrates AI intelligent processing, browser image compression, and other functions.
- 📷 Image upload and display with
hubBlob()
- 🌐 Cloud Storage: Blob powered by NuxtHub (cloudflare R2)
- 🤖 AI Integration: Support for OpenAI and Gemini for intelligent image processing
- 🗜️ Image Compression: Multiple format support (JPEG, WebP, AVIF) with JSQuash
- 🎨 Modern UI: Beautiful components with shadcn-vue and inspira-ui
- 🏃🏻 View transition API The View Transitions API provides a mechanism for easily creating animated transitions between different DOM states while also updating the DOM contents in a single step
- 🔑 Nuxt Auth Utils Minimalist Authentication module for Nuxt exposing Vue composables and server utils
- NuxtHub - A Nuxt toolkit to build fullstack applications on the edge
- UnoCSS - The instant on-demand atomic CSS engine
- shadcn-vue - Beautifully designed components built with Reka UI and Tailwind CSS
- inspira-ui - Collection of beautiful UI components to build stunning animated interfaces
- VueUse - Collection of useful composition APIs
- ESLint with @nuxt/eslint-config, single quotes, no semi
- TypeScript
- Clone this repository to your local machine.
- Install dependencies using the command
pnpm install
or your favorite package manager. - Run the application with the command
pnpm dev
or your favorite package manager.
If you don't have pnpm installed, run:
corepack enable pnpm
NUXT_ADMIN_PASSWORD
- A password to access the admin panel and upload images, will default toadmin
if not provided.NUXT_SESSION_PASSWORD
- A secret key for session encryption used by nuxt-auth-utils, will be generated automatically if not provided in development mode.NUXT_PUBLIC_TITLE
- The title of the application, will default toExif Gallery Nuxt
if not provided.NUXT_PUBLIC_DESCRIPTION
- The description of the application, will default toA full-stack photo album solution that integrates AI intelligent processing, browser image compression, and other functions
if not provided.
pnpm dev
Once you deployed your project, you can connect to your remote database locally running:
pnpm dev --remote
You can deploy this project on your Cloudflare account for free using NuxtHub.
npx nuxthub deploy
It's also possible to leverage Cloudflare Pages CI for deploying, learn more about the different options on https://hub.nuxt.com/docs/getting-started/deploy
Learn more about remote storage on https://hub.nuxt.com/docs/getting-started/remote-storage
Contributions are welcome! Feel free to open an issue to report a bug or submit a feature request via a pull request.
Thanks to exif-photo-blog Thanks to nuxt-image-gallery