- Add .env.example documenting SQLite/PostgreSQL/MySQL config
- Add src/lib/db.ts with getDatabaseConfig() helper that parses
DATABASE_URL and returns the appropriate db config
- Update astro.config.mjs to use getDatabaseConfig() instead of
hardcoded sqlite path
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Changed from plain <img> to <Image> component so locally
uploaded images display correctly on the posts list page.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change ternary src check to simple truthy check so image
displays when set, otherwise shows nothing instead of code window.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change field types from "text" to "richtext" and wrap content in PortableText
components. This enables proper inline live editing instead of jumping to backend.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds content binding on Base component for homepage live editing navigation.
Uses homepage.id (entry ULID) not homepage.data.id (not in homepage schema).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use Image component instead of img tag. Add hero_image to hero-visual
container with {...homepage.edit.hero_image} for live editing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Added {...homepage.edit.X} spread attributes to all editable elements
(hero, features, comparison, CTA sections). This is what the live
editing UI needs to enable inline editing.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add homepage singleton collection with 30+ editable fields
- Update index.astro to fetch from getEmDashEntry("homepage", "homepage-main")
- Update Base.astro footer tagline/copyright from EmDash
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixed index.astro: escaped curly braces in code display block
to prevent Astro parser misinterpreting them as expressions.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>