Coding

CLAUDE.md - Foodie Meal Planning PWA

**Project**: Foodie - Comprehensive Meal Planning Web Application

promptBeginner5 min to valuemarkdown
0 views
Feb 7, 2026

Sign in to like and favorite skills

Prompt Playground

2 Variables

Fill Variables

Preview

# CLAUDE.[[username][username][username][username]]d - Foodi[[username][username][username][username]] M[[username][username][username][username]][[username][username][username][username]]l Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g PWA

**P[username]oj[[username][username][username][username]]ct**: Foodi[[username][username][username][username]] - Co[[username][username][username][username]]p[username][[username][username][username][username]]h[[username][username][username][username]][[username][username][username][username]][username]iv[[username][username][username][username]] M[[username][username][username][username]][[username][username][username][username]]l Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g W[[username][username][username][username]]b Applic[[username][username][username][username]]tio[[username][username][username][username]]
**V[[username][username][username][username]][username][username]io[[username][username][username][username]]**: 1.0.0
**L[[username][username][username][username]][username]t Upd[[username][username][username][username]]t[[username][username][username][username]]d**: 2025-01-10
**T[[username][username][username][username]]ch St[[username][username][username][username]]ck**: R[[username][username][username][username]][[username][username][username][username]]ct 18, Typ[[username][username][username][username]]Sc[username]ipt, Vit[[username][username][username][username]] 5, T[[username][username][username][username]]ilwi[[username][username][username][username]]d CSS, Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]] (optio[[username][username][username][username]][[username][username][username][username]]l), GitH[username]b P[[username][username][username][username]]g[[username][username][username][username]][username]

---

## T[[username][username][username][username]]bl[[username][username][username][username]] of Co[[username][username][username][username]]t[[username][username][username][username]][[username][username][username][username]]t[username]

1. [P[username]oj[[username][username][username][username]]ct Ov[[username][username][username][username]][username]vi[[username][username][username][username]]w](#p[username]oj[[username][username][username][username]]ct-ov[[username][username][username][username]][username]vi[[username][username][username][username]]w)
2. [A[username]chit[[username][username][username][username]]ct[username][username][[username][username][username][username]]](#[[username][username][username][username]][username]chit[[username][username][username][username]]ct[username][username][[username][username][username][username]])
3. [T[[username][username][username][username]]ch St[[username][username][username][username]]ck D[[username][username][username][username]]ci[username]io[[username][username][username][username]][username]](#t[[username][username][username][username]]ch-[username]t[[username][username][username][username]]ck-d[[username][username][username][username]]ci[username]io[[username][username][username][username]][username])
4. [P[username]oj[[username][username][username][username]]ct St[username][username]ct[username][username][[username][username][username][username]]](#p[username]oj[[username][username][username][username]]ct-[username]t[username][username]ct[username][username][[username][username][username][username]])
5. [K[[username][username][username][username]]y F[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]][username]](#k[[username][username][username][username]]y-f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]][username])
6. [D[[username][username][username][username]]t[[username][username][username][username]] Mod[[username][username][username][username]]l](#d[[username][username][username][username]]t[[username][username][username][username]]-[[username][username][username][username]]od[[username][username][username][username]]l)
7. [St[[username][username][username][username]]t[[username][username][username][username]] M[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t](#[username]t[[username][username][username][username]]t[[username][username][username][username]]-[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t)
8. [I[[username][username][username][username]]t[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]tio[[username][username][username][username]][[username][username][username][username]]liz[[username][username][username][username]]tio[[username][username][username][username]]](#i[[username][username][username][username]]t[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]tio[[username][username][username][username]][[username][username][username][username]]liz[[username][username][username][username]]tio[[username][username][username][username]])
9. [PWA I[[username][username][username][username]]pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]tio[[username][username][username][username]]](#pw[[username][username][username][username]]-i[[username][username][username][username]]pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]tio[[username][username][username][username]])
10. [GitH[username]b I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]]](#gith[username]b-i[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]])
11. [D[[username][username][username][username]]v[[username][username][username][username]]lop[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t Wo[username]kflow](#d[[username][username][username][username]]v[[username][username][username][username]]lop[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t-wo[username]kflow)
12. [D[[username][username][username][username]]ploy[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t](#d[[username][username][username][username]]ploy[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t)
13. [T[[username][username][username][username]][username]ti[[username][username][username][username]]g St[username][[username][username][username][username]]t[[username][username][username][username]]gy](#t[[username][username][username][username]][username]ti[[username][username][username][username]]g-[username]t[username][[username][username][username][username]]t[[username][username][username][username]]gy)
14. [P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]] Opti[[username][username][username][username]]iz[[username][username][username][username]]tio[[username][username][username][username]]](#p[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]-opti[[username][username][username][username]]iz[[username][username][username][username]]tio[[username][username][username][username]])
15. [Acc[[username][username][username][username]][username][username]ibility](#[[username][username][username][username]]cc[[username][username][username][username]][username][username]ibility)
16. [F[username]t[username][username][[username][username][username][username]] E[[username][username][username][username]]h[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]](#f[username]t[username][username][[username][username][username][username]]-[[username][username][username][username]][[username][username][username][username]]h[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username])
17. [T[username]o[username]bl[[username][username][username][username]][username]hooti[[username][username][username][username]]g](#t[username]o[username]bl[[username][username][username][username]][username]hooti[[username][username][username][username]]g)
18. [Co[[username][username][username][username]]t[username]ib[username]ti[[username][username][username][username]]g](#co[[username][username][username][username]]t[username]ib[username]ti[[username][username][username][username]]g)

---

## P[username]oj[[username][username][username][username]]ct Ov[[username][username][username][username]][username]vi[[username][username][username][username]]w

Foodi[[username][username][username][username]] i[username] [[username][username][username][username]] P[username]og[username][[username][username][username][username]][username][username]iv[[username][username][username][username]] W[[username][username][username][username]]b Applic[[username][username][username][username]]tio[[username][username][username][username]] (PWA) d[[username][username][username][username]][username]ig[[username][username][username][username]][[username][username][username][username]]d to h[[username][username][username][username]]lp [username][username][[username][username][username][username]][username][username] pl[[username][username][username][username]][[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l[username], di[username]cov[[username][username][username][username]][username] [username][[username][username][username][username]]cip[[username][username][username][username]][username], g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]] [username]hoppi[[username][username][username][username]]g li[username]t[username], [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]] th[[username][username][username][username]]i[username] p[[username][username][username][username]][[username][username][username][username]]t[username]y. Th[[username][username][username][username]] [[username][username][username][username]]pp [username][username]ppo[username]t[username] [[username][username][username][username]][username]ltipl[[username][username][username][username]] l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]][username] (E[[username][username][username][username]]gli[username]h, Sp[[username][username][username][username]][[username][username][username][username]]i[username]h, F[username][[username][username][username][username]][[username][username][username][username]]ch) [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]][username]ltipl[[username][username][username][username]] c[username]i[username]i[[username][username][username][username]][[username][username][username][username]][username], [[username][username][username][username]][[username][username][username][username]]ki[[username][username][username][username]]g it t[username][username]ly glob[[username][username][username][username]]l.

### Co[username][[username][username][username][username]] Obj[[username][username][username][username]]ctiv[[username][username][username][username]][username]

- **Fl[[username][username][username][username]]xibility**: S[username]ppo[username]t [[username][username][username][username]][[username][username][username][username]]y c[username]i[username]i[[username][username][username][username]][[username][username][username][username]], di[[username][username][username][username]]t[[username][username][username][username]][username]y [username][[username][username][username][username]][username]t[username]ictio[[username][username][username][username]], o[username] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g [username]tyl[[username][username][username][username]]
- **Acc[[username][username][username][username]][username][username]ibility**: WCAG 2.1 AA co[[username][username][username][username]]pli[[username][username][username][username]][[username][username][username][username]]t, wo[username]k[username] offli[[username][username][username][username]][[username][username][username][username]], [[username][username][username][username]]obil[[username][username][username][username]]-fi[username][username]t
- **Co[[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]ity-D[username]iv[[username][username][username][username]][[username][username][username][username]]**: GitH[username]b-i[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]t[[username][username][username][username]]d [username][[username][username][username][username]]cip[[username][username][username][username]] co[[username][username][username][username]]t[username]ib[username]tio[[username][username][username][username]] [username]y[username]t[[username][username][username][username]][[username][username][username][username]]
- **P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t**: F[[username][username][username][username]][username]t lo[[username][username][username][username]]di[[username][username][username][username]]g, opti[[username][username][username][username]]iz[[username][username][username][username]]d b[username][[username][username][username][username]]dl[[username][username][username][username]][username], PWA c[[username][username][username][username]]p[[username][username][username][username]]biliti[[username][username][username][username]][username]
- **M[username]ltili[[username][username][username][username]]g[username][[username][username][username][username]]l**: F[username]ll i18[[username][username][username][username]] [username][username]ppo[username]t with [[username][username][username][username]][[username][username][username][username]][username]y [[username][username][username][username]]xp[[username][username][username][username]][[username][username][username][username]][username]io[[username][username][username][username]] to [[username][username][username][username]]o[username][[username][username][username][username]] l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]][username]

---

## A[username]chit[[username][username][username][username]]ct[username][username][[username][username][username][username]]

### High-L[[username][username][username][username]]v[[username][username][username][username]]l A[username]chit[[username][username][username][username]]ct[username][username][[username][username][username][username]]

```
┌─────────────────────────────────────────────────────────┐
│                    U[username][[username][username][username][username]][username] I[[username][username][username][username]]t[[username][username][username][username]][username]f[[username][username][username][username]]c[[username][username][username][username]] (R[[username][username][username][username]][[username][username][username][username]]ct)                │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌─────────┐│
│  │  P[[username][username][username][username]]g[[username][username][username][username]][username]   │  │Co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]│  │ L[[username][username][username][username]]yo[username]t[username]  │  │ Ro[username]ti[[username][username][username][username]]g ││
│  └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬────┘│
└───────┼────────────┼──────────────┼──────────────┼─────┘
        │            │              │              │
┌───────▼────────────▼──────────────▼──────────────▼─────┐
│              Co[[username][username][username][username]]t[[username][username][username][username]]xt API (St[[username][username][username][username]]t[[username][username][username][username]] M[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t)             │
│  ┌──────┐ ┌──────┐ ┌─────────┐ ┌──────┐ ┌───────────┐ │
│  │R[[username][username][username][username]]cip[[username][username][username][username]]│ │Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]│ │Shoppi[[username][username][username][username]]g│ │ A[username]th │ │ L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]]  │ │
│  └──────┘ └──────┘ └─────────┘ └──────┘ └───────────┘ │
└────────┬────────────────────────────────────────┬──────┘
         │                                        │
┌────────▼────────────────────────────────────────▼──────┐
│                     S[[username][username][username][username]][username]vic[[username][username][username][username]][username] L[[username][username][username][username]]y[[username][username][username][username]][username]                      │
│  ┌──────────┐  ┌──────────┐  ┌───────────┐  ┌───────┐│
│  │ R[[username][username][username][username]]cip[[username][username][username][username]]   │  │Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]]  │  │  GitH[username]b   │  │ Util[username] ││
│  │ S[[username][username][username][username]][username]vic[[username][username][username][username]]  │  │  S[[username][username][username][username]][username]vic[[username][username][username][username]] │  │   API     │  │       ││
│  └──────────┘  └──────────┘  └───────────┘  └───────┘│
└────────┬────────────────────────────────────────┬──────┘
         │                                        │
┌────────▼────────────────────────────────────────▼──────┐
│                      D[[username][username][username][username]]t[[username][username][username][username]] L[[username][username][username][username]]y[[username][username][username][username]][username]                         │
│  ┌──────────┐  ┌──────────────┐  ┌──────────────────┐│
│  │JSON Fil[[username][username][username][username]][username]│  │ Loc[[username][username][username][username]]lSto[username][[username][username][username][username]]g[[username][username][username][username]] │  │ Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]]/Fi[username][[username][username][username][username]][username]to[username][[username][username][username][username]]││
│  │(St[[username][username][username][username]]tic)  │  │  (Offli[[username][username][username][username]][[username][username][username][username]])   │  │  (Clo[username]d Sy[[username][username][username][username]]c)     ││
│  └──────────┘  └──────────────┘  └──────────────────┘│
└─────────────────────────────────────────────────────────┘
```

### D[[username][username][username][username]][username]ig[[username][username][username][username]] P[[username][username][username][username]]tt[[username][username][username][username]][username][[username][username][username][username]][username]

1. **Co[[username][username][username][username]]t[[username][username][username][username]]xt + Hook[username] P[[username][username][username][username]]tt[[username][username][username][username]][username][[username][username][username][username]]**: Glob[[username][username][username][username]]l [username]t[[username][username][username][username]]t[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]]d th[username]o[username]gh R[[username][username][username][username]][[username][username][username][username]]ct Co[[username][username][username][username]]t[[username][username][username][username]]xt API with c[username][username]to[[username][username][username][username]] hook[username]
2. **Co[[username][username][username][username]]t[[username][username][username][username]]i[[username][username][username][username]][[username][username][username][username]][username]/P[username][[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]tio[[username][username][username][username]][[username][username][username][username]]l**: S[[username][username][username][username]]p[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]] of logic (co[[username][username][username][username]]t[[username][username][username][username]]i[[username][username][username][username]][[username][username][username][username]][username][username]) [[username][username][username][username]][[username][username][username][username]]d UI (p[username][[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]tio[[username][username][username][username]][[username][username][username][username]]l co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username])
3. **Co[[username][username][username][username]]po[username]itio[[username][username][username][username]]**: S[[username][username][username][username]][[username][username][username][username]]ll, [username][[username][username][username][username]][username][username][[username][username][username][username]]bl[[username][username][username][username]] co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username] co[[username][username][username][username]]po[username][[username][username][username][username]]d to b[username]ild co[[username][username][username][username]]pl[[username][username][username][username]]x UI[username]
4. **S[[username][username][username][username]][username]vic[[username][username][username][username]] L[[username][username][username][username]]y[[username][username][username][username]][username]**: B[username][username]i[[username][username][username][username]][[username][username][username][username]][username][username] logic [[username][username][username][username]]b[username]t[username][[username][username][username][username]]ct[[username][username][username][username]]d i[[username][username][username][username]]to [username][[username][username][username][username]][username]vic[[username][username][username][username]] [[username][username][username][username]]od[username]l[[username][username][username][username]][username]
5. **P[username]og[username][[username][username][username][username]][username][username]iv[[username][username][username][username]] E[[username][username][username][username]]h[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t**: Co[username][[username][username][username][username]] f[username][[username][username][username][username]]ctio[[username][username][username][username]][[username][username][username][username]]lity wo[username]k[username] witho[username]t J[[username][username][username][username]]v[[username][username][username][username]]Sc[username]ipt, [[username][username][username][username]][[username][username][username][username]]h[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]d with R[[username][username][username][username]][[username][username][username][username]]ct

---

## T[[username][username][username][username]]ch St[[username][username][username][username]]ck D[[username][username][username][username]]ci[username]io[[username][username][username][username]][username]

### Why Th[[username][username][username][username]][username][[username][username][username][username]] T[[username][username][username][username]]ch[[username][username][username][username]]ologi[[username][username][username][username]][username]?

#### R[[username][username][username][username]][[username][username][username][username]]ct 18 + Typ[[username][username][username][username]]Sc[username]ipt
- **R[[username][username][username][username]][[username][username][username][username]]ct**: I[[username][username][username][username]]d[username][username]t[username]y [username]t[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username]d, [[username][username][username][username]]xc[[username][username][username][username]]ll[[username][username][username][username]][[username][username][username][username]]t [[username][username][username][username]]co[username]y[username]t[[username][username][username][username]][[username][username][username][username]], g[username][[username][username][username][username]][[username][username][username][username]]t p[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]] with co[[username][username][username][username]]c[username][username][username][[username][username][username][username]][[username][username][username][username]]t f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]][username]
- **Typ[[username][username][username][username]]Sc[username]ipt**: Typ[[username][username][username][username]] [username][[username][username][username][username]]f[[username][username][username][username]]ty [username][[username][username][username][username]]d[username]c[[username][username][username][username]][username] b[username]g[username], b[[username][username][username][username]]tt[[username][username][username][username]][username] IDE [username][username]ppo[username]t, [username][[username][username][username][username]]lf-doc[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]ti[[username][username][username][username]]g cod[[username][username][username][username]]
- **Hook[username]**: Mod[[username][username][username][username]][username][[username][username][username][username]] R[[username][username][username][username]][[username][username][username][username]]ct p[[username][username][username][username]]tt[[username][username][username][username]][username][[username][username][username][username]][username], [[username][username][username][username]][[username][username][username][username]][username]i[[username][username][username][username]][username] [username]t[[username][username][username][username]]t[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t [[username][username][username][username]][[username][username][username][username]]d [username]id[[username][username][username][username]] [[username][username][username][username]]ff[[username][username][username][username]]ct[username]

#### Vit[[username][username][username][username]] 5
- **F[[username][username][username][username]][username]t HMR**: Light[[username][username][username][username]]i[[username][username][username][username]]g-f[[username][username][username][username]][username]t hot [[username][username][username][username]]od[username]l[[username][username][username][username]] [username][[username][username][username][username]]pl[[username][username][username][username]]c[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t fo[username] b[[username][username][username][username]]tt[[username][username][username][username]][username] DX
- **ES Mod[username]l[[username][username][username][username]][username]**: N[[username][username][username][username]]tiv[[username][username][username][username]] ES [[username][username][username][username]]od[username]l[[username][username][username][username]] [username][username]ppo[username]t, [[username][username][username][username]]o b[username][[username][username][username][username]]dli[[username][username][username][username]]g i[[username][username][username][username]] d[[username][username][username][username]]v
- **Opti[[username][username][username][username]]iz[[username][username][username][username]]d B[username]ild**: Roll[username]p-b[[username][username][username][username]][username][[username][username][username][username]]d p[username]od[username]ctio[[username][username][username][username]] b[username]ild[username] with [[username][username][username][username]][username]to[[username][username][username][username]][[username][username][username][username]]tic cod[[username][username][username][username]] [username]plitti[[username][username][username][username]]g
- **Pl[username]gi[[username][username][username][username]] Eco[username]y[username]t[[username][username][username][username]][[username][username][username][username]]**: E[[username][username][username][username]][username]y PWA i[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]] with vit[[username][username][username][username]]-pl[username]gi[[username][username][username][username]]-pw[[username][username][username][username]]

#### T[[username][username][username][username]]ilwi[[username][username][username][username]]d CSS
- **Utility-Fi[username][username]t**: R[[username][username][username][username]]pid d[[username][username][username][username]]v[[username][username][username][username]]lop[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t with [username]tility cl[[username][username][username][username]][username][username][[username][username][username][username]][username]
- **C[username][username]to[[username][username][username][username]]iz[[username][username][username][username]]tio[[username][username][username][username]]**: E[[username][username][username][username]][username]y to c[username][username]to[[username][username][username][username]]iz[[username][username][username][username]] th[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]]xt[[username][username][username][username]][[username][username][username][username]]d
- **P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]**: P[username][username]g[[username][username][username][username]]CSS [username][[username][username][username][username]][[username][username][username][username]]ov[[username][username][username][username]][username] [username][[username][username][username][username]][username][username][[username][username][username][username]]d [username]tyl[[username][username][username][username]][username] [[username][username][username][username]][username]to[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]lly
- **D[[username][username][username][username]][username]k Mod[[username][username][username][username]]**: B[username]ilt-i[[username][username][username][username]] d[[username][username][username][username]][username]k [[username][username][username][username]]od[[username][username][username][username]] [username][username]ppo[username]t with `cl[[username][username][username][username]][username][username]` [username]t[username][[username][username][username][username]]t[[username][username][username][username]]gy

#### R[[username][username][username][username]][[username][username][username][username]]ct Co[[username][username][username][username]]t[[username][username][username][username]]xt API (v[username] R[[username][username][username][username]]d[username]x/Z[username][username]t[[username][username][username][username]][[username][username][username][username]]d)
- **B[username]ilt-i[[username][username][username][username]]**: No [[username][username][username][username]]xt[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]l d[[username][username][username][username]]p[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][[username][username][username][username]]ci[[username][username][username][username]][username] fo[username] [username]t[[username][username][username][username]]t[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t
- **S[username]ffici[[username][username][username][username]][[username][username][username][username]]t**: App co[[username][username][username][username]]pl[[username][username][username][username]]xity do[[username][username][username][username]][username][[username][username][username][username]]'t [username][[username][username][username][username]]q[username]i[username][[username][username][username][username]] h[[username][username][username][username]][[username][username][username][username]]vy [username]t[[username][username][username][username]]t[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t
- **Si[[username][username][username][username]]pl[[username][username][username][username]]**: E[[username][username][username][username]][username]i[[username][username][username][username]][username] fo[username] co[[username][username][username][username]]t[username]ib[username]to[username][username] to [username][[username][username][username][username]]d[[username][username][username][username]][username][username]t[[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]]xt[[username][username][username][username]][[username][username][username][username]]d
- **P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t**: With p[username]op[[username][username][username][username]][username] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]oiz[[username][username][username][username]]tio[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]]d co[[username][username][username][username]]t[[username][username][username][username]]xt [username]plitti[[username][username][username][username]]g

#### i18[[username][username][username][username]][[username][username][username][username]]xt
- **M[[username][username][username][username]]t[username][username][[username][username][username][username]]**: B[[username][username][username][username]]ttl[[username][username][username][username]]-t[[username][username][username][username]][username]t[[username][username][username][username]]d i18[[username][username][username][username]] [username]ol[username]tio[[username][username][username][username]]
- **R[[username][username][username][username]][[username][username][username][username]]ct I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]]**: Offici[[username][username][username][username]]l [username][[username][username][username][username]][[username][username][username][username]]ct-i18[[username][username][username][username]][[username][username][username][username]]xt p[[username][username][username][username]]ck[[username][username][username][username]]g[[username][username][username][username]]
- **L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]] D[[username][username][username][username]]t[[username][username][username][username]]ctio[[username][username][username][username]]**: A[username]to[[username][username][username][username]][[username][username][username][username]]tic l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]] d[[username][username][username][username]]t[[username][username][username][username]]ctio[[username][username][username][username]] f[username]o[[username][username][username][username]] b[username]ow[username][[username][username][username][username]][username]
- **A[username]y[[username][username][username][username]]c Lo[[username][username][username][username]]di[[username][username][username][username]]g**: Lo[[username][username][username][username]]d t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]][username] o[[username][username][username][username]]-d[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]d

#### Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]] (Optio[[username][username][username][username]][[username][username][username][username]]l)
- **A[username]th[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]tio[[username][username][username][username]]**: E[[username][username][username][username]][username]y OA[username]th i[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]] (Googl[[username][username][username][username]], GitH[username]b)
- **Fi[username][[username][username][username][username]][username]to[username][[username][username][username][username]]**: R[[username][username][username][username]][[username][username][username][username]]l-ti[[username][username][username][username]][[username][username][username][username]] d[[username][username][username][username]]t[[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]] fo[username] [username][username][[username][username][username][username]][username] d[[username][username][username][username]]t[[username][username][username][username]], [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][username]
- **Sto[username][[username][username][username][username]]g[[username][username][username][username]]**: Clo[username]d [username]to[username][[username][username][username][username]]g[[username][username][username][username]] fo[username] [username][username][[username][username][username][username]][username]-[username]plo[[username][username][username][username]]d[[username][username][username][username]]d [username][[username][username][username][username]]cip[[username][username][username][username]] i[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username]
- **F[username][[username][username][username][username]][[username][username][username][username]] Ti[[username][username][username][username]][username]**: G[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]o[username][username] f[username][[username][username][username][username]][[username][username][username][username]] ti[[username][username][username][username]][username] fo[username] [username][[username][username][username][username]][[username][username][username][username]]ll to [[username][username][username][username]][[username][username][username][username]]di[username][[username][username][username][username]] [[username][username][username][username]]pp[username]

#### GitH[username]b P[[username][username][username][username]]g[[username][username][username][username]][username]
- **F[username][[username][username][username][username]][[username][username][username][username]]**: F[username][[username][username][username][username]][[username][username][username][username]] ho[username]ti[[username][username][username][username]]g fo[username] p[username]blic [username][[username][username][username][username]]po[username]ito[username]i[[username][username][username][username]][username]
- **CI/CD**: I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]t[[username][username][username][username]]d with GitH[username]b Actio[[username][username][username][username]][username]
- **C[username][username]to[[username][username][username][username]] Do[[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]][username]**: S[username]ppo[username]t fo[username] c[username][username]to[[username][username][username][username]] do[[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]][username]
- **HTTPS**: A[username]to[[username][username][username][username]][[username][username][username][username]]tic HTTPS [username][username]ppo[username]t

---

## P[username]oj[[username][username][username][username]]ct St[username][username]ct[username][username][[username][username][username][username]]

