π Recruiterre - Modern Job Board
A modern job board application built with Nuxt 3, featuring real-time search, filtering, and an interactive map interface.
Demo Β· Report Bug Β· Request Feature
π Support My Work
This template and many others are available at NuxtMint.com
Join our friendly Discord community to get help, share your ideas, and connect with other developers!
Features
- π Real-time job search and filtering
- πΊοΈ Interactive location mapping with Leaflet
- π Modern UI with Tailwind CSS
- π¨ Smooth animations and transitions
- π± Fully responsive design
- β‘ Server-side rendering with Nuxt 3
- π Markdown-based job listings
- π Dynamic content with @nuxt/content
Setup
Make sure to install dependencies:
pnpm install
Development Server
Start the development server on http://localhost:3000:
pnpm dev
Production
Build the application for production:
pnpm build
Locally preview production build:
pnpm preview
Deployment
We recommend using Cloudflare for deployment. This project is optimized for serverless environments and uses @nuxt/content for content management.
Setup with Cloudflare
- Create a D1 database in your Cloudflare account
- Update your
nuxt.config.ts:
export default defineNuxtConfig({
content: {
database: {
type: 'd1',
binding: '<YOUR_BINDING_NAME>',
},
},
});
- Deploy using Cloudflare Pages with the following settings:
- Build command:
pnpm build - Build output directory:
dist
- Build command:
- Bind your D1 database to the project Page in your Page settings in CloudFlare (Bindings -> Add binding -> Service -> D1 -> Select your database -> Bind to project)
- Re-deploy the project
The deployment will automatically handle:
- Server-side rendering
- Content database integration
- Asset optimization
- Global CDN distribution
Tech Stack
- Nuxt 3 - The Vue Framework
- Tailwind CSS - Utility-first CSS framework
- Leaflet - Interactive maps
- @nuxt/content - Content management
- TypeScript - Type safety
- Vue 3 - Progressive JavaScript Framework
Project Structure
βββ assets/ # Static assets like CSS, images
β βββ css/ # Global CSS files
βββ components/ # Vue components
β βββ JobCard.vue # Job listing card
β βββ JobListings.vue # Job listings container
β βββ JobFilters.vue # Search and filter components
β βββ HomeHero.vue # Landing page hero section
βββ content/ # Content management
β βββ jobs/ # Job listing markdown files
βββ layouts/ # Page layouts
β βββ default.vue # Default application layout
βββ pages/ # Application routes
β βββ index.vue # Homepage
β βββ jobs/ # Job-related pages
β βββ [slug].vue # Individual job page
βββ public/ # Public static files
βββ nuxt.config.ts # Nuxt configuration
βββ tailwind.config.ts # Tailwind CSS configuration
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Acknowledgments
- Nuxt for the amazing Vue framework
- Tailwind CSS for the utility-first CSS framework
- Leaflet for the interactive mapping capabilities
- Heroicons for the beautiful icons
- The Vue.js community for their invaluable resources and support
License
This project is open source and available under the MIT License.
Check out the deployment documentation for more information about deploying to production.
