{"id":44793208,"url":"https://github.com/workshops-de/vuejs.de","last_synced_at":"2026-02-16T11:40:03.282Z","repository":{"id":43929291,"uuid":"269136992","full_name":"workshops-de/vuejs.de","owner":"workshops-de","description":"Website of vuejs.de 🔻","archived":false,"fork":false,"pushed_at":"2026-01-12T12:37:37.000Z","size":83702,"stargazers_count":7,"open_issues_count":1,"forks_count":11,"subscribers_count":25,"default_branch":"master","last_synced_at":"2026-01-12T18:47:58.859Z","etag":null,"topics":["community","javascript","vuejs","website"],"latest_commit_sha":null,"homepage":"https://vuejs.de","language":"Astro","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/workshops-de.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-06-03T16:18:42.000Z","updated_at":"2026-01-12T12:37:40.000Z","dependencies_parsed_at":"2024-04-19T06:29:49.767Z","dependency_job_id":"2e61ddda-9ae3-41a8-a49e-4207a2c4881c","html_url":"https://github.com/workshops-de/vuejs.de","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/workshops-de/vuejs.de","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workshops-de%2Fvuejs.de","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workshops-de%2Fvuejs.de/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workshops-de%2Fvuejs.de/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workshops-de%2Fvuejs.de/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/workshops-de","download_url":"https://codeload.github.com/workshops-de/vuejs.de/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/workshops-de%2Fvuejs.de/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29506830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["community","javascript","vuejs","website"],"created_at":"2026-02-16T11:40:01.879Z","updated_at":"2026-02-16T11:40:03.253Z","avatar_url":"https://github.com/workshops-de.png","language":"Astro","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Vuejs.DE - Astro Migration\n\nThis is the Astro-based version of Vuejs.DE, migrated from Jekyll.\n\n## 🚀 Quick Start\n\n```bash\n# Install dependencies\nnpm install\n\n# Migrate content from Jekyll (run once)\nnpm run migrate\n\n# Start development server\nnpm run dev\n\n# Build for production\nnpm run build\n\n# Preview production build\nnpm run preview\n```\n\n## 📁 Project Structure\n\n```\n├── public/              # Static assets\n│   ├── assets/          # Images, fonts, etc.\n│   └── shared/          # Shared assets\n├── src/\n│   ├── components/      # Reusable Astro components\n│   ├── content/         # Content collections\n│   │   ├── posts/       # Blog posts (markdown)\n│   │   └── users/       # Author profiles (YAML)\n│   ├── data/            # JSON data files\n│   ├── layouts/         # Page layouts\n│   ├── pages/           # File-based routing\n│   ├── styles/          # Global styles (SCSS)\n│   └── utils/           # Utility functions\n├── scripts/             # Build scripts\n├── astro.config.mjs     # Astro configuration\n├── firebase.json        # Firebase hosting config\n└── package.json\n```\n\n## 🔄 Migration from Jekyll\n\nThe migration script (`npm run migrate`) handles:\n\n1. **Blog Posts**: Copies from `_posts/` to `src/content/posts/`\n2. **User Data**: Copies from `_data/users/` to `src/content/users/`\n3. **Static Assets**: Copies from `assets/` and `shared/` to `public/`\n4. **Data Files**: Copies JSON data to `src/data/`\n\n### Manual Steps After Migration\n\n1. Review frontmatter in migrated posts\n2. Update any Jekyll-specific syntax (Liquid → Astro)\n3. Check image paths and references\n4. Test all pages and features\n\n## ✨ Features\n\n- **Content Collections**: Type-safe content with Zod schemas\n- **SCSS + Bootstrap**: Familiar styling with Bootstrap 5\n- **SEO Optimized**: Meta tags, sitemap, RSS feed\n- **Fast Builds**: Static site generation with Astro\n- **API Integration**: Build-time data fetching from workshops.de API\n\n## 🛠️ Key Differences from Jekyll\n\n| Feature    | Jekyll                     | Astro                 |\n| ---------- | -------------------------- | --------------------- |\n| Templating | Liquid                     | Astro/JSX             |\n| Content    | Markdown + YAML            | Content Collections   |\n| Plugins    | Ruby gems                  | npm packages          |\n| Data       | `_data/*.json`             | `src/data/` + imports |\n| Build      | `bundle exec jekyll build` | `npm run build`       |\n\n## 📝 Content Management\n\n### Adding a New Post\n\nCreate a new directory in `src/content/posts/`:\n\n```\nsrc/content/posts/2024-01-15-my-new-post/\n├── index.md\n└── header.jpg\n```\n\nFrontmatter example:\n\n```yaml\n---\ntitle: \"My New Post\"\ndescription: \"A brief description\"\nauthor: \"Robin Böhm\"\npublished_at: 2024-01-15T10:00:00.000Z\ncategories: \"vuejs tutorial\"\nheader_image: \"header.jpg\"\n---\n```\n\n### Adding a New Author\n\nCreate a YAML file in `src/content/users/`:\n\n```yaml\n# src/content/users/New Author.yaml\npermalink: newauthor\nname: New Author\ngravatar_uid: abc123\ngithub: newauthor\ntwitter: newauthor\ncity: Berlin\nteam: false\nbio: \u003e\n  Author bio here.\n```\n\n## 🚢 Deployment\n\n### Firebase Hosting\n\n```bash\n# Build the site\nnpm run build\n\n# Deploy to Firebase\nfirebase deploy --only hosting\n```\n\n### Environment Variables\n\nFor local development without API calls:\n\n```bash\nJEKYLL_ENV=local npm run dev\n```\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Submit a pull request\n\n## 📄 License\n\nMIT License - see LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkshops-de%2Fvuejs.de","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fworkshops-de%2Fvuejs.de","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fworkshops-de%2Fvuejs.de/lists"}