This is a Nuxt.js project configured with various useful modules and features. The app is built using Nuxt 3 and includes functionalities such as internationalization, image optimization, SEO optimization, social media sharing, security headers, and more.
- Modules: Uses a set of Nuxt modules for improving app functionality:
@nuxt/eslint
: Linting configuration.@nuxtjs/i18n
: Internationalization support with multiple languages.@nuxt/image
: Image optimization.@vueuse/nuxt
: Useful Vue composition API utilities.nuxt-security
: Enhances security headers.@nuxt/content
: Content management.@nuxtjs/seo
: SEO optimization.@stefanobartoletti/nuxt-social-share
: Social media share buttons.@nuxthub/core
: Integrates with Nuxthub for previewing and deployment.
- Node.js
- pnpm (package manager)
-
Clone this repository:
git clone https://github.com/narr07/permadi cd permadi
-
Install dependencies:
pnpm install
-
Configure environment variables (if needed).
Run the development server:
pnpm dev
To build the project for production:
pnpm build
For static site generation:
pnpm generate
Preview the site:
pnpm preview
To deploy using Nuxthub:
pnpm deploy
The project includes several custom configurations in nuxt.config.js
, including:
- Content Database: The project uses
d1
for the content database, bound topermadi
. - Social Share: Base URL is set to
https://permadi.dev
. - SEO: Site metadata like description, URL, and locale are pre-configured.
- Security: Security headers like
ContentSecurityPolicy
,X-Frame-Options
, andReferrerPolicy
are enabled for better app protection.
This app is set up with two languages:
id
: Indonesianen
: English
It uses @nuxtjs/i18n
to detect and manage languages, with support for lazy loading of translation files.
The project uses nuxt-booster
for detecting performance issues and optimizing SSR. Key configurations include:
- Lazy Loading: Components and assets are lazily loaded.
- Image Optimization: Images are optimized with the
ipx
provider and support forwebp
format.
- Build:
pnpm build
- Development:
pnpm dev
- Generate:
pnpm generate
- Preview:
pnpm preview
- Deploy:
pnpm deploy
- Lint:
pnpm lint
- Fix Linting:
pnpm lint:fix
To deploy the app, you can use Nuxthub
for easy deployment:
pnpm deploy
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to make contributions or raise issues to help improve the project.