$ show nisrulz/app-privacy-policy-generator
This repository is a web application for generating privacy policies and terms of service for mobile and web apps. Built with Vue.js 3 and Bulma CSS, it features an 8-step wizard interface where users configure policy type (Simple, No Tracking, GDPR), app details, platforms, features, and third-party services. The application generates customized HTML/Markdown policies deployable to Flycricket or downloadable directly. It includes a PWA with service worker for offline support, internationalization (English/German), and a persistent theme toggle. The architecture centers on Vue composables for state management (app state, wizard navigation, content generation) and a Go-based build system that processes Go templates, compiles Less to CSS, and minifies assets. Key reusable patterns include modular template mixins, a flexible modal system, and utility functions for DOM manipulation. An ancillary tool in `tools/reviews-page-generator` fetches GitHub issue comments to generate a static testimonials page. The codebase demonstrates strong engineering practices: comprehensive Playwright test suite, golden HTML regression tests, dependency management via Go modules and package.json, and automated deployment workflows. While the custom build pipeline adds slight complexity, the separation of concerns and reusable components indicate maintainable, craftsmanship-driven development.
The LLM identified 3 files worth highlighting for reuse:
Implements three Vue 3 composables (useAppState, useWizard, useContent) that encapsulate distinct concerns: global app state, wizard navigation logic, and policy content generation. Each composable is self-contained, relies only on Vue's reactivity APIs, and could be extracted for reuse in other Vue 3 applications with minimal modification.
Defines reusable Go template blocks (outputButtons, attribution, wizardProgress, etc.) that are imported across multiple template files. This reduces duplication and ensures UI consistency. The pattern is framework-agnostic and could be adapted to any Go templating system or similar preprocessing pipeline.
Provides a generic modal structure (header, body, footer) with variable body content controlled via template conditionals. This clean separation allows multiple modal types (policy display, FAQ, disclaimer, export actions) to share consistent styling and behavior while maintaining distinct content. The pattern is easily portable to other web applications.