```
foodi[[username][username][username][username]]/
├── p[username]blic/                     # St[[username][username][username][username]]tic [[username][username][username][username]][username][username][[username][username][username][username]]t[username]
│   ├── i[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username]/                 # I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]] [[username][username][username][username]][username][username][[username][username][username][username]]t[username]
│   │   ├── [username][[username][username][username][username]]cip[[username][username][username][username]][username]/            # R[[username][username][username][username]]cip[[username][username][username][username]] photo[username]
│   │   ├── i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[username]/        # I[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t photo[username]
│   │   ├── ico[[username][username][username][username]][username]/              # PWA ico[[username][username][username][username]][username]
│   │   └── pl[[username][username][username][username]]c[[username][username][username][username]]hold[[username][username][username][username]][username][username]/       # Pl[[username][username][username][username]]c[[username][username][username][username]]hold[[username][username][username][username]][username] i[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username]
│   ├── loc[[username][username][username][username]]l[[username][username][username][username]][username]/                # T[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]] fil[[username][username][username][username]][username]
│   │   ├── [[username][username][username][username]][[username][username][username][username]]/t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]].j[username]o[[username][username][username][username]]
│   │   ├── [[username][username][username][username]][username]/t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]].j[username]o[[username][username][username][username]]
│   │   └── f[username]/t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]].j[username]o[[username][username][username][username]]
│   └── [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]if[[username][username][username][username]][username]t.w[[username][username][username][username]]b[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]if[[username][username][username][username]][username]t    # PWA [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]if[[username][username][username][username]][username]t
│
├── [username][username]c/
│   ├── co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]/             # R[[username][username][username][username]][[username][username][username][username]]ct co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │   ├── co[[username][username][username][username]][[username][username][username][username]]o[[username][username][username][username]]/             # R[[username][username][username][username]][username][username][[username][username][username][username]]bl[[username][username][username][username]] UI co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │   ├── l[[username][username][username][username]]yo[username]t/             # L[[username][username][username][username]]yo[username]t co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username] (H[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username], Foot[[username][username][username][username]][username])
│   │   ├── [username][[username][username][username][username]]cip[[username][username][username][username]]/             # R[[username][username][username][username]]cip[[username][username][username][username]]-[username][[username][username][username][username]]l[[username][username][username][username]]t[[username][username][username][username]]d co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │   ├── pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]/            # M[[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username] co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │   ├── [username]hoppi[[username][username][username][username]]g/           # Shoppi[[username][username][username][username]]g li[username]t co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │   ├── co[[username][username][username][username]]t[username]ib[username]t[[username][username][username][username]]/         # R[[username][username][username][username]]cip[[username][username][username][username]] co[[username][username][username][username]]t[username]ib[username]tio[[username][username][username][username]] wiz[[username][username][username][username]][username]d
│   │   ├── [[username][username][username][username]][username]th/               # A[username]th[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]tio[[username][username][username][username]] co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │   └── p[[username][username][username][username]][[username][username][username][username]]t[username]y/             # P[[username][username][username][username]][[username][username][username][username]]t[username]y [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │
│   ├── co[[username][username][username][username]]t[[username][username][username][username]]xt[username]/               # R[[username][username][username][username]][[username][username][username][username]]ct Co[[username][username][username][username]]t[[username][username][username][username]]xt p[username]ovid[[username][username][username][username]][username][username]
│   │   ├── AppCo[[username][username][username][username]]t[[username][username][username][username]]xt.t[username]x      # App-wid[[username][username][username][username]] [username][[username][username][username][username]]tti[[username][username][username][username]]g[username]
│   │   ├── Th[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]Co[[username][username][username][username]]t[[username][username][username][username]]xt.t[username]x    # D[[username][username][username][username]][username]k/light th[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]
│   │   ├── L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]]Co[[username][username][username][username]]t[[username][username][username][username]]xt.t[username]x # i18[[username][username][username][username]] l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]] [username]t[[username][username][username][username]]t[[username][username][username][username]]
│   │   ├── A[username]thCo[[username][username][username][username]]t[[username][username][username][username]]xt.t[username]x     # U[username][[username][username][username][username]][username] [[username][username][username][username]][username]th[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]tio[[username][username][username][username]]
│   │   ├── R[[username][username][username][username]]cip[[username][username][username][username]]Co[[username][username][username][username]]t[[username][username][username][username]]xt.t[username]x   # R[[username][username][username][username]]cip[[username][username][username][username]] d[[username][username][username][username]]t[[username][username][username][username]] & filt[[username][username][username][username]][username][username]
│   │   ├── Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]Co[[username][username][username][username]]t[[username][username][username][username]]xt.t[username]x  # M[[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g [username]t[[username][username][username][username]]t[[username][username][username][username]]
│   │   └── Shoppi[[username][username][username][username]]gCo[[username][username][username][username]]t[[username][username][username][username]]xt.t[username]x # Shoppi[[username][username][username][username]]g li[username]t [username]t[[username][username][username][username]]t[[username][username][username][username]]
│   │
│   ├── hook[username]/                  # C[username][username]to[[username][username][username][username]] R[[username][username][username][username]][[username][username][username][username]]ct hook[username]
│   │   ├── [username][username][[username][username][username][username]]R[[username][username][username][username]]cip[[username][username][username][username]][username].t[username]       # R[[username][username][username][username]]cip[[username][username][username][username]] op[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]][username]
│   │   ├── [username][username][[username][username][username][username]]M[[username][username][username][username]][[username][username][username][username]]lPl[[username][username][username][username]][[username][username][username][username]][username].t[username]     # M[[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]] op[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]][username]
│   │   ├── [username][username][[username][username][username][username]]Loc[[username][username][username][username]]lSto[username][[username][username][username][username]]g[[username][username][username][username]].t[username]  # Loc[[username][username][username][username]]lSto[username][[username][username][username][username]]g[[username][username][username][username]] w[username][[username][username][username][username]]pp[[username][username][username][username]][username]
│   │   ├── [username][username][[username][username][username][username]]D[[username][username][username][username]]bo[username][[username][username][username][username]]c[[username][username][username][username]].t[username]      # D[[username][username][username][username]]bo[username][[username][username][username][username]]c[[username][username][username][username]] hook
│   │   └── [username][username][[username][username][username][username]]M[[username][username][username][username]]di[[username][username][username][username]]Q[username][[username][username][username][username]][username]y.t[username]    # R[[username][username][username][username]][username]po[[username][username][username][username]][username]iv[[username][username][username][username]] d[[username][username][username][username]][username]ig[[username][username][username][username]] hook
│   │
│   ├── [username]til[username]/                  # Utility f[username][[username][username][username][username]]ctio[[username][username][username][username]][username]
│   │   ├── c[[username][username][username][username]]lc[username]l[[username][username][username][username]]tio[[username][username][username][username]][username].t[username]     # N[username]t[username]itio[[username][username][username][username]], co[username]t c[[username][username][username][username]]lc[username]l[[username][username][username][username]]tio[[username][username][username][username]][username]
│   │   ├── [username][[username][username][username][username]]itCo[[username][username][username][username]]v[[username][username][username][username]][username][username]io[[username][username][username][username]][username].t[username]  # U[[username][username][username][username]]it co[[username][username][username][username]]v[[username][username][username][username]][username][username]io[[username][username][username][username]] logic
│   │   ├── [[username][username][username][username]][username]t[username]itio[[username][username][username][username]]E[username]ti[[username][username][username][username]][[username][username][username][username]]to[username].t[username] # N[username]t[username]itio[[username][username][username][username]] [[username][username][username][username]][username]ti[[username][username][username][username]][[username][username][username][username]]tio[[username][username][username][username]]
│   │   ├── gith[username]bAPI.t[username]        # GitH[username]b API w[username][[username][username][username][username]]pp[[username][username][username][username]][username]
│   │   ├── fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]]API.t[username]      # Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]] op[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]][username]
│   │   ├── [username]to[username][[username][username][username][username]]g[[username][username][username][username]].t[username]          # Loc[[username][username][username][username]]lSto[username][[username][username][username][username]]g[[username][username][username][username]] [username]tiliti[[username][username][username][username]][username]
│   │   ├── v[[username][username][username][username]]lid[[username][username][username][username]]tio[[username][username][username][username]].t[username]       # Fo[username][[username][username][username][username]] & d[[username][username][username][username]]t[[username][username][username][username]] v[[username][username][username][username]]lid[[username][username][username][username]]tio[[username][username][username][username]]
│   │   └── fo[username][[username][username][username][username]][[username][username][username][username]]tti[[username][username][username][username]]g.t[username]       # D[[username][username][username][username]]t[[username][username][username][username]], [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username] fo[username][[username][username][username][username]][[username][username][username][username]]tti[[username][username][username][username]]g
│   │
│   ├── [username][[username][username][username][username]][username]vic[[username][username][username][username]][username]/               # B[username][username]i[[username][username][username][username]][[username][username][username][username]][username][username] logic [username][[username][username][username][username]][username]vic[[username][username][username][username]][username]
│   │   ├── [username][[username][username][username][username]]cip[[username][username][username][username]]S[[username][username][username][username]][username]vic[[username][username][username][username]].t[username]    # R[[username][username][username][username]]cip[[username][username][username][username]] CRUD op[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]][username]
│   │   ├── i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]tS[[username][username][username][username]][username]vic[[username][username][username][username]].t[username] # I[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t op[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]][username]
│   │   ├── pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]S[[username][username][username][username]][username]vic[[username][username][username][username]].t[username]   # M[[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g logic
│   │   └── [username]hoppi[[username][username][username][username]]gS[[username][username][username][username]][username]vic[[username][username][username][username]].t[username]  # Shoppi[[username][username][username][username]]g li[username]t g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]]
│   │
│   ├── d[[username][username][username][username]]t[[username][username][username][username]]/                   # St[[username][username][username][username]]tic d[[username][username][username][username]]t[[username][username][username][username]] (JSON)
│   │   ├── [username][[username][username][username][username]]cip[[username][username][username][username]][username].j[username]o[[username][username][username][username]]        # R[[username][username][username][username]]cip[[username][username][username][username]] d[[username][username][username][username]]t[[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]]
│   │   ├── i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[username].j[username]o[[username][username][username][username]]    # I[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t d[[username][username][username][username]]t[[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]]
│   │   ├── c[[username][username][username][username]]t[[username][username][username][username]]go[username]i[[username][username][username][username]][username].j[username]o[[username][username][username][username]]     # C[[username][username][username][username]]t[[username][username][username][username]]go[username]i[[username][username][username][username]][username] & t[[username][username][username][username]]xo[[username][username][username][username]]o[[username][username][username][username]]i[[username][username][username][username]][username]
│   │   └── co[[username][username][username][username]]fig.j[username]o[[username][username][username][username]]         # App co[[username][username][username][username]]fig[username][username][[username][username][username][username]]tio[[username][username][username][username]]
│   │
│   ├── [username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]/                # JSON [username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username] fo[username] v[[username][username][username][username]]lid[[username][username][username][username]]tio[[username][username][username][username]]
│   │   ├── [username][[username][username][username][username]]cip[[username][username][username][username]].[username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]].j[username]o[[username][username][username][username]]
│   │   ├── i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t.[username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]].j[username]o[[username][username][username][username]]
│   │   └── [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]lPl[[username][username][username][username]][[username][username][username][username]].[username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]].j[username]o[[username][username][username][username]]
│   │
│   ├── p[[username][username][username][username]]g[[username][username][username][username]][username]/                  # P[[username][username][username][username]]g[[username][username][username][username]] co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]
│   │   ├── Ho[[username][username][username][username]][[username][username][username][username]]P[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   ├── R[[username][username][username][username]]cip[[username][username][username][username]][username]P[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   ├── R[[username][username][username][username]]cip[[username][username][username][username]]D[[username][username][username][username]]t[[username][username][username][username]]ilP[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   ├── Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]P[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   ├── Shoppi[[username][username][username][username]]gLi[username]tP[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   ├── Co[[username][username][username][username]]t[username]ib[username]t[[username][username][username][username]]P[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   ├── P[[username][username][username][username]][[username][username][username][username]]t[username]yP[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   ├── P[username]ofil[[username][username][username][username]]P[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │   └── NotFo[username][[username][username][username][username]]dP[[username][username][username][username]]g[[username][username][username][username]].t[username]x
│   │
│   ├── typ[[username][username][username][username]][username]/                  # Typ[[username][username][username][username]]Sc[username]ipt typ[[username][username][username][username]] d[[username][username][username][username]]fi[[username][username][username][username]]itio[[username][username][username][username]][username]
│   │   └── i[[username][username][username][username]]d[[username][username][username][username]]x.t[username]            # All typ[[username][username][username][username]] d[[username][username][username][username]]fi[[username][username][username][username]]itio[[username][username][username][username]][username]
│   │
│   ├── [username]tyl[[username][username][username][username]][username]/                 # Glob[[username][username][username][username]]l [username]tyl[[username][username][username][username]][username]
│   │   └── glob[[username][username][username][username]]l[username].c[username][username]         # T[[username][username][username][username]]ilwi[[username][username][username][username]]d + c[username][username]to[[username][username][username][username]] [username]tyl[[username][username][username][username]][username]
│   │
│   ├── App.t[username]x                 # Root co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t
│   ├── [[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]].t[username]x                # E[[username][username][username][username]]t[username]y poi[[username][username][username][username]]t
│   └── i18[[username][username][username][username]].t[username]                 # i18[[username][username][username][username]][[username][username][username][username]]xt co[[username][username][username][username]]fig[username][username][[username][username][username][username]]tio[[username][username][username][username]]
│
├── .gith[username]b/
│   └── wo[username]kflow[username]/              # GitH[username]b Actio[[username][username][username][username]][username]
│       ├── d[[username][username][username][username]]ploy.y[[username][username][username][username]]l          # D[[username][username][username][username]]ploy to GitH[username]b P[[username][username][username][username]]g[[username][username][username][username]][username]
│       ├── v[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]]-[username][[username][username][username][username]]cip[[username][username][username][username]]-p[username].y[[username][username][username][username]]l # V[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]] [username][[username][username][username][username]]cip[[username][username][username][username]] PR[username]
│       └── lightho[username][username][[username][username][username][username]]-ci.y[[username][username][username][username]]l   # P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]] t[[username][username][username][username]][username]ti[[username][username][username][username]]g
│
├── [username]c[username]ipt[username]/                    # B[username]ild & [username]tility [username]c[username]ipt[username]
│   ├── v[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]]JSON.j[username]         # JSON [username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] v[[username][username][username][username]]lid[[username][username][username][username]]tio[[username][username][username][username]]
│   └── g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]]Sit[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]p.j[username]      # Sit[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]p g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]]
│
├── t[[username][username][username][username]][username]t[username]/                      # T[[username][username][username][username]][username]t fil[[username][username][username][username]][username]
│   ├── [username][[username][username][username][username]]it/                   # U[[username][username][username][username]]it t[[username][username][username][username]][username]t[username]
│   ├── i[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]]/            # I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]] t[[username][username][username][username]][username]t[username]
│   └── [[username][username][username][username]]2[[username][username][username][username]]/                    # E[[username][username][username][username]]d-to-[[username][username][username][username]][[username][username][username][username]]d t[[username][username][username][username]][username]t[username]
│
├── p[[username][username][username][username]]ck[[username][username][username][username]]g[[username][username][username][username]].j[username]o[[username][username][username][username]]
├── t[username]co[[username][username][username][username]]fig.j[username]o[[username][username][username][username]]
├── vit[[username][username][username][username]].co[[username][username][username][username]]fig.t[username]
├── t[[username][username][username][username]]ilwi[[username][username][username][username]]d.co[[username][username][username][username]]fig.j[username]
├── .[[username][username][username][username]][[username][username][username][username]]v.[[username][username][username][username]]x[[username][username][username][username]][[username][username][username][username]]pl[[username][username][username][username]]
├── README.[[username][username][username][username]]d
└── CLAUDE.[[username][username][username][username]]d                   # Thi[username] fil[[username][username][username][username]]
```

---

## K[[username][username][username][username]]y F[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]][username]

### 1. R[[username][username][username][username]]cip[[username][username][username][username]] B[username]ow[username][[username][username][username][username]][username]
- **S[[username][username][username][username]][[username][username][username][username]][username]ch**: F[username]ll-t[[username][username][username][username]]xt [username][[username][username][username][username]][[username][username][username][username]][username]ch [[username][username][username][username]]c[username]o[username][username] [username][[username][username][username][username]]cip[[username][username][username][username]][username] i[[username][username][username][username]] [[username][username][username][username]]ll l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]][username]
- **Filt[[username][username][username][username]][username][username]**: By [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l typ[[username][username][username][username]], c[username]i[username]i[[username][username][username][username]][[username][username][username][username]], di[[username][username][username][username]]t[[username][username][username][username]][username]y t[[username][username][username][username]]g[username], p[username][[username][username][username][username]]p/cook ti[[username][username][username][username]][[username][username][username][username]]
- **So[username]ti[[username][username][username][username]]g**: By [username][[username][username][username][username]]ti[[username][username][username][username]]g, ti[[username][username][username][username]][[username][username][username][username]], co[username]t, pop[username]l[[username][username][username][username]][username]ity, [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]
- **D[[username][username][username][username]]t[[username][username][username][username]]il Vi[[username][username][username][username]]w**: F[username]ll [username][[username][username][username][username]]cip[[username][username][username][username]] with [username]c[[username][username][username][username]]li[[username][username][username][username]]g, [[username][username][username][username]][username]t[username]itio[[username][username][username][username]] f[[username][username][username][username]]ct[username], ti[[username][username][username][username]][[username][username][username][username]][username]
- **F[[username][username][username][username]]vo[username]it[[username][username][username][username]][username]**: S[[username][username][username][username]]v[[username][username][username][username]] f[[username][username][username][username]]vo[username]it[[username][username][username][username]] [username][[username][username][username][username]]cip[[username][username][username][username]][username] (loc[[username][username][username][username]]lSto[username][[username][username][username][username]]g[[username][username][username][username]] o[username] Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]])

