{"id":50126540,"url":"https://github.com/craftled/bordful","last_synced_at":"2026-05-23T20:04:49.218Z","repository":{"id":267490668,"uuid":"901320552","full_name":"craftled/bordful","owner":"craftled","description":"Bordful is a modern job board starter kit built with Next.js and Airtable.","archived":false,"fork":false,"pushed_at":"2026-03-15T13:18:25.000Z","size":7167,"stargazers_count":56,"open_issues_count":7,"forks_count":30,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-15T23:37:29.890Z","etag":null,"topics":["job-board","nextjs-boilerplate","nextjs-starter","nextjs-template","nextjs15"],"latest_commit_sha":null,"homepage":"https://demo.bordful.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/craftled.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2024-12-10T12:52:00.000Z","updated_at":"2026-03-15T13:07:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"ca571f62-1c3d-42a4-ae78-82f47d2e8566","html_url":"https://github.com/craftled/bordful","commit_stats":null,"previous_names":["tomaslau/jobboardstarter","tomaslau/bordful","craftled/bordful","craftyme/bordful"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/craftled/bordful","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/craftled%2Fbordful","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/craftled%2Fbordful/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/craftled%2Fbordful/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/craftled%2Fbordful/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/craftled","download_url":"https://codeload.github.com/craftled/bordful/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/craftled%2Fbordful/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33410376,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T18:09:33.147Z","status":"ssl_error","status_checked_at":"2026-05-23T18:09:31.380Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["job-board","nextjs-boilerplate","nextjs-starter","nextjs-template","nextjs15"],"created_at":"2026-05-23T20:04:20.886Z","updated_at":"2026-05-23T20:04:49.212Z","avatar_url":"https://github.com/craftled.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bordful: Open-Source Job Board Software\n\nBordful is a modern, minimal job board software built with Next.js, Tailwind CSS, and \nAirtable. Features static generation, client-side search, and a clean customizable UI.\n\n**Create a professional job board in 5 minutes** - no coding experience required! Bordful lets you build a job board like Indeed or AngelList, customized for your brand.\n\n**Perfect for:** Startups, agencies, communities, or anyone who needs to hire people.\n\n## What You'll Build\n\nBy following this guide, you'll have a fully functional job board website with:\n- Job listings with search and filters\n- Mobile-responsive design\n- SEO optimization for Google visibility\n- Admin dashboard through Airtable\n\n**Live Demo:** [See Bordful in action](https://demo.bordful.com)\n\n![Bordful Job Board Demo](public/bordful-job-board-software-demo.jpg)\n\n## Why Bordful?\n\n- **Modern Tech Stack:** Built with Next.js, Tailwind CSS, Airtable, and Ultracite for a fast, flexible, and easy-to-manage job board with lightning-fast linting and formatting.\n- **Comprehensive SEO:** Rich schema.org JobPosting data, automatic XML sitemaps, and more to maximize visibility.\n- **Highly Customizable:** Easily tailor the theme, layout, navigation, hero section, and every other aspect to match your brand.\n- **Real-time Updates:** Leverages Next.js Incremental Static Regeneration (ISR) to keep job listings fresh without manual rebuilds.\n- **User-Friendly:** Clean UI with customizable fonts, client-side search, rich text support for job descriptions, and smart pagination.\n- **Full-Featured:** Packed with features like job alerts, multi-currency salary support, advanced filtering, and RSS feeds.\n\nExplore all features in detail in our [Bordful Features Guide](/docs/guides/features.md).\n\n## Getting Started\n\n### 5-Minute Quick Start\n\nGet your Bordful job board up and running in just 5 minutes with this step-by-step guide:\n\n#### Prerequisites (2 minutes)\n\n**1. Install an AI Code Editor (Highly Recommended)**\n- **[Cursor](https://cursor.com/)** - AI-powered code editor with built-in chat\n- **[Windsurf](https://windsurf.com/refer?referral_code=d886df4b0e)** - Agentic AI coding assistant\n- **Why?** These editors will help you customize your job board with AI assistance, even if you're not a developer!\n\n**2. Install Node.js OR Bun (Required)**\n\n**Option A: Install Bun (Recommended - Faster)**\n```bash\n# Install Bun (all platforms)\ncurl -fsSL https://bun.sh/install | bash\n```\n\n**Option B: Install Node.js**\n1. Go to [nodejs.org](https://nodejs.org/)\n2. Download the LTS version (recommended for most users)\n3. Run the installer and follow the prompts\n\n![Download Node.js](public/download-nodejs.jpg)\n\n**Advanced Method - Command Line:**\n```bash\n# On macOS (if you have Homebrew)\nbrew install node\n\n# On Windows (if you have Chocolatey)\nchoco install nodejs\n```\n\n**3. Verify Installation**\nOpen your Terminal (Mac) or Command Prompt (Windows) and run:\n\n![Check Node and Bun Versions](public/check-node-and-bun-versions.jpg)\n\n```bash\n# If you installed Bun\nbun --version   # Should show v1.0+ or higher\n\n# If you installed Node.js\nnode --version  # Should show v18+ or higher\nbun --version   # Should show v1.0+ or higher\n```\n\n✅ **Success Check:** If you see version numbers, you're ready to continue!\n\n#### Step 1: Get the Code (1 minute)\n\n**Option A: Using GitHub's Web Interface (No Command Line Required)**\n1. Go to [GitHub Import](https://github.com/new/import)\n2. Enter repository URL: `https://github.com/craftled/bordful`\n3. Choose your username and repository name (e.g., `my-job-board`)\n4. Set visibility to \"Private\" (recommended)\n5. Click \"Begin import\"\n6. Once complete, click \"Clone or download\" → \"Download ZIP\"\n7. Extract the ZIP file to your desired folder\n8. Open Terminal/Command Prompt in that folder and run: `bun install`\n\n✅ **Benefits**: Private by default, no Git knowledge required, ready for Vercel deployment\n\n**Option B: Using Command Line (For Developers)**\n```bash\n# Clone the repository\ngit clone https://github.com/craftled/bordful\ncd bordful\n\n# Install dependencies\nbun install\n```\n\n\u003e 💡 **Tip**: Option A is perfect if you're not comfortable with Git or want to keep your code private from the start.\n\n#### Step 2: Set Up Airtable Database (2 minutes)\n\n**What is Airtable?** It's like a smart spreadsheet that will store your job listings. Think of it as your job board's database, but easier to use than Excel.\n\n**Option A: Use Our Template (Recommended)**\n1. Click this link: [Bordful Airtable Template](https://airtable.com/apprhCjWTxfG3JX5p/shrLqfxgbensCY393)\n2. Click \"Use this data\" to add it to your Airtable workspace\n3. **Find your Base ID:** Look at the URL in your browser - it will look like `https://airtable.com/appABC123DEFGHIJK/...`\n4. Copy the part that starts with `app` (e.g., `appABC123DEFGHIJK`) - this is your Base ID\n\n![Copy Airtable Base ID](public/copy-airtable-base-id.jpg)\n\n✅ **Success Check:** You should see a table with sample job listings and fields like \"Title\", \"Company\", \"Status\", etc.\n\n**Option B: Create Your Own**\n- See our [Airtable Setup Guide](/docs/getting-started/airtable-setup.md) for detailed instructions\n\n#### Step 3: Get Your Airtable API Token (1 minute)\n\n1. Go to [Airtable Tokens](https://airtable.com/create/tokens)\n2. Click \"Create new token\"\n3. Give it a name like \"Bordful Job Board\"\n4. Add these scopes: `data.records:read`, `data.records:write`\n5. Add your base from Step 2\n6. Click \"Create token\" and copy the token (starts with `pat...`)\n\n#### Step 4: Configure Environment Variables (1 minute)\n\n**What are environment variables?** They're like secret settings that tell your job board how to connect to Airtable. Think of them as your app's private configuration.\n\n**Step 4a: Copy the template file**\n```bash\n# Copy the example file to create your environment file\ncp .env.example .env\n```\n\n**Step 4b: Edit your settings**\nYou need to edit the `.env` file with your actual values. Here's how:\n\n**On Mac:** Open the file with TextEdit or your AI editor (Cursor/Windsurf)\n**On Windows:** Open the file with Notepad or your AI editor (Cursor/Windsurf)\n\nReplace the placeholder values with your real information:\n\n```env\n# REQUIRED: Your application URL\nNEXT_PUBLIC_APP_URL=http://localhost:3000\n\n# REQUIRED: Airtable credentials (from steps 2 \u0026 3)\nAIRTABLE_ACCESS_TOKEN=pat_your_actual_token_here\nAIRTABLE_BASE_ID=app_your_actual_base_id_here\nAIRTABLE_TABLE_NAME=Jobs\n\n# OPTIONAL: Email provider for job alerts (you can add this later)\nEMAIL_PROVIDER=encharge\nENCHARGE_WRITE_KEY=your_encharge_key_here\n```\n\n✅ **Success Check:** Your `.env` file should have real values (starting with `pat_` and `app_`) instead of placeholder text.\n\n\u003e ⚠️ **IMPORTANT**: Never share your `.env` file or commit it to Git! It contains your secret keys.\n\n#### Step 5: Start Your Job Board (30 seconds)\n\n```bash\n# Start the development server\nbun run dev\n```\n\n🎉 **That's it!** Visit [http://localhost:3000](http://localhost:3000) to see your job board in action.\n\n**What you should see:**\n- A homepage with job listings (from your Airtable template)\n- Search and filter functionality\n- Clean, professional design\n\n![Bordful Job Board Running](public/bordful-localhost.jpg)\n\n✅ **Success Check:** If you see job listings on your homepage, congratulations! Your job board is working.\n\n❌ **Not working?** Jump to [Troubleshooting](#troubleshooting) below.\n\n### What You Get Out of the Box\n\n- ✅ Fully functional job board with search and filtering\n- ✅ Responsive design that works on all devices\n- ✅ SEO-optimized with automatic sitemaps\n- ✅ RSS feeds for job listings\n- ✅ Admin-friendly Airtable interface for managing jobs\n- ✅ AI-assisted customization with Cursor/Windsurf editors\n\n### Next Steps\n\n1. **Add Your First Job**: \n   - Go to your Airtable base\n   - Click the \"+\" button to add a new row\n   - Fill in: Title, Company, Description, Status (set to \"Published\")\n   - Refresh your job board to see it appear!\n\n![Airtable Add New Job](public/airtable-add-new-job.jpg)\n\n2. **Customize Your Brand**: \n   - Copy `config/config.example.ts` to `config/config.ts` and customize\n   - 💡 **Pro Tip**: Open the project in Cursor/Windsurf and ask the AI: \"Help me customize the colors and branding for my job board\"\n3. **Set Up Job Alerts**: Add email provider credentials to enable job alert subscriptions\n4. **Deploy to Production**: See our [Deployment Guide](#deployment-to-vercel) below\n\n### Deployment to Vercel (Production)\n\nReady to go live? Deploy to Vercel in 3 steps:\n\n#### Step 1: Prepare for Deployment\n\n```bash\n# Test your build locally first\nbun run build \u0026\u0026 bun run start\n```\n\n#### Step 2: Deploy to Vercel\n\n**If you used Option A (GitHub Import) in Step 1:**\n1. Your code is already on GitHub - skip to step 2!\n\n**If you used Option B (Command Line) in Step 1:**\n1. Push your code to GitHub (without the `.env` file, `.gitignore` file already ignores it)\n\n**For everyone:**\n2. Go to [Vercel](https://vercel.com) and sign in with GitHub\n3. Click \"New Project\" and import your GitHub repository\n4. Vercel will auto-detect it's a Next.js project\n\n#### Step 3: Add Environment Variables to Vercel\n\n1. In your Vercel project dashboard, go to \"Settings\" → \"Environment Variables\"\n2. Add these variables one by one:\n\n```\nNEXT_PUBLIC_APP_URL = https://your-domain.vercel.app\nAIRTABLE_ACCESS_TOKEN = pat_your_token_here\nAIRTABLE_BASE_ID = app_your_base_id_here\nAIRTABLE_TABLE_NAME = Jobs\n```\n\n3. Click \"Deploy\" and your job board will be live!\n\n### Troubleshooting\n\n**Jobs not showing up?**\n- Check your Airtable base has jobs with `status` field set to \"Published\"\n- Verify your `AIRTABLE_ACCESS_TOKEN` and `AIRTABLE_BASE_ID` are correct in `.env`\n\n**Package installation not working?**\n- Make sure Bun is installed: run `bun --version`\n- Navigate to the correct folder before running the command\n- On Windows, try running Command Prompt as Administrator\n\n**Can't open Terminal/Command Prompt?**\n- **Mac:** Press `Cmd + Space`, type \"Terminal\", press Enter\n- **Windows:** Press `Windows key`, type \"Command Prompt\", press Enter\n\n**Need help?** Check our [Installation Guide](/docs/getting-started/installation.md) for detailed instructions.\n\n### AI-Powered Customization\n\nWith [Cursor](https://cursor.com/) or [Windsurf](https://windsurf.com/refer?referral_code=d886df4b0e) AI editors, you can easily customize your job board.\n\n![Use Cursor to Customize Your Job Board Using Natural Language](public/use-cursor-to-customize-your-job-board-using-natural-language.jpg)\n\nTry these prompts:\n\n**🎨 Change Colors:**\n```\n\"Help me change the primary color scheme to match my company brand. \nMy brand colors are [your colors]. Show me which files to edit.\"\n```\n\n**📝 Update Content:**\n```\n\"I want to change the homepage hero text and add my company name. \nCan you help me find and update the relevant text?\"\n```\n\n**🚀 Fix Deployment Issues:**\n```\n\"I'm getting this error when deploying to Vercel: [paste error].\nCan you help me fix it?\"\n```\n\n**🔧 Code Quality \u0026 Linting:**\n```\n\"I'm getting linting errors with Ultracite/Biome. Can you help me fix: [describe the error]?\"\n```\n\n**⚡ Performance Optimization:**\n```\n\"How can I optimize this code for better performance? Any suggestions for [specific area]?\"\n```\n\n\u003e 💡 **Pro Tip:** Always describe what you want to achieve rather than asking for specific code!\n\n### Environment Variables Explained\n\n| Variable                | Required | Description              | Example                    |\n| ----------------------- | -------- | ------------------------ | -------------------------- |\n| `NEXT_PUBLIC_APP_URL`   | ✅ Yes    | Your website URL         | `https://jobs.company.com` |\n| `AIRTABLE_ACCESS_TOKEN` | ✅ Yes    | Your Airtable API token  | `pat_abc123...`            |\n| `AIRTABLE_BASE_ID`      | ✅ Yes    | Your Airtable base ID    | `appABC123...`             |\n| `AIRTABLE_TABLE_NAME`   | No       | Table name in Airtable   | `Jobs` (default)           |\n| `EMAIL_PROVIDER`        | No       | Email service for alerts | `encharge`, `mailchimp`    |\n| `ENCHARGE_WRITE_KEY`    | No       | Encharge API key         | For job alert emails       |\n\nFor a complete list of all supported environment variables, see the [Environment Variables Guide](/docs/reference/environment-variables.md).\n\n## Dive Deeper: Features \u0026 Documentation\n\nBordful is packed with features. Explore the documentation to learn more:\n\n- **Core Functionality \u0026 Guides:** Understand Bordful's capabilities. ([Features](/docs/guides/features.md), [All Guides](/docs/guides/index.md))\n- **Customization:** Tailor the look, feel, and functionality. ([Customization Guide](/docs/guides/customization.md), [Theming](/docs/guides/theming-customization.md), [Hero Section](/docs/guides/hero-section.md), [Navigation](/docs/guides/navigation.md), [Footer](/docs/guides/footer.md))\n- **SEO \u0026 Content:** Maximize visibility with built-in SEO tools. ([Schema Implementation](/docs/advanced/schema-implementation.md), [Sitemaps](/docs/reference/sitemap-generation.md), [Robots.txt](/docs/reference/robots-generation.md), [RSS Feeds](/docs/reference/rss-feed-system.md), [FAQ System](/docs/reference/faq-system.md))\n- **Data \u0026 Backend:** Learn about Airtable integration and data handling. ([Airtable Setup](/docs/getting-started/airtable-setup.md), [Data Revalidation (ISR)](/docs/advanced/data-revalidation.md))\n- **Advanced Topics:** For developers looking to extend Bordful. ([Script Management](/docs/advanced/script-management.md), [Email Integration](/docs/guides/email-integration.md), [Salary Structure](/docs/reference/salary-structure.md), [Language Support](/docs/reference/language-system.md))\n\nFor a full overview of all documentation, visit the [Documentation Hub](/docs/README.md).\n\n## Project Structure\n\n```\napp/\n  layout.tsx              # Root layout with configurable fonts (Geist, Inter, IBM Plex Serif)\n  page.tsx               # Home page with job listings\n  globals.css            # Global styles\n  sitemap.ts             # Dynamic sitemap generation\n  robots.ts              # Dynamic robots.txt generation\n  not-found.tsx          # 404 page\n  favicon.ico            # Favicon route handler\n  jobs/\n    [slug]/\n      page.tsx           # Individual job page (SEO-friendly URLs)\n    [category]/          # Category-based job listings\n    language/[language]/ # Language-filtered job listings\n    level/[level]/       # Experience level filtered listings\n    location/[location]/ # Location-filtered job listings\n    type/[type]/         # Job type filtered listings\n    page.tsx             # Main jobs listing page\n    not-found.tsx        # Jobs-specific 404 page\n  api/\n    subscribe/\n      route.ts           # Job alerts subscription endpoint\n    og/\n      route.tsx          # General Open Graph image generation\n      jobs/[slug]/\n        route.tsx        # Individual job OG image generation\n  about/\n    page.tsx             # About page\n  contact/\n    page.tsx             # Contact page\n  faq/\n    page.tsx             # FAQ page\n  pricing/\n    page.tsx             # Pricing page\n  job-alerts/\n    page.tsx             # Job alerts subscription page\n  changelog/\n    page.tsx             # Changelog page\n  terms/\n    page.tsx             # Terms of service\n  privacy/\n    page.tsx             # Privacy policy\n  feed.xml/\n    route.ts             # RSS feed generation\n  atom.xml/\n    route.ts             # Atom feed generation\n  feed.json/\n    route.ts             # JSON feed generation\n\nlib/\n  utils.ts               # Main utility functions\n  db/\n    airtable.ts          # Airtable integration and salary formatting\n  utils/\n    formatDate.ts        # Date formatting utilities\n    markdown.ts          # Markdown processing\n    metadata.ts          # SEO metadata generation\n    slugify.ts           # URL slug generation\n    colors.ts            # Color utilities\n    fonts.ts             # Font utilities\n    filter-jobs.ts       # Job filtering logic\n  config/\n    routes.ts            # Route configuration\n    index.ts             # Main configuration exports\n  constants/             # Application constants\n  email/\n    index.ts             # Email provider exports\n    types.ts             # Email type definitions\n    providers/           # Email provider integrations\n  hooks/                 # Custom React hooks\n  providers/             # Context providers\n\ncomponents/\n  ui/\n    job-details-sidebar.tsx    # Job details sidebar\n    post-job-banner.tsx       # Post job promotion banner\n    similar-jobs.tsx          # Similar jobs suggestions\n    job-filters.tsx           # Job search and filter UI\n    job-search-input.tsx      # Search input component\n    job-badge.tsx             # Job category/type badges\n    pagination-control.tsx    # Pagination controls\n    nav.tsx                   # Navigation component\n    footer.tsx                # Footer component\n    hero-section.tsx          # Homepage hero section\n    breadcrumb.tsx            # Breadcrumb navigation\n    # ... and many more UI components\n  jobs/\n    JobCard.tsx               # Job listing card\n    JobsLayout.tsx            # Jobs page layout\n    JobListings.tsx           # Job listings container\n    CompactJobCard.tsx        # Compact job card variant\n  home/                       # Homepage-specific components\n  contact/                    # Contact page components\n  job-alerts/                 # Job alerts components\n  analytics/                  # Analytics components\n  server/                     # Server-side components\n\nconfig/\n  config.example.ts           # Example configuration file\n  index.ts                    # Configuration exports\n  README.md                   # Configuration documentation\n\nbiome.jsonc                  # Ultracite/Biome configuration\nAGENTS.md                    # AI assistant rules for Ultracite\n.cursor/rules/               # Cursor AI editor rules\n.vscode/settings.json        # VS Code Ultracite configuration\n\nhooks/\n  use-toast.ts                # Toast notification hook\n\npublic/\n  assets/                     # Static assets\n    social/                   # Social media assets\n  images/                     # Image files\n  og-images/                  # Open Graph images\n  avatars/                    # User avatar images\n  # Various image files and SVG icons\n```\n\n## Salary Structure\n\nBordful includes a sophisticated salary handling system with multiple currencies and formats:\n\n- Support for 50+ global currencies and cryptocurrencies with proper symbols (₿, Ξ)\n- Smart currency display with intelligent spacing based on currency type\n- Consistent and readable salary ranges with compact formatting (e.g., \"$50k - $75k\")\n- Multiple time units (hour, day, week, month, year, project)\n- Optional currency code display for international clarity\n- Intelligent salary sorting with normalization across currencies and time periods\n- Customizable display options and formatting preferences\n\nFor detailed documentation on the salary structure, see [Salary Structure](/docs/reference/salary-structure.md).\n\n## Pagination, Sorting, and URL Parameters\n\nBordful includes a comprehensive pagination and sorting system with powerful URL parameter support:\n\n- URL-based pagination for better UX and SEO\n- Configurable items per page (10, 25, 50, 100)\n- Multiple sorting options (newest, oldest, salary)\n- Comprehensive URL parameter system for all filters and settings\n- Elegant pagination UI with intelligent page number display\n- Complete state persistence through URL parameters\n\nFor detailed documentation on pagination, sorting, and URL parameters, see [Pagination, Sorting, and URL Parameters](/docs/reference/pagination-sorting.md).\n\n## Sitemap Generation\n\nBordful automatically generates a comprehensive XML sitemap at `/sitemap.xml` that enhances your job board's visibility to search engines:\n\n- SEO-friendly URLs with descriptive slugs for all job listings\n- Dynamic updates through Incremental Static Regeneration (ISR)\n- Intelligent priority levels (1.0 for homepage, 0.9 for featured jobs, etc.)\n- Appropriate change frequencies for different content types\n- Automatic inclusion of all job listings and category pages\n- Zero-maintenance implementation with 5-minute revalidation\n\nFor detailed documentation on sitemap generation, see [Sitemap Generation](/docs/reference/sitemap-generation.md).\n\n## RSS Feed System\n\nBordful includes a comprehensive RSS feed system that allows users to subscribe to job listings in multiple formats:\n\n- Support for RSS 2.0, Atom, and JSON Feed formats\n- Rich job content with customizable preview length\n- Auto-discovery links for feed readers\n- Navigation and footer integration\n- Full configuration control via config file\n\nFor detailed documentation on the RSS Feed System, see [RSS Feed System](/docs/reference/rss-feed-system.md).\n\n## Robots.txt Generation\n\nBordful automatically generates a comprehensive robots.txt file at `/robots.txt` that helps search engines understand which parts of your site to crawl:\n\n- Dynamic generation using Next.js's Metadata API\n- Customizable crawling rules for different user agents\n- Protected routes to prevent crawling of admin and private areas\n- Automatic sitemap integration for better indexing\n- Canonical host definition to prevent duplicate content issues\n\nFor detailed documentation on robots.txt generation, see [Robots.txt Generation](/docs/reference/robots-generation.md).\n\n## Email Provider Integration\n\nBordful includes a flexible email provider system for handling job alert subscriptions. This allows users to subscribe to receive notifications when new jobs are posted.\n\n- Server-side API route for secure handling of subscription data\n- Multiple configuration options (environment variables or config file)\n- Enhanced data collection for better targeting\n- Support for Encharge with more providers planned\n- Rich segmentation data for targeted email campaigns\n\nFor comprehensive documentation on email provider integration, see [Email Provider Integration](/docs/guides/email-integration.md).\n\n## Customization\n\nBordful is designed to be highly customizable, allowing you to tailor your job board to match your brand identity and specific requirements.\n\nKey customization options include:\n\n- **Styling**: Configure Tailwind CSS theme, global styles, and component-specific styling.\n- **Script Management**: Add analytics, tracking, or any third-party scripts with optimized loading strategies.\n- **Data Source**: Modify or replace the Airtable implementation with your preferred database.\n- **Theme Customization**: Set colors, typography, and other design elements through configuration.\n- **Component Customization**: Modify specific components to match your requirements.\n\nFor comprehensive customization documentation, including detailed examples and best practices, see our [Customization Guide](/docs/guides/customization.md).\n\n## Deployment\n\nBordful can be deployed to various platforms, with Vercel being the recommended option due to its excellent support for Next.js applications.\n\nFor comprehensive deployment instructions, including local build verification and platform-specific guides for Vercel, Netlify, and Docker, see our [Deployment Guide](/docs/getting-started/deployment.md).\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nMIT License - feel free to use this for your own job board! 100% free for personal and commercial use.\n\n## Support\n\nIf you find this helpful, please ⭐️ this repository!\n\n## Credits\n\nBuilt by [Craftled](https://craftled.com)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcraftled%2Fbordful","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcraftled%2Fbordful","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcraftled%2Fbordful/lists"}