- Convert all 32 blog posts to .mdoc format
- Add content.config.ts to handle .mdoc files in Astro
- This allows KeyStatic to find and manage the blog posts
Co-Authored-By: Claude <noreply@anthropic.com>
This allows KeyStatic to match filenames to title-based slugs.
The date prefix was preventing KeyStatic from finding posts.
Co-Authored-By: Claude <noreply@anthropic.com>
- Add explicit frontmatter: 'yaml' to match existing posts
- Remove publishDate field that doesn't exist in current posts
- Keep body as markdoc (supports markdown content)
Co-Authored-By: Claude <noreply@anthropic.com>
The Netlify adapter automatically handles all routing when using
output: 'server'. Manual redirect rules were interfering with
proper API endpoint handling.
Co-Authored-By: Claude <noreply@anthropic.com>
Add redirect to route all requests to the Netlify SSR server function.
This enables KeyStatic API routes and GitHub OAuth to work properly.
Co-Authored-By: Claude <noreply@anthropic.com>
Disabling Image compression in astro-compress to fix build error:
"pngload: libspng read error"
The error was caused by a corrupted PNG file that Sharp couldn't process.
Images will still be served normally, just not recompressed during build.
Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- Added Netlify adapter for server-side rendering
- Changed output mode from static to server
- Updated KeyStatic storage from local to GitHub
- Removed SKIP_KEYSTATIC from Netlify build
- KeyStatic Admin UI will be available at /keystatic
Features:
- Server-side rendering with Netlify Functions
- GitHub integration for content management
- Production-ready KeyStatic Admin UI
Co-Authored-By: Claude <noreply@anthropic.com>
Features added:
- KeyStatic Core and Astro integration installed
- Markdoc integration for content rendering
- keystatic.config.ts with blog post schema
- Local storage mode for content management
- Conditional loading via SKIP_KEYSTATIC env var
- Netlify build command updated to skip KeyStatic in production
KeyStatic Admin UI available at:
- Local: http://localhost:4321/keystatic
- Production: Disabled for security
Co-Authored-By: Claude <noreply@anthropic.com>
Features added:
- React integration with @astrojs/react
- React components: DMRDashboard, MemberSearch
- API endpoints: /api/repeaters.json, /api/dmr-contacts.json, /api/feed/[category].xml
- i18n support for TR/EN locales with LanguageSwitcher component
- Partytown enabled for third-party script optimization
- Admin panel logo fixed (moved to public/images/)
Co-Authored-By: Claude <noreply@anthropic.com>
Performance:
- Enable image optimization (Image: true, SVG: true)
- 429MB saved with WebP conversion
SEO:
- Add JSON-LD structured data (Organization & FAQ schemas)
- Add keywords and author metadata
- Update robots.txt with sitemap reference
- Add alt text to OpenGraph images
CMS:
- Enable Google OAuth login for admin panel
- Add logo to admin login page
Fixes:
- Update Telegram link to @ym1ktc on homepage
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix Decap CMS configuration with proper media folder paths
- Add Turkish translations for sharing interface elements
- Implement smart background handling for transparent logos
- Update image path conversion system for CMS compatibility
- Add comprehensive image optimization with Astro assets
- Update all blog post image paths for consistency
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>