{"id":16520602,"url":"https://github.com/layflags/belza.digital","last_synced_at":"2026-05-11T11:33:56.632Z","repository":{"id":44118604,"uuid":"46302889","full_name":"layflags/belza.digital","owner":"layflags","description":"My corporate website","archived":false,"fork":false,"pushed_at":"2022-12-02T21:44:20.000Z","size":2931,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T10:49:22.607Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://belza.digital","language":"EJS","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/layflags.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}},"created_at":"2015-11-16T21:10:19.000Z","updated_at":"2022-02-13T09:44:35.000Z","dependencies_parsed_at":"2023-01-22T14:15:12.769Z","dependency_job_id":null,"html_url":"https://github.com/layflags/belza.digital","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layflags%2Fbelza.digital","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layflags%2Fbelza.digital/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layflags%2Fbelza.digital/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/layflags%2Fbelza.digital/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/layflags","download_url":"https://codeload.github.com/layflags/belza.digital/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241587912,"owners_count":19986627,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-11T16:51:50.412Z","updated_at":"2026-05-11T11:33:56.627Z","avatar_url":"https://github.com/layflags.png","language":"EJS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [belza.digital](http://belza.digital)\n\nCorporate website for Belza Digital GmbH - a static site built with EJS templates and deployed to Firebase Hosting.\n\n## Tech Stack\n\n- **Templates**: EJS\n- **CSS**: PostCSS (postcss-import, postcss-cssnext)\n- **Build**: Custom Node.js build script\n- **Dev Server**: Browser-Sync with live reload\n- **Service Worker**: Workbox\n- **Hosting**: Firebase Hosting\n- **CI/CD**: GitHub Actions\n\n## Prerequisites\n\n- Node.js 22 or higher\n- npm\n\n## Getting Started\n\n1. **Install dependencies**\n   ```bash\n   npm install\n   ```\n\n2. **Run development server**\n   ```bash\n   npm run dev\n   ```\n   This starts Browser-Sync on port 3333 with live reload for CSS and template changes.\n\n3. **Open in browser**\n   ```\n   http://localhost:3333\n   ```\n\n## Available Commands\n\n- `npm run dev` - Start local development server with live reload\n- `npm start` - Alias for `npm run dev`\n- `npm run build` - Build files to `build/` directory (development build without minification)\n- `npm run predeploy` - Production build with HTML/CSS minification and service worker generation\n- `npm run deploy` - Deploy to Firebase (automatically runs `predeploy` first, requires `FIREBASE_TOKEN` env var)\n\n## Project Structure\n\n```\nsrc/\n  ├── templates/          # EJS templates (files starting with _ are partials)\n  │   ├── index.html.ejs  # Homepage\n  │   ├── _meta_defaults/ # Shared meta tag partials\n  │   └── _ci/            # SVG logo components\n  ├── css/                # PostCSS stylesheets\n  │   ├── _variables.css  # Shared CSS variables (imported by others)\n  │   ├── home.css        # Homepage styles\n  │   ├── page.css        # General page styles\n  │   └── consulting.css  # Consulting page styles\n  └── static/             # Static assets (images, videos, etc.)\nbuild/                    # Compiled output (generated)\nbin/compile               # Custom EJS compilation script\nfirebase.json             # Firebase Hosting configuration\nworkbox-config.js         # Service worker configuration\n```\n\n## Deployment\n\n### Automatic Deployment (Recommended)\n\nThe site automatically deploys to Firebase Hosting via GitHub Actions when changes are pushed to the `master` branch. See `.github/workflows/deploy.yml` for the CI/CD configuration.\n\n### Manual Deployment\n\nFor manual deployment:\n```bash\nexport FIREBASE_TOKEN=your-token-here\nnpm run deploy\n```\n\nThe deploy command automatically runs `predeploy` first, which:\n- Minifies HTML and inlines CSS using `inline-assets`\n- Generates service worker with Workbox\n- Removes standalone CSS files (styles are inlined)\n\n## Development Notes\n\n- **URL Handling**: The build system uses a `hrefExt` variable for internal links\n  - Development: `.html` extension (for local file browsing)\n  - Production: no extension (Firebase's `cleanUrls: true` handles routing)\n\n- **Firebase Configuration**: The site uses Firebase Hosting with:\n  - Clean URLs (`.html` extensions removed from URLs)\n  - Custom headers for caching and security (HSTS)\n  - Service worker with Workbox for offline support\n\n---\n© Belza Digital GmbH\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayflags%2Fbelza.digital","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flayflags%2Fbelza.digital","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flayflags%2Fbelza.digital/lists"}