feat: add official EmDash marketing template

- Marketing landing page with hero, features, testimonials, FAQ, pricing
- EmDash CMS with pages collection and marketing blocks
- Full seed data with all content sections
- Dockerfile with entrypoint for database persistence
- Responsive design with CSS variables

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Kunthawat Greethong
2026-04-30 20:58:06 +07:00
commit 065d92636a
23 changed files with 1580 additions and 0 deletions

57
astro.config.mjs Normal file
View File

@@ -0,0 +1,57 @@
import node from "@astrojs/node";
import react from "@astrojs/react";
import icon from "astro-iconset";
import { defineConfig, fontProviders } from "astro/config";
import emdash, { local } from "emdash/astro";
import { sqlite } from "emdash/db";
export default defineConfig({
output: "server",
adapter: node({ mode: "standalone" }),
image: {
layout: "constrained",
responsiveStyles: true,
},
integrations: [
react(),
icon({
include: {
ph: [
"chart-bar",
"check-circle",
"clock",
"cloud",
"code",
"currency-dollar",
"envelope",
"globe",
"heart",
"lifebuoy",
"lightning",
"lock",
"shield-check",
"sparkle",
"star",
"users-three",
],
},
}),
emdash({
database: sqlite({ url: "file:./data.db" }),
storage: local({
directory: "./uploads",
baseUrl: "/_emdash/api/media/file",
}),
}),
],
fonts: [
{
provider: fontProviders.google(),
name: "Inter",
cssVariable: "--font-sans",
weights: [400, 500, 600, 700, 800],
fallbacks: ["sans-serif"],
},
],
devToolbar: { enabled: false },
});