A multilingual website for master furniture craftsman Artan Basha, built with Astro and managed with Decap CMS.
- Multilingual Support: English, Albanian, German, and Italian
- Easy Content Management: Decap CMS for non-technical content updates
- Responsive Design: Mobile-friendly design
- Static Site: Hosted on GitHub Pages for free
- Direct Contact Info: Email, phone, and social media links
- Automatic Deployment: GitHub Actions for CI/CD
- 🇬🇧 English
- 🇦🇱 Albanian (Shqip)
- 🇩🇪 German (Deutsch)
- 🇮🇹 Italian (Italiano)
- Node.js 18+
- npm or yarn
- GitHub account
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/naveldesign.art.git cd naveldesign.art -
Install dependencies
npm install
-
Update Configuration
-
GitHub (Decap CMS)
- Update
/public/admin/config.ymlwith your repository:repo: YOUR_USERNAME/naveldesign.art
- Update
-
Domain Setup (optional)
- Update
.github/workflows/deploy.ymlwith your domain:cname: yourdomain.com
- Update
-
-
Development
npm run dev
Visit http://localhost:3000
-
Build
npm run build
-
Create GitHub Repository
- Create a new public repository named
naveldesign.art(or your domain)
- Create a new public repository named
-
Push Code
git remote add origin https://github.com/YOUR_USERNAME/naveldesign.art.git git branch -M main git push -u origin main
-
Enable GitHub Pages
- Go to repository Settings → Pages
- Select "Deploy from a branch"
- Branch:
gh-pages - Folder:
/ (root)
-
Custom Domain (Optional)
- Go to Settings → Pages
- Add your domain in "Custom domain"
- Update DNS records with GitHub's provided IP addresses
- Visit
yourdomain.com/admin(replace with your domain) - Authenticate with GitHub
- Edit pages and portfolio items in any language
- Changes auto-save and trigger automatic deployment
Edit .md files in src/content/[LOCALE]/:
en/- Englishsq/- Albaniande/- Germanit/- Italian
Files:
about.md- About pageportfolio.md- Portfolio overviewcontact.md- Contact page information
naveldesign.art/
├── src/
│ ├── pages/ # Route pages
│ ├── layouts/ # Page layouts
│ ├── components/ # Reusable components
│ ├── content/ # Markdown content by language
│ │ ├── en/
│ │ ├── sq/
│ │ ├── de/
│ │ └── it/
│ └── i18n/ # Translations
├── public/
│ ├── admin/ # Decap CMS admin
│ └── images/ # Uploaded images
├── .github/
│ └── workflows/ # GitHub Actions
└── astro.config.mjs # Astro configuration
Via Decap CMS:
- Go to
yourdomain.com/admin - Click "Portfolio Items"
- Click "New Portfolio Item"
- Fill in details for each language
- Upload image
- Save
Manually:
Create new .md files in src/content/portfolio/[LOCALE]/:
---
title: "Piece Name"
description: "Brief description"
image: "https://url-to-image.jpg"
featured: true
category: "Furniture"
---
Detailed information about the piece...Edit src/layouts/BaseLayout.astro - CSS variables:
--color-primary: #2c2416;
--color-secondary: #6b5b4a;
--color-light: #f5f1ed;
--color-accent: #c4a574;Update contact details in:
src/content/[LOCALE]/contact.md- For page contentsrc/pages/[locale]/contact.astro- For contact page structure
Update links in src/pages/[locale]/contact.astro
- Ensure GitHub OAuth is configured correctly
- Check repository access permissions
- Clear browser cache and try again
- Run
npm installto ensure dependencies are up-to-date - Check for syntax errors in
.mdfiles - View GitHub Actions logs for detailed error messages
- Update portfolio items as new work is completed
- Review contact form submissions
- Monitor website analytics
- Keep dependencies updated (npm update)
- Keep GitHub token secure
- Review Formspree privacy settings
- Monitor for unusual activity in CMS
- Astro Docs: https://docs.astro.build
- Decap CMS Docs: https://decapcms.org
- Formspree Docs: https://formspree.io
- GitHub Pages: https://pages.github.com
All content is property of Artan Basha. Website code is available under MIT license.
Built with Astro, Decap CMS, and GitHub Pages.