Built with Nuxt and TypeScript, styled with Tailwind CSS
portfolio-johann — Nuxt Portfolio Template
By cavalluccijohann
A personal portfolio template based on Nuxt, using Tailwind CSS and TypeScript, with built-in Nuxt Content/Studio content editing, a Resend contact form, and French/English bilingual support.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 3
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Integrates Nuxt Content and Nuxt Studio for editing pages and text in the browser
Built-in French and English bilingual switching (i18n)
Contact form sends emails via Resend, requiring an API key configured in environment variables
Uses Vue Sonner for operation notifications, with an ESLint code standard configuration
Supports static generation (bun generate) and can be deployed to static hosting
Template Details
This is a personal portfolio template built with Nuxt, using Tailwind CSS for styling and written in TypeScript. The README states that it covers three areas: content editing, form handling, and internationalization. Content can be edited online through Nuxt Studio for pages and text; the contact form sends emails via Resend; the interface supports both French and English. Notifications use Vue Sonner, and code standards are enforced by an ESLint configuration.
For usage, the repository provides steps from cloning, installing dependencies, and configuring environment variables to development, static generation, and production startup, using bun as the package manager. The build output is a static site (bun generate), making it suitable for deployment to static hosting environments.
Limitations to note: the contact form depends on Resend and requires the corresponding key in .env, otherwise the form will not work; the template itself does not include a backend service. Third-party assets such as images, fonts, and icons in the demo site need separate license verification; their availability cannot be determined solely by the code's Apache-2.0 license. The template does not specify the exact field structure of the content model, so actual modifications require consulting the Nuxt Content configuration and page files in the repository.
Is it right for your project?
Use Cases
- Personal developers building a portfolio site to showcase projects and experience
- Job-seeking or personal homepages that need French/English bilingual visitor access
- Those who want to update copy and page content through Nuxt Studio without code
- Personal sites deployed on static hosting that receive visitor messages through a form
Suitable For
- Frontend developers familiar with Nuxt and Tailwind CSS
- Individuals who need a bilingual portfolio and are willing to configure external services such as Resend themselves
- Site maintainers who want to maintain content with a visual editor rather than changing code each time
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
After cloning the repository, install dependencies with bun install
- 2
Create .env based on .env.example and fill in the required keys such as Resend
- 3
Use bun dev to start the development server, bun generate to generate a static site, and bun start to run in production mode
- 4
Content editing requires opening the project in Nuxt Studio
- 5
Third-party assets such as demo images, fonts, and icons need separate license verification
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis listing covers the free version under the Apache-2.0 license in the public repository; the free scope is the code of that version and does not mean external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution are permitted; the Apache-2.0 license must be included when distributing.
- Modified files must be prominently marked as changed, and relevant copyright, patent, trademark, and attribution notices must be retained.
- If the original project includes a NOTICE file, applicable attribution notices in it must be retained when distributing derivative works.
- The license includes an applicable contributor patent grant; initiating patent litigation as described in the license terminates that patent grant, and no trademark use rights are granted.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked under their respective licenses and cannot be determined solely by the code's Apache-2.0 license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
- The contact form depends on the Resend service and requires filling in the Resend API and other keys in .env according to .env.example, otherwise the form will not work.
- The contact form sends emails through the third-party service Resend; using this feature requires registering a Resend account and configuring an API key.
- Visual content editing depends on the external service Nuxt Studio; pages and text can only be edited online by opening the project in Studio.
View Original Text Basis
no-charge, royalty-free, irrevocable copyright license
Original License Text
# Create a .env file based on .env.example and fill in required keys (e.g., Resend API)
Original README
📨 [Resend](https://resend.com/emails) for contact forms
Original README
https://github.com/cavalluccijohann/portfolio-johann/blob/main/LICENSEhttps://github.com/cavalluccijohann/portfolio-johann/blob/main/README.mdContent can be modified easily via [Nuxt Studio](https://nuxt.studio/) – just open the project in Studio and edit pages or text dynamically.
Original README
Compiled by DeepSeek based on repository license and README ·2026-10-12. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 83 / 100
- Technologies
- Nuxt · Vue
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2025-11-19
- Screenshot last checked
- 2026-10-12
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies Nuxt as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Review declaration: [email protected] · 2026-10-13
Inspect the recorded source material
SHA-256: 94c1b3141780fd3eb0b3edebad030f18bca6fee6af393ebd6b840c6920c44800
2026-10-12T16:05:48.322Z
Source file / repository # Portfolio – Nuxt + Tailwind + TypeScript This is a modern and customizable portfolio template built with **Nuxt 3**, styled using **Tailwind CSS**, and enhanced with **TypeScript**. It includes content editing with **Nuxt Studio**, form handling with **Resend**, and internationalization support (**i18n**) for both **French and English**. ✨ Toast notifications are handled using Vue Sonner, and the codebase is kept clean with a solid ESLint setup. ## Features - ⚡️ [Nuxt 3](https://nuxt.com/) + TypeScript - 🎨 [Tailwind CSS](https://tailwindcss.com/plus) for fast UI styling - 🌍 i18n (FR / EN) - 📨 [Resend](https://resend.com/emails) for contact forms - 🧼 ESLint with a nice config - 🧑💻 Nuxt Studio for live content editing - 🔔 Toasts with [Vue Sonner](https://vue-sonner.vercel.app/) ## Quick Setup 1. Clone the repository ```bash git clone [email protected]:cavalluccijohann/portfolio-johann.git ``` 2. Install dependencies ```bash bun install ``` 3. Set up environment variables ```bash # Create a .env file based on .env.example and fill in required keys (e.g., Resend API) ``` 4. Start development server ```bash bun dev ``` 5. Build static project ```bash bun generate ``` 6. Launch in production ```bash bun start ``` ## Content Editing Content can be modified easily via [Nuxt Studio](https://nuxt.studio/) – just open the project in Studio and edit pages or text dynamically. ## Author --- - [Johann Cavallucci](https://johanncvl.com/) ---
Explore similar templates
Compare previews and descriptions within the same stack and category.

canvas
Canvas is a Nuxt-based portfolio template that uses Nuxt Content for content management and Nuxt UI with Tailwind CSS for pages.
Nuxt · Portfolio

portfolio
A Nuxt portfolio template using Nuxt UI for interface components and Nuxt Content for content, intended to showcase projects, skills, and blog.
Nuxt · Portfolio

nuxtjs-tailwindcss-portfolio
A Nuxt.js and Tailwind CSS personal portfolio starter theme with dark mode, theme switching, Vuex state management, reusable components, project category filtering and title search, Vue transition animations, a project carousel, smooth scrolling, a dynamic form, a counter, and back-to-top and download…
Nuxt · Portfolio

nuxt-resume
A personal resume website template built with Nuxt and Vue, with i18n multilingual support. Resume copy and page text are maintained through JSON files under locales, with English and Spanish provided by default; new languages can be registered in nuxt.config.js.
Nuxt · Portfolio

nano-portfolio
Nano Portfolio is an open-source developer portfolio template built on Nuxt 3, TypeScript, Nuxt UI, Tailwind, MongoDB, and Resend.
Nuxt · Portfolio

super-portfolio
Super Portfolio is a personal portfolio website template built with Nuxt 3, Tailwind CSS, and TypeScript, using Iconsax icons and Nuxt Google Font.
Nuxt · Portfolio
