# Active Projects

Current active and development-stage client projects

# Kenan Hot — Website (kenyhot.pro)

# Kenan Hot — Client Website

**Client Type:** Individual / Professional Athlete  
**Status:** Active  
**Added:** 2026-03-21  
**Last Updated:** 2026-04-20

---

## Client Profile

**Name:** Kenan Hot  
**Age:** 21 years old  
**Profession:** Professional Soccer Player  
**Position:** Midfielder  
**Current Team:** Austin FC II (MLS NEXT Pro)  
**Previous Team:** Duke University (NCAA Division I)  
**Nationality:** USA  
**Social Media:**

- Twitter: [@KenanHot16](https://twitter.com/KenanHot16)

**Notable Achievements:**

- All-ACC Selection (2025)
- 8 goals + 4 assists in 2025 season
- USA National Team player

---

## Website

**Domain:** [kenyhot.pro](https://kenyhot.pro)  
**Purpose:** Professional athlete portfolio and personal brand

### Technical Stack

**Hosting:** Vercel → planned migration to Cloudflare Pages  
**Framework:** Static HTML/CSS/JavaScript  
**Repo:** ~/projects/kenan-hot-web  
**Vercel Project:** kenan-hot-web  
**Build:** Static site (no build step required)

### Domain Details

**Registrar:** Namecheap  
**Registered:** 2026-03-21  
**Expiry:** 2027-03-21  
**DNS Provider:** Vercel DNS (ns1/ns2.vercel-dns.com)  
**Current IPs:** 64.29.17.65, 216.198.79.65 (Vercel edge network)

### Site Structure

**Key Pages:**

- Landing page: Bio, stats, career highlights
- Social media links
- Photo gallery

**SEO Metadata:**

- Title: "Kenan Hot — Professional Midfielder"
- Description: "21-year-old midfielder for Austin FC II. Duke University All-ACC selection. 8 goals, 4 assists."
- OG Image: Profile photo (1200x630)

**Performance:**

- Load time: ~127ms (Vercel edge)
- Status: ✅ LIVE and operational

---

## Service History

### 2026-03-21: Initial Setup

- Domain registered at Namecheap
- DNS pointed to Vercel
- Static site deployed to kenan-hot-web project
- ⚠️ **TYPO INCIDENT:** Domain entered as knyhot.pro (missing "e") in initial Vercel config
- Created duplicate project kenan-hot with phantom domain

### 2026-04-05: Domain Correction (Partial)

- Real domain kenyhot.pro added to Vercel
- DNS configured correctly
- **Issue:** Phantom domain knyhot.pro remained attached to both projects
- HTML metadata still referenced incorrect domain

### 2026-04-20: Full Cleanup

- Identified typo across all systems
- Fixed ALAI internal documentation (inventory + blueprint)
- Removed phantom domain from Vercel
- Deleted duplicate project kenan-hot
- Fixed HTML metadata references
- **Downtime:** ~35 seconds (DNS propagation during domain removal)
- **Recovery:** Immediate, site fully operational
- **Evidence folder:** /Users/makinja/system/evidence/kenyhot-vercel-cleanup/

---

## Planned Changes

### Near-term: Cloudflare Pages Migration (Task #8487)

- **Priority:** 3 (medium)
- **Timeline:** &lt; 5 minutes technical work
- **Reason:** Cost savings (Vercel Free → CF Pages Free), unified DNS
- **Coordination:** Requires client notification for DNS change

---

## Files &amp; Resources

**Local Repo:** ~/projects/kenan-hot-web  
**Evidence Folder:** /Users/makinja/system/evidence/kenyhot-vercel-cleanup/  
**Related Tasks:**

- MC #8487 — Cloudflare Pages migration for kenyhot.pro

**Vercel Dashboard:**

- Account: johns-projects-4b43bfa9
- Project URL: https://vercel.com/johns-projects-4b43bfa9/kenan-hot-web

---

## Notes

### 2026-04-20: Typo Incident Post-Mortem

**What happened:**

- Domain kenyhot.pro (correct spelling) was registered at Namecheap
- During Vercel setup, domain was entered as knyhot.pro (missing "e")
- Phantom domain knyhot.pro does NOT exist in .pro registry (RDAP 404)
- Vercel accepted the typo and created DNS records for non-existent domain
- Typo propagated to inventory docs, blueprints, task descriptions

**Root cause:**

- Human error during initial setup
- No RDAP validation in Vercel domain addition flow
- No automated inventory validation

**Impact:**

- Wasted 2 domain slots in Vercel
- Confusing dashboard (2 projects, 2 domains for same client)
- Incorrect SEO metadata
- Internal docs had wrong domain

**Prevention:**

- New rule created: DNS Inventory Verification Protocol
- All domains MUST pass dig + RDAP verification before adding to hosting platforms
- Rule file: /Users/makinja/system/rules/dns-inventory-verification.md
- BookStack: Rules &amp; Standards / DNS &amp; Hosting

---

*Created by:* ALAI, 2026  
*Last synced:* 2026-04-20

# ALAI CRM — Productization Inquiry (2026-07-03)

**Datum:** 2026-07-03 | **Status:** OPEN — čeka CEO odluku | **Vlasnik:** John (AI Director)

CEO upit: *"Neko se javio da je zainteresiran — kako bi bilo da naš CRM instaliramo nekom drugom / napravimo kao sistem koji prodajemo?"*

## 1. Realnost — naš CRM je interni alat, NE proizvod

Tool-verified (grep + discover.js, 2026-07-03):

- `~/system/tools/unified-crm.js` (687 linija) + `contacts.js`, `sales-pipeline.js`, `email-to-contact.js`
- Node.js **CLI** nad 5 lokalnih **SQLite** baza u `~/system/databases` (contacts / leads / invoices / tickets / mission-control)
- **Read-only** unified sloj. Potvrđeno: NEMA express/http server, NEMA jwt/bcrypt auth, NEMA multi-tenancy. Hard-coupled na `os.homedir()` i naš Mission Control.

**Zaključak:** ne može se "instalirati" kupcu kakvo jest — nema UI, nema login, baze su naše na ovoj mašini. Imamo dobar *data-model + logiku*, ne proizvod.

### Trenutni podaci u CRM-u (dashboard, 2026-07-03)

- Kontakti: 306 (289 klijenti, 10 partneri, 5 brokeri, 2 interna)
- Leadovi: 99 · weighted 229.200 NOK · 1 won / 92 lost / 6 aktivni
- Fakture: 13 · ukupno 2.355.458 NOK · plaćeno 1.605.177 NOK
- Tiketi: 5 · Mission Control: 347 taskova

## 2. Da postane proizvod = nova SaaS gradnja

Skybound (arhitektura) + CodeCraft (build). Red veličine: sedmice, ne dani (slično QODY / Bilko putanji).

1. Web UI (kontakti / leadovi / pipeline / fakture ekrani)
2. Auth + **multi-tenant izolacija** (svaki kupac svoje podatke — ista pravila kao Bilko/QODY)
3. Hosting na Azure (GCP je mrtav)
4. Onboarding + support

## 3. Tri opcije

<table id="bkmrk-opcija%C5%A0ta-jetrade-of"> <thead><tr><th>Opcija</th><th>Šta je</th><th>Trade-off</th></tr></thead> <tbody> <tr><td>**A — Custom single-tenant install**</td><td>Uzmemo logiku, tanak UI+auth, hostamo tom jednom kupcu instancu</td><td>Najbrže do prvog novca; per-klijent održavanje</td></tr> <tr><td>**B — Multi-tenant SaaS "ALAI CRM"**</td><td>Jednom sagradiš, prodaješ N puta</td><td>Najveći upfront; najbolji dugoročno</td></tr> <tr><td>**C — Ne gradi, proslijedi**</td><td>Uputi kupca na postojeći CRM</td><td>Napomena: HubSpot smo za Drop odbacili jer EUR-only</td></tr> </tbody></table>

## 4. OPEN — čeka CEO prije john-pilot plana

1. **Ko je zainteresiran + za šta** (mala firma? baš naš pipeline/fakture flow? broj korisnika?)
2. **Model**: custom install (A) ili proizvod za prodaju (B)?

**Preporuka:** NE obećavati kupcu "imamo gotov CRM" dok se scope ne zna. Sljedeći korak = john-pilot plan (scope / red-zone / procjena) tek nakon odgovora na 1+2.

---

*Memo: `~/.claude/projects/-Users-makinja/memory/project_crm_productization_inquiry_2026-07-03.md`*