### 2. M[[username][username][username][username]][[username][username][username][username]]l Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]
- **C[[username][username][username][username]]l[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username] Vi[[username][username][username][username]]w[username]**: W[[username][username][username][username]][[username][username][username][username]]k [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]]o[[username][username][username][username]]th vi[[username][username][username][username]]w[username]
- **D[username][[username][username][username][username]]g & D[username]op**: I[[username][username][username][username]]t[username]itiv[[username][username][username][username]] d[username][[username][username][username][username]]g-[[username][username][username][username]][[username][username][username][username]]d-d[username]op [username][[username][username][username][username]]cip[[username][username][username][username]] [[username][username][username][username]][username][username]ig[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t
- **S[[username][username][username][username]][username]vi[[username][username][username][username]]g[username] Adj[username][username]t[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t**: Glob[[username][username][username][username]]l [[username][username][username][username]][[username][username][username][username]]d p[[username][username][username][username]][username]-[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l [username][[username][username][username][username]][username]vi[[username][username][username][username]]g[username] co[[username][username][username][username]]t[username]ol
- **Pl[[username][username][username][username]][[username][username][username][username]] T[[username][username][username][username]][[username][username][username][username]]pl[[username][username][username][username]]t[[username][username][username][username]][username]**: S[[username][username][username][username]]v[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]]d [username][[username][username][username][username]][username][username][[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][username]
- **Sh[[username][username][username][username]][username]i[[username][username][username][username]]g**: G[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]] [username]h[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]bl[[username][username][username][username]] li[[username][username][username][username]]k[username] fo[username] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][username]

### 3. Shoppi[[username][username][username][username]]g Li[username]t
- **A[username]to-G[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]]**: G[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]] f[username]o[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]]
- **S[[username][username][username][username]][[username][username][username][username]][username]t Co[[username][username][username][username]][username]olid[[username][username][username][username]]tio[[username][username][username][username]]**: Co[[username][username][username][username]]bi[[username][username][username][username]][[username][username][username][username]] [username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[username]
- **C[[username][username][username][username]]t[[username][username][username][username]]go[username]y G[username]o[username]pi[[username][username][username][username]]g**: O[username]g[[username][username][username][username]][[username][username][username][username]]iz[[username][username][username][username]] by i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t c[[username][username][username][username]]t[[username][username][username][username]]go[username]y
- **I[[username][username][username][username]]t[[username][username][username][username]][username][[username][username][username][username]]ctiv[[username][username][username][username]]**: Ch[[username][username][username][username]]ck off it[[username][username][username][username]][[username][username][username][username]][username], [[username][username][username][username]]dd [[username][username][username][username]]ot[[username][username][username][username]][username]
- **Expo[username]t**: P[username]i[[username][username][username][username]]t, copy, Wh[[username][username][username][username]]t[username]App, CSV

### 4. R[[username][username][username][username]]cip[[username][username][username][username]] Co[[username][username][username][username]]t[username]ib[username]tio[[username][username][username][username]]
- **M[username]lti-St[[username][username][username][username]]p Wiz[[username][username][username][username]][username]d**: 7-[username]t[[username][username][username][username]]p g[username]id[[username][username][username][username]]d [username][[username][username][username][username]]cip[[username][username][username][username]] [username][username]b[[username][username][username][username]]i[username][username]io[[username][username][username][username]]
- **GitH[username]b I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]]**: A[username]to[[username][username][username][username]][[username][username][username][username]]tic PR c[username][[username][username][username][username]][[username][username][username][username]]tio[[username][username][username][username]] fo[username] [[username][username][username][username]][[username][username][username][username]]w [username][[username][username][username][username]]cip[[username][username][username][username]][username]
- **V[[username][username][username][username]]lid[[username][username][username][username]]tio[[username][username][username][username]]**: Cli[[username][username][username][username]][[username][username][username][username]]t-[username]id[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]]d [username][[username][username][username][username]][username]v[[username][username][username][username]][username]-[username]id[[username][username][username][username]] v[[username][username][username][username]]lid[[username][username][username][username]]tio[[username][username][username][username]]
- **P[username][[username][username][username][username]]vi[[username][username][username][username]]w**: P[username][[username][username][username][username]]vi[[username][username][username][username]]w [username][[username][username][username][username]]cip[[username][username][username][username]] b[[username][username][username][username]]fo[username][[username][username][username][username]] [username][username]b[[username][username][username][username]]i[username][username]io[[username][username][username][username]]

### 5. P[[username][username][username][username]][[username][username][username][username]]t[username]y M[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t
- **I[[username][username][username][username]]v[[username][username][username][username]][[username][username][username][username]]to[username]y**: T[username][[username][username][username][username]]ck i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[username] [[username][username][username][username]]t ho[[username][username][username][username]][[username][username][username][username]]
- **Expi[username][[username][username][username][username]]tio[[username][username][username][username]] T[username][[username][username][username][username]]cki[[username][username][username][username]]g**: S[[username][username][username][username]][[username][username][username][username]] wh[[username][username][username][username]]t'[username] [[username][username][username][username]]xpi[username]i[[username][username][username][username]]g [username]oo[[username][username][username][username]]
- **R[[username][username][username][username]]cip[[username][username][username][username]] S[username]gg[[username][username][username][username]][username]tio[[username][username][username][username]][username]**: S[username]gg[[username][username][username][username]][username]t [username][[username][username][username][username]]cip[[username][username][username][username]][username] b[[username][username][username][username]][username][[username][username][username][username]]d o[[username][username][username][username]] p[[username][username][username][username]][[username][username][username][username]]t[username]y it[[username][username][username][username]][[username][username][username][username]][username]

### 6. U[username][[username][username][username][username]][username] Sy[username]t[[username][username][username][username]][[username][username][username][username]]
- **A[username]th[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]tio[[username][username][username][username]]**: E[[username][username][username][username]][[username][username][username][username]]il/p[[username][username][username][username]][username][username]wo[username]d, Googl[[username][username][username][username]] OA[username]th
- **P[username][[username][username][username][username]]f[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]][username]**: L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]], th[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]], di[[username][username][username][username]]t[[username][username][username][username]][username]y [username][[username][username][username][username]][username]t[username]ictio[[username][username][username][username]][username]
- **Clo[username]d Sy[[username][username][username][username]]c**: Sy[[username][username][username][username]]c f[[username][username][username][username]]vo[username]it[[username][username][username][username]][username], pl[[username][username][username][username]][[username][username][username][username]][username] [[username][username][username][username]]c[username]o[username][username] d[[username][username][username][username]]vic[[username][username][username][username]][username] (Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]])
- **G[username][[username][username][username][username]][username]t Mod[[username][username][username][username]]**: U[username][[username][username][username][username]] [[username][username][username][username]]pp witho[username]t [[username][username][username][username]]cco[username][[username][username][username][username]]t (loc[[username][username][username][username]]lSto[username][[username][username][username][username]]g[[username][username][username][username]] o[[username][username][username][username]]ly)

### 7. PWA F[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]][username]
- **Offli[[username][username][username][username]][[username][username][username][username]] S[username]ppo[username]t**: S[[username][username][username][username]][username]vic[[username][username][username][username]] Wo[username]k[[username][username][username][username]][username] c[[username][username][username][username]]ch[[username][username][username][username]][username] [username][[username][username][username][username]]cip[[username][username][username][username]][username] [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]]pp [username]h[[username][username][username][username]]ll
- **I[[username][username][username][username]][username]t[[username][username][username][username]]ll[[username][username][username][username]]bl[[username][username][username][username]]**: Add to ho[[username][username][username][username]][[username][username][username][username]] [username]c[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] p[username]o[[username][username][username][username]]pt
- **F[[username][username][username][username]][username]t Lo[[username][username][username][username]]di[[username][username][username][username]]g**: Opti[[username][username][username][username]]iz[[username][username][username][username]]d b[username][[username][username][username][username]]dl[[username][username][username][username]], l[[username][username][username][username]]zy lo[[username][username][username][username]]di[[username][username][username][username]]g
- **R[[username][username][username][username]][username]po[[username][username][username][username]][username]iv[[username][username][username][username]]**: Mobil[[username][username][username][username]]-fi[username][username]t d[[username][username][username][username]][username]ig[[username][username][username][username]], wo[username]k[username] o[[username][username][username][username]] [[username][username][username][username]]ll d[[username][username][username][username]]vic[[username][username][username][username]][username]

---

## D[[username][username][username][username]]t[[username][username][username][username]] Mod[[username][username][username][username]]l

### R[[username][username][username][username]]cip[[username][username][username][username]]

```typ[[username][username][username][username]][username]c[username]ipt
i[[username][username][username][username]]t[[username][username][username][username]][username]f[[username][username][username][username]]c[[username][username][username][username]] R[[username][username][username][username]]cip[[username][username][username][username]] {
  id: [username]t[username]i[[username][username][username][username]]g;
  [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt;               // EN, ES, FR
  d[[username][username][username][username]][username]c[username]iptio[[username][username][username][username]]: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt;
  typ[[username][username][username][username]]: [username]t[username]i[[username][username][username][username]]g;                      // b[username][[username][username][username][username]][[username][username][username][username]]kf[[username][username][username][username]][username]t, l[username][[username][username][username][username]]ch, di[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username], [username][[username][username][username][username]][[username][username][username][username]]ck, d[[username][username][username][username]][username][username][[username][username][username][username]][username]t
  c[username]i[username]i[[username][username][username][username]][[username][username][username][username]]: [username]t[username]i[[username][username][username][username]]g[];                 // [[username][username][username][username]][[username][username][username][username]]dit[[username][username][username][username]][username][username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]], [[username][username][username][username]][[username][username][username][username]]xic[[username][username][username][username]][[username][username][username][username]], [[username][username][username][username]]tc.
  p[username][[username][username][username][username]]pTi[[username][username][username][username]][[username][username][username][username]]: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];                  // [[username][username][username][username]]i[[username][username][username][username]][username]t[[username][username][username][username]][username]
  cookTi[[username][username][username][username]][[username][username][username][username]]: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
  tot[[username][username][username][username]]lTi[[username][username][username][username]][[username][username][username][username]]: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
  [username][[username][username][username][username]][username]vi[[username][username][username][username]]g[username]: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
  diffic[username]lty: '[[username][username][username][username]][[username][username][username][username]][username]y' | '[[username][username][username][username]][[username][username][username][username]]di[username][[username][username][username][username]]' | 'h[[username][username][username][username]][username]d';
  t[[username][username][username][username]]g[username]: [username]t[username]i[[username][username][username][username]]g[];                    // gl[username]t[[username][username][username][username]][[username][username][username][username]]-f[username][[username][username][username][username]][[username][username][username][username]], v[[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]], [[username][username][username][username]]tc.
  di[[username][username][username][username]]t[[username][username][username][username]][username]yL[[username][username][username][username]]b[[username][username][username][username]]l[username]: Di[[username][username][username][username]]t[[username][username][username][username]][username]yL[[username][username][username][username]]b[[username][username][username][username]]l[username];
  [[username][username][username][username]][username]t[username]itio[[username][username][username][username]]: N[username]t[username]itio[[username][username][username][username]]I[[username][username][username][username]]fo;
  i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[username]: R[[username][username][username][username]]cip[[username][username][username][username]]I[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[];
  i[[username][username][username][username]][username]t[username][username]ctio[[username][username][username][username]][username]: R[[username][username][username][username]]cip[[username][username][username][username]]I[[username][username][username][username]][username]t[username][username]ctio[[username][username][username][username]][];
  tip[username]?: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt;
  [[username][username][username][username]]q[username]ip[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t: [username]t[username]i[[username][username][username][username]]g[];
  i[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]]U[username]l?: [username]t[username]i[[username][username][username][username]]g;
  [[username][username][username][username]][username]tho[username]?: [username]t[username]i[[username][username][username][username]]g;
  d[[username][username][username][username]]t[[username][username][username][username]]Add[[username][username][username][username]]d: [username]t[username]i[[username][username][username][username]]g;
  [username][[username][username][username][username]]ti[[username][username][username][username]]g: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
  [username][[username][username][username][username]]vi[[username][username][username][username]]wCo[username][[username][username][username][username]]t: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
}
```

### I[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t

```typ[[username][username][username][username]][username]c[username]ipt
i[[username][username][username][username]]t[[username][username][username][username]][username]f[[username][username][username][username]]c[[username][username][username][username]] I[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t {
  id: [username]t[username]i[[username][username][username][username]]g;
  [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt;
  c[[username][username][username][username]]t[[username][username][username][username]]go[username]y: [username]t[username]i[[username][username][username][username]]g;                  // p[username]ot[[username][username][username][username]]i[[username][username][username][username]], v[[username][username][username][username]]g[[username][username][username][username]]t[[username][username][username][username]]bl[[username][username][username][username]][username], [[username][username][username][username]]tc.
  [username][[username][username][username][username]]it: [username]t[username]i[[username][username][username][username]]g;                      // pi[[username][username][username][username]]c[[username][username][username][username]], c[username]p, lb, [[username][username][username][username]]tc.
  [[username][username][username][username]]vgP[username]ic[[username][username][username][username]]: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
  c[username][username][username][[username][username][username][username]][[username][username][username][username]]cy: [username]t[username]i[[username][username][username][username]]g;
  [username][[username][username][username][username]]gio[[username][username][username][username]]: [username]t[username]i[[username][username][username][username]]g;
  t[[username][username][username][username]]g[username]: {
    gl[username]t[[username][username][username][username]][[username][username][username][username]]F[username][[username][username][username][username]][[username][username][username][username]]: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
    v[[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]]: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
    v[[username][username][username][username]]g[[username][username][username][username]]t[[username][username][username][username]][username]i[[username][username][username][username]][[username][username][username][username]]: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
    d[[username][username][username][username]]i[username]yF[username][[username][username][username][username]][[username][username][username][username]]: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
    [[username][username][username][username]][username]tF[username][[username][username][username][username]][[username][username][username][username]]: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
    ko[username]h[[username][username][username][username]][username]: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
    h[[username][username][username][username]]l[[username][username][username][username]]l: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
  };
  [[username][username][username][username]]lt[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]tiv[[username][username][username][username]][username]: [username]t[username]i[[username][username][username][username]]g[];
  [username][[username][username][username][username]][[username][username][username][username]][username]o[[username][username][username][username]][[username][username][username][username]]lity: [username]t[username]i[[username][username][username][username]]g[];
  [username]to[username][[username][username][username][username]]g[[username][username][username][username]]I[[username][username][username][username]][username]t[username][username]ctio[[username][username][username][username]][username]: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt;
}
```

### M[[username][username][username][username]][[username][username][username][username]]l Pl[[username][username][username][username]][[username][username][username][username]]

```typ[[username][username][username][username]][username]c[username]ipt
i[[username][username][username][username]]t[[username][username][username][username]][username]f[[username][username][username][username]]c[[username][username][username][username]] M[[username][username][username][username]][[username][username][username][username]]lPl[[username][username][username][username]][[username][username][username][username]] {
  id: [username]t[username]i[[username][username][username][username]]g;
  [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt;
  d[[username][username][username][username]][username]c[username]iptio[[username][username][username][username]]: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt;
  [username][[username][username][username][username]][username]vi[[username][username][username][username]]g[username]: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
  di[[username][username][username][username]]t[[username][username][username][username]][username]yR[[username][username][username][username]][username]t[username]ictio[[username][username][username][username]][username]: [username]t[username]i[[username][username][username][username]]g[];
  diffic[username]lty: [username]t[username]i[[username][username][username][username]]g;
  [[username][username][username][username]][username]ti[[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]dCo[username]t: [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username];
  c[username][username][username][[username][username][username][username]][[username][username][username][username]]cy: [username]t[username]i[[username][username][username][username]]g;
  d[[username][username][username][username]]y[username]: Pl[[username][username][username][username]][[username][username][username][username]]D[[username][username][username][username]]y[];                   // 7 d[[username][username][username][username]]y[username] typic[[username][username][username][username]]lly
  t[[username][username][username][username]]g[username]: [username]t[username]i[[username][username][username][username]]g[];
  i[username]P[username]blic: bool[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]];
  [username]h[[username][username][username][username]][username][[username][username][username][username]]Tok[[username][username][username][username]][[username][username][username][username]]?: [username]t[username]i[[username][username][username][username]]g;
}
```

