Skip to content

webgrip/application-template

application-application

Badges

Template Sync License Conventional Commits SemVer Dockerized PRs Welcome

Opinionated application template focused on repeatable quality: tested workflows, semantic releases, and automatic template drift correction.


At a Glance

Aspect What You Get
CI/CD GitHub Actions pipelines & template sync
Consistency Automatic sync of core config & workflow files to app repos (opt‑in via topic)
Quality Conventional Commits + Semantic Versioning scaffolding
Documentation TechDocs-ready structure for internal/platform portals
Security Encrypted secrets handling via SOPS + age
Developer UX Pre-configured editor & workflow automation

Features

  • Automated template file synchronization (opt‑in per repo by GitHub topic)
  • Semantic release readiness (.releaserc.json included)
  • Encrypted secrets workflow (age / SOPS)
  • Curated GitHub workflow set (docs changes, source changes)
  • Opinionated baseline configs: EditorConfig, VSCode settings, .gitignore
  • Structured test categories (unit, integration, functional, contract, e2e, smoke, performance, behavioral)

Description

Foundation repository for bootstrapping internal / external application services with consistent engineering guardrails. Replace the placeholder service specifics with your domain logic while retaining the shared operational workflows.

Template Synchronization

This repository serves as a template that can automatically sync certain files to application repositories. To enable template sync for your application repository, add the application topic to your repository.

Synced Files Include:

Category Files
Workflows .github/workflows/*.yml (selected core automation)
Config .editorconfig, .gitignore, .releaserc.json
Dev UX .vscode/settings.json

These represent the "source of truth"; local divergent changes in target repos will be overwritten (review PRs carefully).

For detailed information, see the Template Sync Documentation.

Getting Started

Encrypted secrets

make init-encrypt

Creates:

  • age.agekey → add to repo secret SOPS_AGE_KEY
  • age.pubkey → used for encryption

Add plaintext secrets to:

ops/secrets/application-application-secrets/values.dec.yaml

Encrypt them:

make encrypt-secrets SECRETS_DIR=./ops/secrets/application-application-secrets

This produces values.sops.yaml (commit this).


Docker

docker compose up --build
docker compose down --remove-orphans --volumes

Contributing

Contributions welcome! Please:

  1. Open an issue describing the change
  2. Use Conventional Commits for branch + commit messages
  3. Add / adjust tests where behavior changes
  4. Update docs (README / TechDocs / ADRs) when altering architecture

Roadmap (Excerpt)

  • Add coverage reporting & badge
  • Introduce example service code scaffolding
  • Provide k6 performance test harness
  • Optional Terraform module integration

License

Distributed under the terms of the MIT license. See LICENSE for details.

About

No description or website provided.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •