Skip to content

Commit e30d33d

Browse files
EnriqueLopclaude
andcommitted
Initial release — AI-powered toolkit for local business web redesign
Complete workflow: prospect businesses via Google Maps, scrape existing sites, generate modern redesigns with AI, and present before/after showcases to clients. Everything runs in Docker. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
0 parents  commit e30d33d

35 files changed

Lines changed: 7279 additions & 0 deletions

.dockerignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.env
2+
config.operator.json
3+
.claude
4+
.git
5+
.github
6+
node_modules
7+
prospects/prospects.json
8+
prospects/searches.json
9+
prospects/fetched
10+
prospects/analysis
11+
projects
12+
planes
13+
pipeline.html
14+
.DS_Store

.env.example

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Google Places API (New) — required for prospecting and business data
2+
# Get yours at: https://console.cloud.google.com/apis/credentials
3+
# Enable "Places API (New)" in your project
4+
# Free tier: 5,000 requests/month
5+
GOOGLE_PLACES_API_KEY=your-api-key-here
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Build and push Docker image
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'Dockerfile'
8+
- 'package.json'
9+
- 'package-lock.json'
10+
11+
env:
12+
REGISTRY: ghcr.io
13+
IMAGE_NAME: ${{ github.repository }}
14+
15+
jobs:
16+
build-and-push:
17+
runs-on: ubuntu-latest
18+
permissions:
19+
contents: read
20+
packages: write
21+
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
- name: Log in to Container Registry
26+
uses: docker/login-action@v3
27+
with:
28+
registry: ${{ env.REGISTRY }}
29+
username: ${{ github.actor }}
30+
password: ${{ secrets.GITHUB_TOKEN }}
31+
32+
- name: Build and push
33+
uses: docker/build-push-action@v5
34+
with:
35+
context: .
36+
push: true
37+
tags: |
38+
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
39+
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.sha }}

.gitignore

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
node_modules/
2+
.DS_Store
3+
4+
# Secrets and personal config
5+
.env
6+
.env.local
7+
config.operator.json
8+
9+
# Claude Code local settings (may contain API keys)
10+
.claude/settings.local.json
11+
12+
# Prospect data (contains real business info)
13+
prospects/prospects.json
14+
prospects/searches.json
15+
prospects/fetched/
16+
prospects/analysis/
17+
18+
# Project data (contains client info)
19+
projects/
20+
21+
# Internal plans and notes
22+
planes/
23+
24+
# Generated files
25+
pipeline.html
26+
27+
# Docker artifacts
28+
docker/analyzer/node_modules/
29+
30+
# OS files
31+
Thumbs.db
32+
*.swp
33+
*.swo

CLAUDE.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Quartier
2+
3+
Read and follow the instructions in `PLAYBOOK.md`. That file has the complete workflow.
4+
5+
## Claude-specific
6+
7+
When generating HTML pages (home, subpages, showcase), use the `/frontend-design` skill for high-quality, production-grade output.

Dockerfile

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
FROM node:20-slim
2+
3+
# Chromium + dependencies (same as docker/analyzer, proven to work)
4+
RUN apt-get update && apt-get install -y \
5+
chromium \
6+
fonts-liberation \
7+
fonts-noto-color-emoji \
8+
libatk-bridge2.0-0 \
9+
libatk1.0-0 \
10+
libcups2 \
11+
libdrm2 \
12+
libgbm1 \
13+
libnss3 \
14+
libxcomposite1 \
15+
libxdamage1 \
16+
libxrandr2 \
17+
--no-install-recommends \
18+
&& rm -rf /var/lib/apt/lists/*
19+
20+
# Docker CLI (needed for shell scripts that call other Docker containers)
21+
RUN apt-get update && apt-get install -y \
22+
ca-certificates curl gnupg \
23+
&& install -m 0755 -d /etc/apt/keyrings \
24+
&& curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
25+
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable" > /etc/apt/sources.list.d/docker.list \
26+
&& apt-get update && apt-get install -y docker-ce-cli \
27+
&& rm -rf /var/lib/apt/lists/*
28+
29+
# Puppeteer uses system Chromium
30+
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
31+
ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
32+
ENV CHROME_PATH=/usr/bin/chromium
33+
34+
WORKDIR /app
35+
36+
# Install Node dependencies (scripts are mounted, not copied)
37+
COPY package.json package-lock.json ./
38+
RUN npm ci --omit=dev
39+
40+
# Default: run a command passed as arguments
41+
ENTRYPOINT []
42+
CMD ["bash"]

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025 Enrique Lopez
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

0 commit comments

Comments
 (0)