---

## St[[username][username][username][username]]t[[username][username][username][username]] M[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t

### Co[[username][username][username][username]]t[[username][username][username][username]]xt A[username]chit[[username][username][username][username]]ct[username][username][[username][username][username][username]]

W[[username][username][username][username]] [username][username][[username][username][username][username]] **R[[username][username][username][username]][[username][username][username][username]]ct Co[[username][username][username][username]]t[[username][username][username][username]]xt API** with [username][[username][username][username][username]]p[[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]] co[[username][username][username][username]]t[[username][username][username][username]]xt[username] fo[username] diff[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]t co[[username][username][username][username]]c[[username][username][username][username]][username][[username][username][username][username]][username]:

1. **AppCo[[username][username][username][username]]t[[username][username][username][username]]xt**: App-wid[[username][username][username][username]] co[[username][username][username][username]]fig, o[[username][username][username][username]]li[[username][username][username][username]][[username][username][username][username]] [username]t[[username][username][username][username]]t[username][username], PWA i[[username][username][username][username]][username]t[[username][username][username][username]]ll p[username]o[[username][username][username][username]]pt
2. **Th[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]Co[[username][username][username][username]]t[[username][username][username][username]]xt**: D[[username][username][username][username]][username]k/light th[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] toggl[[username][username][username][username]]
3. **L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]]Co[[username][username][username][username]]t[[username][username][username][username]]xt**: C[username][username][username][[username][username][username][username]][[username][username][username][username]]t l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]], t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]] h[[username][username][username][username]]lp[[username][username][username][username]][username][username]
4. **A[username]thCo[[username][username][username][username]]t[[username][username][username][username]]xt**: U[username][[username][username][username][username]][username] [[username][username][username][username]][username]th [username]t[[username][username][username][username]]t[[username][username][username][username]], [username]ig[[username][username][username][username]] i[[username][username][username][username]]/o[username]t [[username][username][username][username]][[username][username][username][username]]thod[username]
5. **R[[username][username][username][username]]cip[[username][username][username][username]]Co[[username][username][username][username]]t[[username][username][username][username]]xt**: R[[username][username][username][username]]cip[[username][username][username][username]] d[[username][username][username][username]]t[[username][username][username][username]], filt[[username][username][username][username]][username][username], f[[username][username][username][username]]vo[username]it[[username][username][username][username]][username]
6. **Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]Co[[username][username][username][username]]t[[username][username][username][username]]xt**: C[username][username][username][[username][username][username][username]][[username][username][username][username]]t [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]], CRUD op[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]][username]
7. **Shoppi[[username][username][username][username]]gCo[[username][username][username][username]]t[[username][username][username][username]]xt**: Shoppi[[username][username][username][username]]g li[username]t it[[username][username][username][username]][[username][username][username][username]][username], CRUD op[[username][username][username][username]][username][[username][username][username][username]]tio[[username][username][username][username]][username]

### Why Not R[[username][username][username][username]]d[username]x?

- **Si[[username][username][username][username]]pl[[username][username][username][username]][username]**: F[[username][username][username][username]]w[[username][username][username][username]][username] co[[username][username][username][username]]c[[username][username][username][username]]pt[username], [[username][username][username][username]][[username][username][username][username]][username]i[[username][username][username][username]][username] fo[username] co[[username][username][username][username]]t[username]ib[username]to[username][username]
- **B[username]ilt-i[[username][username][username][username]]**: No [[username][username][username][username]]xt[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]l d[[username][username][username][username]]p[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][[username][username][username][username]]ci[[username][username][username][username]][username]
- **S[username]ffici[[username][username][username][username]][[username][username][username][username]]t**: App co[[username][username][username][username]]pl[[username][username][username][username]]xity do[[username][username][username][username]][username][[username][username][username][username]]'t [username][[username][username][username][username]]q[username]i[username][[username][username][username][username]] R[[username][username][username][username]]d[username]x
- **P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]**: P[username]op[[username][username][username][username]][username] co[[username][username][username][username]]t[[username][username][username][username]]xt [username]plitti[[username][username][username][username]]g p[username][[username][username][username][username]]v[[username][username][username][username]][[username][username][username][username]]t[username] [username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]][username][username][[username][username][username][username]][username]y [username][[username][username][username][username]]-[username][[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username][username]

### St[[username][username][username][username]]t[[username][username][username][username]] P[[username][username][username][username]][username][username]i[username]t[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]

- **Loc[[username][username][username][username]]lSto[username][[username][username][username][username]]g[[username][username][username][username]]**: M[[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]][username], f[[username][username][username][username]]vo[username]it[[username][username][username][username]][username], [username]hoppi[[username][username][username][username]]g li[username]t[username] (offli[[username][username][username][username]][[username][username][username][username]]-fi[username][username]t)
- **Fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]]**: Optio[[username][username][username][username]][[username][username][username][username]]l clo[username]d [username]y[[username][username][username][username]]c fo[username] [[username][username][username][username]][username]th[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]t[[username][username][username][username]]d [username][username][[username][username][username][username]][username][username]
- **S[[username][username][username][username]][username]vic[[username][username][username][username]] Wo[username]k[[username][username][username][username]][username]**: C[[username][username][username][username]]ch[[username][username][username][username]] [username]t[[username][username][username][username]]tic [[username][username][username][username]][username][username][[username][username][username][username]]t[username] [[username][username][username][username]][[username][username][username][username]]d API [username][[username][username][username][username]][username]po[[username][username][username][username]][username][[username][username][username][username]][username]

---

## I[[username][username][username][username]]t[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]tio[[username][username][username][username]][[username][username][username][username]]liz[[username][username][username][username]]tio[[username][username][username][username]]

### I[[username][username][username][username]]pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]tio[[username][username][username][username]]

- **Lib[username][[username][username][username][username]][username]y**: i18[[username][username][username][username]][[username][username][username][username]]xt + [username][[username][username][username][username]][[username][username][username][username]]ct-i18[[username][username][username][username]][[username][username][username][username]]xt
- **L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]][username]**: E[[username][username][username][username]]gli[username]h ([[username][username][username][username]][[username][username][username][username]]), Sp[[username][username][username][username]][[username][username][username][username]]i[username]h ([[username][username][username][username]][username]), F[username][[username][username][username][username]][[username][username][username][username]]ch (f[username])
- **D[[username][username][username][username]]t[[username][username][username][username]]ctio[[username][username][username][username]]**: A[username]to[[username][username][username][username]][[username][username][username][username]]tic b[username]ow[username][[username][username][username][username]][username] l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]] d[[username][username][username][username]]t[[username][username][username][username]]ctio[[username][username][username][username]]
- **F[[username][username][username][username]]llb[[username][username][username][username]]ck**: E[[username][username][username][username]]gli[username]h [[username][username][username][username]][username] f[[username][username][username][username]]llb[[username][username][username][username]]ck l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]]
- **A[username]y[[username][username][username][username]]c Lo[[username][username][username][username]]di[[username][username][username][username]]g**: T[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]] fil[[username][username][username][username]][username] lo[[username][username][username][username]]d[[username][username][username][username]]d o[[username][username][username][username]]-d[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]d

### T[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]] Fil[[username][username][username][username]][username]

Loc[[username][username][username][username]]t[[username][username][username][username]]d i[[username][username][username][username]] `p[username]blic/loc[[username][username][username][username]]l[[username][username][username][username]][username]/{l[[username][username][username][username]][[username][username][username][username]]g}/t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]].j[username]o[[username][username][username][username]]`:

```j[username]o[[username][username][username][username]]
{
  "[[username][username][username][username]]pp": {
    "[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]": "Foodi[[username][username][username][username]]",
    "t[[username][username][username][username]]gli[[username][username][username][username]][[username][username][username][username]]": "Yo[username][username] P[[username][username][username][username]][username][username]o[[username][username][username][username]][[username][username][username][username]]l M[[username][username][username][username]][[username][username][username][username]]l Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g A[username][username]i[username]t[[username][username][username][username]][[username][username][username][username]]t"
  },
  "[[username][username][username][username]][[username][username][username][username]]v": {
    "ho[[username][username][username][username]][[username][username][username][username]]": "Ho[[username][username][username][username]][[username][username][username][username]]",
    "[username][[username][username][username][username]]cip[[username][username][username][username]][username]": "R[[username][username][username][username]]cip[[username][username][username][username]][username]",
    ...
  }
}
```

### U[username][[username][username][username][username]]g[[username][username][username][username]] i[[username][username][username][username]] Co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]

```typ[[username][username][username][username]][username]c[username]ipt
i[[username][username][username][username]]po[username]t { [username][username][[username][username][username][username]]T[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]] } f[username]o[[username][username][username][username]] '[username][[username][username][username][username]][[username][username][username][username]]ct-i18[[username][username][username][username]][[username][username][username][username]]xt';

f[username][[username][username][username][username]]ctio[[username][username][username][username]] MyCo[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t() {
  co[[username][username][username][username]][username]t { t } = [username][username][[username][username][username][username]]T[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]]();
  [username][[username][username][username][username]]t[username][username][[username][username][username][username]] <h1>{t('[[username][username][username][username]]pp.[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]')}</h1>;
}
```

### M[username]ltili[[username][username][username][username]]g[username][[username][username][username][username]]l D[[username][username][username][username]]t[[username][username][username][username]]

R[[username][username][username][username]]cip[[username][username][username][username]][username], i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[username], [[username][username][username][username]][[username][username][username][username]]d c[[username][username][username][username]]t[[username][username][username][username]]go[username]i[[username][username][username][username]][username] [username][username][[username][username][username][username]] `M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt`:

```typ[[username][username][username][username]][username]c[username]ipt
i[[username][username][username][username]]t[[username][username][username][username]][username]f[[username][username][username][username]]c[[username][username][username][username]] M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt {
  [[username][username][username][username]][[username][username][username][username]]: [username]t[username]i[[username][username][username][username]]g;
  [[username][username][username][username]][username]: [username]t[username]i[[username][username][username][username]]g;
  f[username]: [username]t[username]i[[username][username][username][username]]g;
}

// U[username][[username][username][username][username]]g[[username][username][username][username]]
co[[username][username][username][username]][username]t [username][[username][username][username][username]]cip[[username][username][username][username]]N[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]: M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt = {
  [[username][username][username][username]][[username][username][username][username]]: "Sc[username][[username][username][username][username]][[username][username][username][username]]bl[[username][username][username][username]]d Egg[username]",
  [[username][username][username][username]][username]: "H[username][[username][username][username][username]]vo[username] R[[username][username][username][username]]v[username][[username][username][username][username]]lto[username]",
  f[username]: "Œ[username]f[username] B[username]o[username]illé[username]"
};
```

U[username][[username][username][username][username]] `L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]]Co[[username][username][username][username]]t[[username][username][username][username]]xt.g[[username][username][username][username]]tT[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]t[[username][username][username][username]]d(t[[username][username][username][username]]xt)` to g[[username][username][username][username]]t c[username][username][username][[username][username][username][username]][[username][username][username][username]]t l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]] v[[username][username][username][username]][username][username]io[[username][username][username][username]].

---

## PWA I[[username][username][username][username]]pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]tio[[username][username][username][username]]

### S[[username][username][username][username]][username]vic[[username][username][username][username]] Wo[username]k[[username][username][username][username]][username]

Co[[username][username][username][username]]fig[username][username][[username][username][username][username]]d vi[[username][username][username][username]] `vit[[username][username][username][username]]-pl[username]gi[[username][username][username][username]]-pw[[username][username][username][username]]`:

```typ[[username][username][username][username]][username]c[username]ipt
// vit[[username][username][username][username]].co[[username][username][username][username]]fig.t[username]
Vit[[username][username][username][username]]PWA({
  [username][[username][username][username][username]]gi[username]t[[username][username][username][username]][username]Typ[[username][username][username][username]]: '[[username][username][username][username]][username]toUpd[[username][username][username][username]]t[[username][username][username][username]]',
  wo[username]kbox: {
    globP[[username][username][username][username]]tt[[username][username][username][username]][username][[username][username][username][username]][username]: ['**/*.{j[username],c[username][username],ht[[username][username][username][username]]l,ico,p[[username][username][username][username]]g,[username]vg,j[username]o[[username][username][username][username]]}'],
    [username][username][[username][username][username][username]]ti[[username][username][username][username]][[username][username][username][username]]C[[username][username][username][username]]chi[[username][username][username][username]]g: [
      {
        [username][username]lP[[username][username][username][username]]tt[[username][username][username][username]][username][[username][username][username][username]]: /^http[username]:\/\/fo[[username][username][username][username]]t[username]\.googl[[username][username][username][username]][[username][username][username][username]]pi[username]\.co[[username][username][username][username]]\/.*/i,
        h[[username][username][username][username]][[username][username][username][username]]dl[[username][username][username][username]][username]: 'C[[username][username][username][username]]ch[[username][username][username][username]]Fi[username][username]t',
      },
      {
        [username][username]lP[[username][username][username][username]]tt[[username][username][username][username]][username][[username][username][username][username]]: /^http[username]:\/\/fi[username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]][username]to[username][[username][username][username][username]]g[[username][username][username][username]]\.googl[[username][username][username][username]][[username][username][username][username]]pi[username]\.co[[username][username][username][username]]\/.*/i,
        h[[username][username][username][username]][[username][username][username][username]]dl[[username][username][username][username]][username]: 'C[[username][username][username][username]]ch[[username][username][username][username]]Fi[username][username]t',
      }
    ]
  }
})
```

### M[[username][username][username][username]][[username][username][username][username]]if[[username][username][username][username]][username]t

`p[username]blic/[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]if[[username][username][username][username]][username]t.w[[username][username][username][username]]b[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]if[[username][username][username][username]][username]t`:

```j[username]o[[username][username][username][username]]
{
  "[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]": "Foodi[[username][username][username][username]] - M[[username][username][username][username]][[username][username][username][username]]l Pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]",
  "[username]ho[username]t_[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]": "Foodi[[username][username][username][username]]",
  "th[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]_colo[username]": "#10b981",
  "di[username]pl[[username][username][username][username]]y": "[username]t[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]]lo[[username][username][username][username]][[username][username][username][username]]",
  "[username]t[[username][username][username][username]][username]t_[username][username]l": "/",
  "ico[[username][username][username][username]][username]": [...]
}
```

### Offli[[username][username][username][username]][[username][username][username][username]] St[username][[username][username][username][username]]t[[username][username][username][username]]gy

- **App Sh[[username][username][username][username]]ll**: C[[username][username][username][username]]ch[[username][username][username][username]]d o[[username][username][username][username]] fi[username][username]t vi[username]it
- **R[[username][username][username][username]]cip[[username][username][username][username]][username]**: C[[username][username][username][username]]ch[[username][username][username][username]]d [[username][username][username][username]]ft[[username][username][username][username]][username] vi[[username][username][username][username]]wi[[username][username][username][username]]g
- **I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username]**: C[[username][username][username][username]]ch[[username][username][username][username]]d with C[[username][username][username][username]]ch[[username][username][username][username]]Fi[username][username]t [username]t[username][[username][username][username][username]]t[[username][username][username][username]]gy
- **API C[[username][username][username][username]]ll[username]**: N[[username][username][username][username]]two[username]k-fi[username][username]t, c[[username][username][username][username]]ch[[username][username][username][username]] f[[username][username][username][username]]llb[[username][username][username][username]]ck

---

## GitH[username]b I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]]

### R[[username][username][username][username]]cip[[username][username][username][username]] Co[[username][username][username][username]]t[username]ib[username]tio[[username][username][username][username]] Wo[username]kflow

1. **U[username][[username][username][username][username]][username]**: Fill[username] o[username]t 7-[username]t[[username][username][username][username]]p [username][[username][username][username][username]]cip[[username][username][username][username]] wiz[[username][username][username][username]][username]d
2. **App**: G[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]][username] JSON [[username][username][username][username]][[username][username][username][username]]tchi[[username][username][username][username]]g [username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]
3. **App**: U[username][[username][username][username][username]][username] Octokit to:
   - Fo[username]k [username][[username][username][username][username]]po[username]ito[username]y
   - C[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]] f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]] b[username][[username][username][username][username]][[username][username][username][username]]ch
   - Co[[username][username][username][username]][[username][username][username][username]]it JSON fil[[username][username][username][username]][username]
   - C[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]] P[username]ll R[[username][username][username][username]]q[username][[username][username][username][username]][username]t
4. **GitH[username]b Actio[[username][username][username][username]][username]**: V[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]][username] JSON [username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]], ch[[username][username][username][username]]ck[username] d[username]plic[[username][username][username][username]]t[[username][username][username][username]][username]
5. **M[[username][username][username][username]]i[[username][username][username][username]]t[[username][username][username][username]]i[[username][username][username][username]][[username][username][username][username]][username]**: R[[username][username][username][username]]vi[[username][username][username][username]]w[username] [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]][[username][username][username][username]][username]g[[username][username][username][username]][username] PR
6. **A[username]to-D[[username][username][username][username]]ploy**: M[[username][username][username][username]][username]g[[username][username][username][username]]d ch[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username] t[username]igg[[username][username][username][username]][username] d[[username][username][username][username]]ploy[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t

### OA[username]th S[[username][username][username][username]]t[username]p

```typ[[username][username][username][username]][username]c[username]ipt
// I[[username][username][username][username]] co[[username][username][username][username]]t[username]ib[username]tio[[username][username][username][username]] wiz[[username][username][username][username]][username]d
i[[username][username][username][username]]po[username]t { Octokit } f[username]o[[username][username][username][username]] '@octokit/[username][[username][username][username][username]][username]t';

co[[username][username][username][username]][username]t octokit = [[username][username][username][username]][[username][username][username][username]]w Octokit({
  [[username][username][username][username]][username]th: [username][username][[username][username][username][username]][username]GitH[username]bTok[[username][username][username][username]][[username][username][username][username]]
});

// Fo[username]k [username][[username][username][username][username]]po
co[[username][username][username][username]][username]t fo[username]k = [[username][username][username][username]]w[[username][username][username][username]]it octokit.[username][[username][username][username][username]]po[username].c[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]Fo[username]k({
  ow[[username][username][username][username]][[username][username][username][username]][username]: 'yo[username][username]-o[username]g',
  [username][[username][username][username][username]]po: 'foodi[[username][username][username][username]]'
});

// C[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]] b[username][[username][username][username][username]][[username][username][username][username]]ch, co[[username][username][username][username]][[username][username][username][username]]it, PR...
```

### PR T[[username][username][username][username]][[username][username][username][username]]pl[[username][username][username][username]]t[[username][username][username][username]]

```[[username][username][username][username]][[username][username][username][username]][username]kdow[[username][username][username][username]]
## N[[username][username][username][username]]w R[[username][username][username][username]]cip[[username][username][username][username]] S[username]b[[username][username][username][username]]i[username][username]io[[username][username][username][username]]

**R[[username][username][username][username]]cip[[username][username][username][username]]**: [[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]]
**S[username]b[[username][username][username][username]]itt[[username][username][username][username]]d by**: @{{[username][username][[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]}}

### Ch[[username][username][username][username]]ckli[username]t
- [ ] JSON [username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] v[[username][username][username][username]]lid
- [ ] All [username][[username][username][username][username]]q[username]i[username][[username][username][username][username]]d fi[[username][username][username][username]]ld[username] p[username][[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]t
- [ ] N[username]t[username]itio[[username][username][username][username]] i[[username][username][username][username]]fo [username][[username][username][username][username]][[username][username][username][username]][username]o[[username][username][username][username]][[username][username][username][username]]bl[[username][username][username][username]]
- [ ] I[[username][username][username][username]][username]t[username][username]ctio[[username][username][username][username]][username] cl[[username][username][username][username]][[username][username][username][username]][username]
- [ ] I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]] [[username][username][username][username]]pp[username]op[username]i[[username][username][username][username]]t[[username][username][username][username]]
- [ ] No d[username]plic[[username][username][username][username]]t[[username][username][username][username]] [username][[username][username][username][username]]cip[[username][username][username][username]]
```

---

## D[[username][username][username][username]]v[[username][username][username][username]]lop[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t Wo[username]kflow

### G[[username][username][username][username]]tti[[username][username][username][username]]g St[[username][username][username][username]][username]t[[username][username][username][username]]d

```b[[username][username][username][username]][username]h
# Clo[[username][username][username][username]][[username][username][username][username]] [username][[username][username][username][username]]po[username]ito[username]y
git clo[[username][username][username][username]][[username][username][username][username]] http[username]://gith[username]b.co[[username][username][username][username]]/[[username][username][username][username]][username]t[[username][username][username][username]][[username][username][username][username]]iop[[username][username][username][username]]dill[[username][username][username][username]]/foodi[[username][username][username][username]].git
cd foodi[[username][username][username][username]]

# I[[username][username][username][username]][username]t[[username][username][username][username]]ll d[[username][username][username][username]]p[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][[username][username][username][username]]ci[[username][username][username][username]][username]
[[username][username][username][username]]p[[username][username][username][username]] i[[username][username][username][username]][username]t[[username][username][username][username]]ll

# Copy [[username][username][username][username]][[username][username][username][username]]vi[username]o[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t v[[username][username][username][username]][username]i[[username][username][username][username]]bl[[username][username][username][username]][username]
cp .[[username][username][username][username]][[username][username][username][username]]v.[[username][username][username][username]]x[[username][username][username][username]][[username][username][username][username]]pl[[username][username][username][username]] .[[username][username][username][username]][[username][username][username][username]]v

# St[[username][username][username][username]][username]t d[[username][username][username][username]]v[[username][username][username][username]]lop[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t [username][[username][username][username][username]][username]v[[username][username][username][username]][username]
[[username][username][username][username]]p[[username][username][username][username]] [username][username][[username][username][username][username]] d[[username][username][username][username]]v
```

### Av[[username][username][username][username]]il[[username][username][username][username]]bl[[username][username][username][username]] Sc[username]ipt[username]

```j[username]o[[username][username][username][username]]
{
  "d[[username][username][username][username]]v": "vit[[username][username][username][username]]",                      // St[[username][username][username][username]][username]t d[[username][username][username][username]]v [username][[username][username][username][username]][username]v[[username][username][username][username]][username]
  "b[username]ild": "t[username]c && vit[[username][username][username][username]] b[username]ild",       // P[username]od[username]ctio[[username][username][username][username]] b[username]ild
  "p[username][[username][username][username][username]]vi[[username][username][username][username]]w": "vit[[username][username][username][username]] p[username][[username][username][username][username]]vi[[username][username][username][username]]w",          // P[username][[username][username][username][username]]vi[[username][username][username][username]]w p[username]od[username]ctio[[username][username][username][username]] b[username]ild
  "li[[username][username][username][username]]t": "[[username][username][username][username]][username]li[[username][username][username][username]]t .",                 // R[username][[username][username][username][username]] ESLi[[username][username][username][username]]t
  "t[[username][username][username][username]][username]t": "vit[[username][username][username][username]][username]t",                   // R[username][[username][username][username][username]] [username][[username][username][username][username]]it t[[username][username][username][username]][username]t[username]
  "t[[username][username][username][username]][username]t:[[username][username][username][username]]2[[username][username][username][username]]": "pl[[username][username][username][username]]yw[username]ight t[[username][username][username][username]][username]t",      // R[username][[username][username][username][username]] E2E t[[username][username][username][username]][username]t[username]
  "v[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]]:j[username]o[[username][username][username][username]]": "[[username][username][username][username]]od[[username][username][username][username]] [username]c[username]ipt[username]/v[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]]JSON.j[username]" // V[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]] JSON fil[[username][username][username][username]][username]
}
```

### Cod[[username][username][username][username]] Styl[[username][username][username][username]]

- **Li[[username][username][username][username]]ti[[username][username][username][username]]g**: ESLi[[username][username][username][username]]t with Typ[[username][username][username][username]]Sc[username]ipt [username][username]l[[username][username][username][username]][username]
- **Fo[username][[username][username][username][username]][[username][username][username][username]]tti[[username][username][username][username]]g**: P[username][[username][username][username][username]]tti[[username][username][username][username]][username] (2 [username]p[[username][username][username][username]]c[[username][username][username][username]][username], [username]i[[username][username][username][username]]gl[[username][username][username][username]] q[username]ot[[username][username][username][username]][username])
- **N[[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g**:
  - Co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]: P[[username][username][username][username]][username]c[[username][username][username][username]]lC[[username][username][username][username]][username][[username][username][username][username]] ([[username][username][username][username]].g., `R[[username][username][username][username]]cip[[username][username][username][username]]C[[username][username][username][username]][username]d.t[username]x`)
  - F[username][[username][username][username][username]]ctio[[username][username][username][username]][username]: c[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]lC[[username][username][username][username]][username][[username][username][username][username]] ([[username][username][username][username]].g., `c[[username][username][username][username]]lc[username]l[[username][username][username][username]]t[[username][username][username][username]]Tot[[username][username][username][username]]lCo[username]t`)
  - Co[[username][username][username][username]][username]t[[username][username][username][username]][[username][username][username][username]]t[username]: UPPER_SNAKE_CASE ([[username][username][username][username]].g., `MAX_SERVINGS`)
- **Fil[[username][username][username][username]][username]**:
  - Co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]: `.t[username]x`
  - Utiliti[[username][username][username][username]][username]: `.t[username]`
  - Styl[[username][username][username][username]][username]: `.c[username][username]`

---

## D[[username][username][username][username]]ploy[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t

### GitH[username]b P[[username][username][username][username]]g[[username][username][username][username]][username]

D[[username][username][username][username]]ploy[[username][username][username][username]]d [[username][username][username][username]][username]to[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]lly vi[[username][username][username][username]] GitH[username]b Actio[[username][username][username][username]][username]:

```y[[username][username][username][username]][[username][username][username][username]]l
# .gith[username]b/wo[username]kflow[username]/d[[username][username][username][username]]ploy.y[[username][username][username][username]]l
[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]: D[[username][username][username][username]]ploy to GitH[username]b P[[username][username][username][username]]g[[username][username][username][username]][username]

o[[username][username][username][username]]:
  p[username][username]h:
    b[username][[username][username][username][username]][[username][username][username][username]]ch[[username][username][username][username]][username]: [[[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]]

job[username]:
  b[username]ild-[[username][username][username][username]][[username][username][username][username]]d-d[[username][username][username][username]]ploy:
    [username][username][[username][username][username][username]][username]-o[[username][username][username][username]]: [username]b[username][[username][username][username][username]]t[username]-l[[username][username][username][username]]t[[username][username][username][username]][username]t
    [username]t[[username][username][username][username]]p[username]:
      - [username][username][[username][username][username][username]][username]: [[username][username][username][username]]ctio[[username][username][username][username]][username]/ch[[username][username][username][username]]cko[username]t@v4
      - [username][username][[username][username][username][username]][username]: [[username][username][username][username]]ctio[[username][username][username][username]][username]/[username][[username][username][username][username]]t[username]p-[[username][username][username][username]]od[[username][username][username][username]]@v4
      - [username][username][[username][username][username][username]]: [[username][username][username][username]]p[[username][username][username][username]] ci
      - [username][username][[username][username][username][username]]: [[username][username][username][username]]p[[username][username][username][username]] [username][username][[username][username][username][username]] b[username]ild
      - [username][username][[username][username][username][username]][username]: [[username][username][username][username]]ctio[[username][username][username][username]][username]/d[[username][username][username][username]]ploy-p[[username][username][username][username]]g[[username][username][username][username]][username]@v4
```

### B[[username][username][username][username]][username][[username][username][username][username]] P[[username][username][username][username]]th

Co[[username][username][username][username]]fig[username][username][[username][username][username][username]]d i[[username][username][username][username]] `vit[[username][username][username][username]].co[[username][username][username][username]]fig.t[username]`:

```typ[[username][username][username][username]][username]c[username]ipt
[[username][username][username][username]]xpo[username]t d[[username][username][username][username]]f[[username][username][username][username]][username]lt d[[username][username][username][username]]fi[[username][username][username][username]][[username][username][username][username]]Co[[username][username][username][username]]fig({
  b[[username][username][username][username]][username][[username][username][username][username]]: '/foodi[[username][username][username][username]]/',  // R[[username][username][username][username]]pl[[username][username][username][username]]c[[username][username][username][username]] with yo[username][username] [username][[username][username][username][username]]po [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]
  ...
});
```

### C[username][username]to[[username][username][username][username]] Do[[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]] (Optio[[username][username][username][username]][[username][username][username][username]]l)

1. Add `CNAME` fil[[username][username][username][username]] to `p[username]blic/` di[username][[username][username][username][username]]cto[username]y
2. Co[[username][username][username][username]]fig[username][username][[username][username][username][username]] DNS [username][[username][username][username][username]]tti[[username][username][username][username]]g[username] [[username][username][username][username]]t yo[username][username] do[[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]] p[username]ovid[[username][username][username][username]][username]
3. E[[username][username][username][username]][[username][username][username][username]]bl[[username][username][username][username]] HTTPS i[[username][username][username][username]] GitH[username]b P[[username][username][username][username]]g[[username][username][username][username]][username] [username][[username][username][username][username]]tti[[username][username][username][username]]g[username]

---

## T[[username][username][username][username]][username]ti[[username][username][username][username]]g St[username][[username][username][username][username]]t[[username][username][username][username]]gy

### U[[username][username][username][username]]it T[[username][username][username][username]][username]t[username] (Vit[[username][username][username][username]][username]t)

T[[username][username][username][username]][username]t [username]tiliti[[username][username][username][username]][username], hook[username], [[username][username][username][username]][[username][username][username][username]]d p[username][username][[username][username][username][username]] f[username][[username][username][username][username]]ctio[[username][username][username][username]][username]:

```typ[[username][username][username][username]][username]c[username]ipt
// [username]til[username]/[username][[username][username][username][username]]itCo[[username][username][username][username]]v[[username][username][username][username]][username][username]io[[username][username][username][username]][username].t[[username][username][username][username]][username]t.t[username]
i[[username][username][username][username]]po[username]t { co[[username][username][username][username]]v[[username][username][username][username]][username]tU[[username][username][username][username]]it } f[username]o[[username][username][username][username]] './[username][[username][username][username][username]]itCo[[username][username][username][username]]v[[username][username][username][username]][username][username]io[[username][username][username][username]][username]';

d[[username][username][username][username]][username]c[username]ib[[username][username][username][username]]('co[[username][username][username][username]]v[[username][username][username][username]][username]tU[[username][username][username][username]]it', () => {
  it('co[[username][username][username][username]]v[[username][username][username][username]][username]t[username] c[username]p[username] to [[username][username][username][username]]l', () => {
    [[username][username][username][username]]xp[[username][username][username][username]]ct(co[[username][username][username][username]]v[[username][username][username][username]][username]tU[[username][username][username][username]]it(1, 'c[username]p', '[[username][username][username][username]]l')).toB[[username][username][username][username]](240);
  });
});
```

### I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]] T[[username][username][username][username]][username]t[username]

T[[username][username][username][username]][username]t co[[username][username][username][username]]po[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t i[[username][username][username][username]]t[[username][username][username][username]][username][[username][username][username][username]]ctio[[username][username][username][username]][username]:

```typ[[username][username][username][username]][username]c[username]ipt
// R[[username][username][username][username]]cip[[username][username][username][username]]C[[username][username][username][username]][username]d.t[[username][username][username][username]][username]t.t[username]x
i[[username][username][username][username]]po[username]t { [username][[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username], [username]c[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] } f[username]o[[username][username][username][username]] '@t[[username][username][username][username]][username]ti[[username][username][username][username]]g-lib[username][[username][username][username][username]][username]y/[username][[username][username][username][username]][[username][username][username][username]]ct';
i[[username][username][username][username]]po[username]t R[[username][username][username][username]]cip[[username][username][username][username]]C[[username][username][username][username]][username]d f[username]o[[username][username][username][username]] './R[[username][username][username][username]]cip[[username][username][username][username]]C[[username][username][username][username]][username]d';

t[[username][username][username][username]][username]t('di[username]pl[[username][username][username][username]]y[username] [username][[username][username][username][username]]cip[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]', () => {
  co[[username][username][username][username]][username]t [username][[username][username][username][username]]cip[[username][username][username][username]] = { [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]: { [[username][username][username][username]][[username][username][username][username]]: 'T[[username][username][username][username]][username]t R[[username][username][username][username]]cip[[username][username][username][username]]' }, ... };
  [username][[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username](<R[[username][username][username][username]]cip[[username][username][username][username]]C[[username][username][username][username]][username]d [username][[username][username][username][username]]cip[[username][username][username][username]]={[username][[username][username][username][username]]cip[[username][username][username][username]]} />);
  [[username][username][username][username]]xp[[username][username][username][username]]ct([username]c[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]].g[[username][username][username][username]]tByT[[username][username][username][username]]xt('T[[username][username][username][username]][username]t R[[username][username][username][username]]cip[[username][username][username][username]]')).toB[[username][username][username][username]]I[[username][username][username][username]]Th[[username][username][username][username]]Doc[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t();
});
```

### E2E T[[username][username][username][username]][username]t[username] (Pl[[username][username][username][username]]yw[username]ight)

T[[username][username][username][username]][username]t c[username]itic[[username][username][username][username]]l [username][username][[username][username][username][username]][username] flow[username]:

```typ[[username][username][username][username]][username]c[username]ipt
// t[[username][username][username][username]][username]t[username]/[[username][username][username][username]]2[[username][username][username][username]]/[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l-pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username].[username]p[[username][username][username][username]]c.t[username]
t[[username][username][username][username]][username]t('c[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]l pl[[username][username][username][username]][[username][username][username][username]]', [[username][username][username][username]][username]y[[username][username][username][username]]c ({ p[[username][username][username][username]]g[[username][username][username][username]] }) => {
  [[username][username][username][username]]w[[username][username][username][username]]it p[[username][username][username][username]]g[[username][username][username][username]].goto('/pl[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username]');
  [[username][username][username][username]]w[[username][username][username][username]]it p[[username][username][username][username]]g[[username][username][username][username]].click('t[[username][username][username][username]]xt=C[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]] N[[username][username][username][username]]w Pl[[username][username][username][username]][[username][username][username][username]]');
  [[username][username][username][username]]w[[username][username][username][username]]it p[[username][username][username][username]]g[[username][username][username][username]].fill('i[[username][username][username][username]]p[username]t[[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]="pl[[username][username][username][username]][[username][username][username][username]]N[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]"]', 'My Pl[[username][username][username][username]][[username][username][username][username]]');
  [[username][username][username][username]]w[[username][username][username][username]]it p[[username][username][username][username]]g[[username][username][username][username]].click('t[[username][username][username][username]]xt=S[[username][username][username][username]]v[[username][username][username][username]]');
  [[username][username][username][username]]w[[username][username][username][username]]it [[username][username][username][username]]xp[[username][username][username][username]]ct(p[[username][username][username][username]]g[[username][username][username][username]].loc[[username][username][username][username]]to[username]('t[[username][username][username][username]]xt=My Pl[[username][username][username][username]][[username][username][username][username]]')).toB[[username][username][username][username]]Vi[username]ibl[[username][username][username][username]]();
});
```

---

## P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]] Opti[[username][username][username][username]]iz[[username][username][username][username]]tio[[username][username][username][username]]

### B[username][[username][username][username][username]]dl[[username][username][username][username]] Opti[[username][username][username][username]]iz[[username][username][username][username]]tio[[username][username][username][username]]

- **Cod[[username][username][username][username]] Splitti[[username][username][username][username]]g**: Ro[username]t[[username][username][username][username]]-b[[username][username][username][username]][username][[username][username][username][username]]d l[[username][username][username][username]]zy lo[[username][username][username][username]]di[[username][username][username][username]]g
- **T[username][[username][username][username][username]][[username][username][username][username]] Sh[[username][username][username][username]]ki[[username][username][username][username]]g**: R[[username][username][username][username]][[username][username][username][username]]ov[[username][username][username][username]] [username][[username][username][username][username]][username][username][[username][username][username][username]]d cod[[username][username][username][username]]
- **Mi[[username][username][username][username]]ific[[username][username][username][username]]tio[[username][username][username][username]]**: T[[username][username][username][username]][username][username][[username][username][username][username]][username] fo[username] JS, c[username][username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]o fo[username] CSS
- **Co[[username][username][username][username]]p[username][[username][username][username][username]][username][username]io[[username][username][username][username]]**: gzip/b[username]otli [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]bl[[username][username][username][username]]d

### I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]] Opti[[username][username][username][username]]iz[[username][username][username][username]]tio[[username][username][username][username]]

- **Fo[username][[username][username][username][username]][[username][username][username][username]]t**: W[[username][username][username][username]]bP with JPEG f[[username][username][username][username]]llb[[username][username][username][username]]ck
- **L[[username][username][username][username]]zy Lo[[username][username][username][username]]di[[username][username][username][username]]g**: I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username] b[[username][username][username][username]]low fold l[[username][username][username][username]]zy lo[[username][username][username][username]]d[[username][username][username][username]]d
- **R[[username][username][username][username]][username]po[[username][username][username][username]][username]iv[[username][username][username][username]]**: [username][username]c[username][[username][username][username][username]]t fo[username] diff[[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]t [username]c[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] [username]iz[[username][username][username][username]][username]
- **Co[[username][username][username][username]]p[username][[username][username][username][username]][username][username]io[[username][username][username][username]]**: All i[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username] opti[[username][username][username][username]]iz[[username][username][username][username]]d

### C[[username][username][username][username]]chi[[username][username][username][username]]g St[username][[username][username][username][username]]t[[username][username][username][username]]gy

- **St[[username][username][username][username]]tic A[username][username][[username][username][username][username]]t[username]**: C[[username][username][username][username]]ch[[username][username][username][username]]-Fi[username][username]t (1 y[[username][username][username][username]][[username][username][username][username]][username])
- **API C[[username][username][username][username]]ll[username]**: N[[username][username][username][username]]two[username]k-Fi[username][username]t with c[[username][username][username][username]]ch[[username][username][username][username]] f[[username][username][username][username]]llb[[username][username][username][username]]ck
- **I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username]**: C[[username][username][username][username]]ch[[username][username][username][username]]-Fi[username][username]t (30 d[[username][username][username][username]]y[username])

### Lightho[username][username][[username][username][username][username]] Sco[username][[username][username][username][username]][username]

T[[username][username][username][username]][username]g[[username][username][username][username]]t [username]co[username][[username][username][username][username]][username]:
- P[[username][username][username][username]][username]fo[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]: >90
- Acc[[username][username][username][username]][username][username]ibility: 100
- B[[username][username][username][username]][username]t P[username][[username][username][username][username]]ctic[[username][username][username][username]][username]: 100
- SEO: 100

---

## Acc[[username][username][username][username]][username][username]ibility

### WCAG 2.1 AA Co[[username][username][username][username]]pli[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]

- **S[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]tic HTML**: P[username]op[[username][username][username][username]][username] [username][username][[username][username][username][username]] of h[[username][username][username][username]][[username][username][username][username]]di[[username][username][username][username]]g[username], l[[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][[username][username][username][username]][username]k[username]
- **K[[username][username][username][username]]ybo[[username][username][username][username]][username]d N[[username][username][username][username]]vig[[username][username][username][username]]tio[[username][username][username][username]]**: All i[[username][username][username][username]]t[[username][username][username][username]][username][[username][username][username][username]]ctiv[[username][username][username][username]] [[username][username][username][username]]l[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username] k[[username][username][username][username]]ybo[[username][username][username][username]][username]d [[username][username][username][username]]cc[[username][username][username][username]][username][username]ibl[[username][username][username][username]]
- **ARIA L[[username][username][username][username]]b[[username][username][username][username]]l[username]**: Sc[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] [username][[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username] [username][username]ppo[username]t
- **Colo[username] Co[[username][username][username][username]]t[username][[username][username][username][username]][username]t**: 4.5:1 fo[username] [[username][username][username][username]]o[username][[username][username][username][username]][[username][username][username][username]]l t[[username][username][username][username]]xt, 3:1 fo[username] l[[username][username][username][username]][username]g[[username][username][username][username]] t[[username][username][username][username]]xt
- **Foc[username][username] I[[username][username][username][username]]dic[[username][username][username][username]]to[username][username]**: Vi[username]ibl[[username][username][username][username]] foc[username][username] [username]t[[username][username][username][username]]t[[username][username][username][username]][username]
- **Alt T[[username][username][username][username]]xt**: All i[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username] h[[username][username][username][username]]v[[username][username][username][username]] d[[username][username][username][username]][username]c[username]iptiv[[username][username][username][username]] [[username][username][username][username]]lt t[[username][username][username][username]]xt
- **Fo[username][[username][username][username][username]][username]**: P[username]op[[username][username][username][username]][username] l[[username][username][username][username]]b[[username][username][username][username]]l[username], [[username][username][username][username]][username][username]o[username] [[username][username][username][username]][[username][username][username][username]][username][username][[username][username][username][username]]g[[username][username][username][username]][username]

### T[[username][username][username][username]][username]ti[[username][username][username][username]]g

- **A[username]to[[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]d**: Lightho[username][username][[username][username][username][username]], [[username][username][username][username]]x[[username][username][username][username]]-co[username][[username][username][username][username]]
- **M[[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]l**: K[[username][username][username][username]]ybo[[username][username][username][username]][username]d [[username][username][username][username]][[username][username][username][username]]vig[[username][username][username][username]]tio[[username][username][username][username]], [username]c[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] [username][[username][username][username][username]][[username][username][username][username]]d[[username][username][username][username]][username] t[[username][username][username][username]][username]ti[[username][username][username][username]]g
- **Tool[username]**: WAVE, [[username][username][username][username]]x[[username][username][username][username]] D[[username][username][username][username]]vTool[username]

---

## F[username]t[username][username][[username][username][username][username]] E[[username][username][username][username]]h[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[username]

### Ph[[username][username][username][username]][username][[username][username][username][username]] 2
- N[[username][username][username][username]]tiv[[username][username][username][username]] [[username][username][username][username]]obil[[username][username][username][username]] [[username][username][username][username]]pp[username] (R[[username][username][username][username]][[username][username][username][username]]ct N[[username][username][username][username]]tiv[[username][username][username][username]])
- Voic[[username][username][username][username]] co[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]d[username] (Al[[username][username][username][username]]x[[username][username][username][username]], Googl[[username][username][username][username]] A[username][username]i[username]t[[username][username][username][username]][[username][username][username][username]]t)
- B[[username][username][username][username]][username]cod[[username][username][username][username]] [username]c[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]g fo[username] p[[username][username][username][username]][[username][username][username][username]]t[username]y [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t
- AI [username][[username][username][username][username]]cip[[username][username][username][username]] [username][username]gg[[username][username][username][username]][username]tio[[username][username][username][username]][username]
- Soci[[username][username][username][username]]l f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]][username] (follow [username][username][[username][username][username][username]][username][username], [username]h[[username][username][username][username]][username][[username][username][username][username]] pl[[username][username][username][username]][[username][username][username][username]][username])

### Ph[[username][username][username][username]][username][[username][username][username][username]] 3
- G[username]oc[[username][username][username][username]][username]y d[[username][username][username][username]]liv[[username][username][username][username]][username]y i[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]] (I[[username][username][username][username]][username]t[[username][username][username][username]]c[[username][username][username][username]][username]t, A[[username][username][username][username]][[username][username][username][username]]zo[[username][username][username][username]] F[username][[username][username][username][username]][username]h)
- M[[username][username][username][username]][[username][username][username][username]]l p[username][[username][username][username][username]]p vid[[username][username][username][username]]o t[username]to[username]i[[username][username][username][username]]l[username]
- N[username]t[username]itio[[username][username][username][username]]i[username]t co[[username][username][username][username]][username][username]lt[[username][username][username][username]]tio[[username][username][username][username]] booki[[username][username][username][username]]g
- I[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]] with fit[[username][username][username][username]][[username][username][username][username]][username][username] t[username][[username][username][username][username]]ck[[username][username][username][username]][username][username]
- S[[username][username][username][username]][[username][username][username][username]][username]t [[username][username][username][username]]ppli[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]] i[[username][username][username][username]]t[[username][username][username][username]]g[username][[username][username][username][username]]tio[[username][username][username][username]] (IoT)

---

## T[username]o[username]bl[[username][username][username][username]][username]hooti[[username][username][username][username]]g

### Co[[username][username][username][username]][[username][username][username][username]]o[[username][username][username][username]] I[username][username][username][[username][username][username][username]][username]

#### 1. B[username]ild F[[username][username][username][username]]il[username] with Typ[[username][username][username][username]]Sc[username]ipt E[username][username]o[username][username]

```b[[username][username][username][username]][username]h
# Cl[[username][username][username][username]][[username][username][username][username]][username] c[[username][username][username][username]]ch[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]]d [username][[username][username][username][username]]i[[username][username][username][username]][username]t[[username][username][username][username]]ll
[username][[username][username][username][username]] -[username]f [[username][username][username][username]]od[[username][username][username][username]]_[[username][username][username][username]]od[username]l[[username][username][username][username]][username] p[[username][username][username][username]]ck[[username][username][username][username]]g[[username][username][username][username]]-lock.j[username]o[[username][username][username][username]]
[[username][username][username][username]]p[[username][username][username][username]] i[[username][username][username][username]][username]t[[username][username][username][username]]ll
[[username][username][username][username]]p[[username][username][username][username]] [username][username][[username][username][username][username]] b[username]ild
```

#### 2. PWA Not Upd[[username][username][username][username]]ti[[username][username][username][username]]g

```b[[username][username][username][username]][username]h
# Cl[[username][username][username][username]][[username][username][username][username]][username] [username][[username][username][username][username]][username]vic[[username][username][username][username]] wo[username]k[[username][username][username][username]][username] c[[username][username][username][username]]ch[[username][username][username][username]]
# I[[username][username][username][username]] b[username]ow[username][[username][username][username][username]][username] D[[username][username][username][username]]vTool[username]: Applic[[username][username][username][username]]tio[[username][username][username][username]] > S[[username][username][username][username]][username]vic[[username][username][username][username]] Wo[username]k[[username][username][username][username]][username][username] > U[[username][username][username][username]][username][[username][username][username][username]]gi[username]t[[username][username][username][username]][username]
# Th[[username][username][username][username]][[username][username][username][username]] h[[username][username][username][username]][username]d [username][[username][username][username][username]]f[username][[username][username][username][username]][username]h: Ct[username]l+Shift+R (Wi[[username][username][username][username]]dow[username]) o[username] C[[username][username][username][username]]d+Shift+R (M[[username][username][username][username]]c)
```

#### 3. I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username] Not Lo[[username][username][username][username]]di[[username][username][username][username]]g

Ch[[username][username][username][username]]ck `vit[[username][username][username][username]].co[[username][username][username][username]]fig.t[username]` b[[username][username][username][username]][username][[username][username][username][username]] p[[username][username][username][username]]th [[username][username][username][username]][[username][username][username][username]]tch[[username][username][username][username]][username] yo[username][username] d[[username][username][username][username]]ploy[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t URL:

```typ[[username][username][username][username]][username]c[username]ipt
[[username][username][username][username]]xpo[username]t d[[username][username][username][username]]f[[username][username][username][username]][username]lt d[[username][username][username][username]]fi[[username][username][username][username]][[username][username][username][username]]Co[[username][username][username][username]]fig({
  b[[username][username][username][username]][username][[username][username][username][username]]: '/foodi[[username][username][username][username]]/',  // M[username][username]t [[username][username][username][username]][[username][username][username][username]]tch GitH[username]b [username][[username][username][username][username]]po [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]
});
```

#### 4. i18[[username][username][username][username]] T[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]][username] Not Lo[[username][username][username][username]]di[[username][username][username][username]]g

E[[username][username][username][username]][username][username][username][[username][username][username][username]] t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]] fil[[username][username][username][username]][username] [[username][username][username][username]][username][[username][username][username][username]] i[[username][username][username][username]] `p[username]blic/loc[[username][username][username][username]]l[[username][username][username][username]][username]/{l[[username][username][username][username]][[username][username][username][username]]g}/t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]].j[username]o[[username][username][username][username]]`, [[username][username][username][username]]ot i[[username][username][username][username]] `[username][username]c/`.

