Skip to content

Conversation

@wab
Copy link
Collaborator

@wab wab commented Nov 6, 2025

Add comprehensive technical plan documenting the implementation of job offers list and detail pages. The plan follows existing blog/stories patterns with:

  • Schema definitions for offer frontmatter
  • Content fetching from GitHub or local filesystem
  • Routes for list and detail pages
  • Component structure with sidebar layout
  • i18n support for French/English

@vercel
Copy link

vercel bot commented Nov 6, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Updated (UTC)
ocobo Ready Ready Preview Nov 13, 2025 1:01pm

Add comprehensive technical plan documenting the implementation of job offers list and detail pages. The plan follows existing blog/stories patterns with:
- Schema definitions for offer frontmatter
- Content fetching from GitHub or local filesystem
- Routes for list and detail pages
- Component structure with sidebar layout
- i18n support for French/English
- Add OfferFrontmatterSchema with job offer fields
- Add OfferFrontmatter type inference
- Add offer validator and type guard functions
- Update SchemaRegistry and AnyFrontmatter union type
- Include fields: title, description, contractType, location, experience, education, department, salary, tags, date
- Add OfferFetcher class extending GenericContentFetcher
- Add offer validator to ContentValidators
- Create offerFetcher instance for immediate use
- Add fetchOffer and fetchOffers convenience functions
- Export all offer-related functions in content module index
- Content fetched from offers/{language} path
- Add 'offer' to CacheStrategy type
- Configure offer caching: 1h max-age + 24h stale-while-revalidate
- Update getCacheStrategyForPath to handle /offers routes
- Matches caching strategy used for blog posts and stories
- Add '/offers' to url helper constants
- Enables consistent URL referencing throughout the app
- Create _main.offers._index.tsx for offers list page
- Create _main.offers.$slug.tsx for offer detail page
- Implement loaders with error handling and date sorting
- Add meta tags for SEO
- Use offer cache strategy
- Support i18n with language parameter
- Create OfferList component with grid layout
- Create OfferItem component showing job cards
- Create OfferArticle component using LayoutPost
- Create OfferHeader for title and description
- Create OfferSidebar displaying job details
- Create OfferContent using PageMarkdownContainer
- All components properly typed with TypeScript
- Follows existing blog/stories component patterns
- Update lockfile after installing dependencies
- Required for typecheck to run successfully
- Handle case when offers directory doesn't exist (404/not_found)
- Return empty array without error when no offers are available
- Distinguish between no content (valid) vs actual errors
- Fix Biome formatting issues in all offer components
- Fix import organization to match project standards
- All CI checks now pass (typecheck + biome check)
- Complete feature overview
- Detailed breakdown of all changes
- Sample content structure
- Testing checklist
- Ready for PR update
@wab wab force-pushed the claude/plan-offers-pages-011CUr7mcLL5kUPP8WW24zHp branch from 5ae4d67 to 6325c8c Compare November 13, 2025 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants