Loading repository data…
Loading repository data…
Ceci2003 / repository
“Local Roots Template” is a modern Astro template for small family producers. It features multilingual support (BG/EN), product pages, JSON-based settings, a hidden admin editor, and full color customization. Ideal for farms, apiaries, and artisan businesses seeking a clean, professional online presence.
"Local Roots Template" is a modern Astro template for small family producers. It features multilingual support (BG/EN), product pages, JSON-based settings, a hidden admin editor, and full color customization. Ideal for farms, apiaries, and artisan businesses seeking a clean, professional online presence.
colors.jsonnpm install
npm run dev
Visit http://localhost:4321 to see your site.
npm run build
npm run preview
├── data/
│ ├── settings.json # Site settings (BG/EN)
│ ├── products.json # Product catalog (BG/EN)
│ └── colors.json # Theme colors
├── public/
│ ├── products/ # Product images
│ ├── gallery/ # Gallery images
│ └── brand/ # Brand/logo images
└── src/
├── components/ # Reusable components
├── layouts/ # Page layouts
├── pages/ # Route pages
└── utils/ # Utility functions
data/settings.json)Contains site-wide content in both languages:
data/products.json)Product catalog with full multilingual support:
data/colors.json)Theme customization:
/, /products, /about, /contact/en/, /en/products, /en/about, /en/contactThe language switcher in the header allows easy navigation between languages.
Access the admin editor at:
/admin-data?key=YOUR_SECRET_KEY
Set your secret key in .env:
ADMIN_SECRET_KEY=your-secure-secret-key
The admin page allows you to:
Note: In production, implement proper server endpoints to save JSON files and handle image uploads.
Edit data/colors.json to customize your theme. All colors are automatically converted to CSS variables and applied throughout the site.
Add products to data/products.json following the existing structure. Each product must have:
id: Unique identifierslug: URL-friendly identifierbg and en: Language-specific contentprice: Product pricecategory: Product categoryimages: Array of image pathsCreate new pages in src/pages/ following the existing structure. For multilingual pages:
/page.astro for Bulgarian/en/page.astro for EnglishThis template uses Astro's Node adapter for server-side rendering. Deploy to any Node.js hosting service:
Make sure to:
ADMIN_SECRET_KEY environment variablenpm run buildnode dist/server/entry.mjsMIT
For issues and questions, please open an issue on the repository.