---

## Co[[username][username][username][username]]t[username]ib[username]ti[[username][username][username][username]]g

### How to Co[[username][username][username][username]]t[username]ib[username]t[[username][username][username][username]]

1. **Fo[username]k** th[[username][username][username][username]] [username][[username][username][username][username]]po[username]ito[username]y
2. **C[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]** [[username][username][username][username]] f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]] b[username][[username][username][username][username]][[username][username][username][username]]ch: `git ch[[username][username][username][username]]cko[username]t -b f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]]/[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]zi[[username][username][username][username]]g-f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]]`
3. **Co[[username][username][username][username]][[username][username][username][username]]it** yo[username][username] ch[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]][username]: `git co[[username][username][username][username]][[username][username][username][username]]it -[[username][username][username][username]] 'Add [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]zi[[username][username][username][username]]g f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]]'`
4. **P[username][username]h** to th[[username][username][username][username]] b[username][[username][username][username][username]][[username][username][username][username]]ch: `git p[username][username]h o[username]igi[[username][username][username][username]] f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]]/[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]zi[[username][username][username][username]]g-f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]]`
5. **Op[[username][username][username][username]][[username][username][username][username]]** [[username][username][username][username]] P[username]ll R[[username][username][username][username]]q[username][[username][username][username][username]][username]t

### Co[[username][username][username][username]]t[username]ib[username]tio[[username][username][username][username]] G[username]id[[username][username][username][username]]li[[username][username][username][username]][[username][username][username][username]][username]

- Follow [[username][username][username][username]]xi[username]ti[[username][username][username][username]]g cod[[username][username][username][username]] [username]tyl[[username][username][username][username]]
- Add t[[username][username][username][username]][username]t[username] fo[username] [[username][username][username][username]][[username][username][username][username]]w f[[username][username][username][username]][[username][username][username][username]]t[username][username][[username][username][username][username]][username]
- Upd[[username][username][username][username]]t[[username][username][username][username]] doc[username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]tio[[username][username][username][username]]
- E[[username][username][username][username]][username][username][username][[username][username][username][username]] [[username][username][username][username]]ll t[[username][username][username][username]][username]t[username] p[[username][username][username][username]][username][username]
- U[username][[username][username][username][username]] [username][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]tic co[[username][username][username][username]][[username][username][username][username]]it [[username][username][username][username]][[username][username][username][username]][username][username][[username][username][username][username]]g[[username][username][username][username]][username]

### Addi[[username][username][username][username]]g R[[username][username][username][username]]cip[[username][username][username][username]][username]

U[username][[username][username][username][username]] th[[username][username][username][username]] i[[username][username][username][username]]-[[username][username][username][username]]pp [username][[username][username][username][username]]cip[[username][username][username][username]] co[[username][username][username][username]]t[username]ib[username]tio[[username][username][username][username]] wiz[[username][username][username][username]][username]d fo[username] th[[username][username][username][username]] b[[username][username][username][username]][username]t [[username][username][username][username]]xp[[username][username][username][username]][username]i[[username][username][username][username]][[username][username][username][username]]c[[username][username][username][username]]. It will:
- V[[username][username][username][username]]lid[[username][username][username][username]]t[[username][username][username][username]] yo[username][username] [username][[username][username][username][username]]cip[[username][username][username][username]]
- G[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]] p[username]op[[username][username][username][username]][username] JSON
- C[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]] [[username][username][username][username]] PR [[username][username][username][username]][username]to[[username][username][username][username]][[username][username][username][username]]tic[[username][username][username][username]]lly

---

## M[[username][username][username][username]]i[[username][username][username][username]]t[[username][username][username][username]]i[[username][username][username][username]][[username][username][username][username]][username] Not[[username][username][username][username]][username]

### Addi[[username][username][username][username]]g [[username][username][username][username]] N[[username][username][username][username]]w L[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]]

1. Add l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]] cod[[username][username][username][username]] to `[username][username]c/i18[[username][username][username][username]].t[username]`:
   ```typ[[username][username][username][username]][username]c[username]ipt
   [username][username]ppo[username]t[[username][username][username][username]]dL[[username][username][username][username]]g[username]: ['[[username][username][username][username]][[username][username][username][username]]', '[[username][username][username][username]][username]', 'f[username]', 'd[[username][username][username][username]]'],
   ```

2. C[username][[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]] t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]] fil[[username][username][username][username]]: `p[username]blic/loc[[username][username][username][username]]l[[username][username][username][username]][username]/d[[username][username][username][username]]/t[username][[username][username][username][username]][[username][username][username][username]][username]l[[username][username][username][username]]tio[[username][username][username][username]].j[username]o[[username][username][username][username]]`

3. Upd[[username][username][username][username]]t[[username][username][username][username]] `M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt` i[[username][username][username][username]]t[[username][username][username][username]][username]f[[username][username][username][username]]c[[username][username][username][username]] i[[username][username][username][username]] `[username][username]c/typ[[username][username][username][username]][username]/i[[username][username][username][username]]d[[username][username][username][username]]x.t[username]`:
   ```typ[[username][username][username][username]][username]c[username]ipt
   i[[username][username][username][username]]t[[username][username][username][username]][username]f[[username][username][username][username]]c[[username][username][username][username]] M[username]ltiL[[username][username][username][username]][[username][username][username][username]]gT[[username][username][username][username]]xt {
     [[username][username][username][username]][[username][username][username][username]]: [username]t[username]i[[username][username][username][username]]g;
     [[username][username][username][username]][username]: [username]t[username]i[[username][username][username][username]]g;
     f[username]: [username]t[username]i[[username][username][username][username]]g;
     d[[username][username][username][username]]: [username]t[username]i[[username][username][username][username]]g;
   }
   ```

4. Add [username][[username][username][username][username]]cip[[username][username][username][username]][username]/i[[username][username][username][username]]g[username][[username][username][username][username]]di[[username][username][username][username]][[username][username][username][username]]t[username] i[[username][username][username][username]] [[username][username][username][username]][[username][username][username][username]]w l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]]

### R[[username][username][username][username]]vi[[username][username][username][username]]wi[[username][username][username][username]]g R[[username][username][username][username]]cip[[username][username][username][username]] PR[username]

Ch[[username][username][username][username]]ck:
- [ ] JSON [username]ch[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]] v[[username][username][username][username]]lid ([[username][username][username][username]][username]to[[username][username][username][username]][[username][username][username][username]]t[[username][username][username][username]]d)
- [ ] N[username]t[username]itio[[username][username][username][username]] v[[username][username][username][username]]l[username][[username][username][username][username]][username] [username][[username][username][username][username]][[username][username][username][username]][username]o[[username][username][username][username]][[username][username][username][username]]bl[[username][username][username][username]]
- [ ] I[[username][username][username][username]][username]t[username][username]ctio[[username][username][username][username]][username] cl[[username][username][username][username]][[username][username][username][username]][username] [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]][username][[username][username][username][username]]b[[username][username][username][username]][username][[username][username][username][username]]d
- [ ] I[[username][username][username][username]][[username][username][username][username]]g[[username][username][username][username]] [[username][username][username][username]]pp[username]op[username]i[[username][username][username][username]]t[[username][username][username][username]] ([[username][username][username][username]]o copy[username]ight[[username][username][username][username]]d co[[username][username][username][username]]t[[username][username][username][username]][[username][username][username][username]]t)
- [ ] No d[username]plic[[username][username][username][username]]t[[username][username][username][username]] [username][[username][username][username][username]]cip[[username][username][username][username]]
- [ ] All 3 l[[username][username][username][username]][[username][username][username][username]]g[username][[username][username][username][username]]g[[username][username][username][username]][username] p[username][[username][username][username][username]][username][[username][username][username][username]][[username][username][username][username]]t [[username][username][username][username]][[username][username][username][username]]d [[username][username][username][username]]cc[username][username][[username][username][username][username]]t[[username][username][username][username]]

### D[[username][username][username][username]]ploy[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t

P[username][username]h to `[[username][username][username][username]][[username][username][username][username]]i[[username][username][username][username]]` b[username][[username][username][username][username]][[username][username][username][username]]ch t[username]igg[[username][username][username][username]][username][username] [[username][username][username][username]][username]to[[username][username][username][username]][[username][username][username][username]]tic d[[username][username][username][username]]ploy[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]]t vi[[username][username][username][username]] GitH[username]b Actio[[username][username][username][username]][username]. No [[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]l [username]t[[username][username][username][username]]p[username] [username][[username][username][username][username]]q[username]i[username][[username][username][username][username]]d.

---

## Lic[[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]

MIT Lic[[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]] - [username][[username][username][username][username]][[username][username][username][username]] LICENSE fil[[username][username][username][username]] fo[username] d[[username][username][username][username]]t[[username][username][username][username]]il[username].

---

## Co[[username][username][username][username]]t[[username][username][username][username]]ct

- **I[username][username][username][[username][username][username][username]][username]**: http[username]://gith[username]b.co[[username][username][username][username]]/[[username][username][username][username]][username]t[[username][username][username][username]][[username][username][username][username]]iop[[username][username][username][username]]dill[[username][username][username][username]]/foodi[[username][username][username][username]]/i[username][username][username][[username][username][username][username]][username]
- **Di[username]c[username][username][username]io[[username][username][username][username]][username]**: http[username]://gith[username]b.co[[username][username][username][username]]/[[username][username][username][username]][username]t[[username][username][username][username]][[username][username][username][username]]iop[[username][username][username][username]]dill[[username][username][username][username]]/foodi[[username][username][username][username]]/di[username]c[username][username][username]io[[username][username][username][username]][username]
- **E[[username][username][username][username]][[username][username][username][username]]il**: foodi[[username][username][username][username]]@[[username][username][username][username]]x[[username][username][username][username]][[username][username][username][username]]pl[[username][username][username][username]].co[[username][username][username][username]]

---

**G[[username][username][username][username]][[username][username][username][username]][[username][username][username][username]][username][[username][username][username][username]]t[[username][username][username][username]]d with Cl[[username][username][username][username]][username]d[[username][username][username][username]] Cod[[username][username][username][username]]** - A[[username][username][username][username]]th[username]opic'[username] AI-pow[[username][username][username][username]][username][[username][username][username][username]]d codi[[username][username][username][username]]g [[username][username][username][username]][username][username]i[username]t[[username][username][username][username]][[username][username][username][username]]t
L[[username][username][username][username]][username]t [username]pd[[username][username][username][username]]t[[username][username][username][username]]d: 2025-01-10
Share: