An interactive, decision-by-decision life simulator that walks a future or current Marine through every step from the recruiter's office to a 20-year retirement (or an honorable early exit). Every fork shows the real financial, family, and career consequence — gross pay, taxes, BAH/BAS, bills, savings, debt, TSP, deployments, qualifications, and the projected pension at year 20.
Built as a planning tool for one specific Marine recruit — but generalizable to anyone weighing the path.
Live demo (after Netlify deploy): https://<your-site>.netlify.app/
index.html is a single self-contained HTML file with no build step. Open it in any browser and the simulator runs. It contains:
- 🎮 Play My Path — chronological 48-scene story sim. Every scene = one decision point. Tree view (left), narrative + choices (center), live stats dashboard (right), full monthly budget breakdown (bottom). State auto-saves to
localStorage. - 📍 Overview — pinned 20-year roadmap and life-fork scenarios
- 🔖 MOS Deep Dive — every 03XX combat-arms MOS + cross-branch SOF tracks
- 🌊 Path to Recon — 2026 USMC Recon pipeline (IRC → GRC → ARC → Dive → Airborne → MFF → SERE)
- ⚡ Path to Raiders — MARSOC A&S, ITC, B-billet fallbacks
- 🏠 Life Forks — marriage, kids, housing, VA loan, overseas
- 💰 Rank & Pay — full 2026 enlisted pay tables E-1 through E-9
- 🎓 School While In — TA, GI Bill, MGIB, CLEP, DSST, MCU, SNCO Degree Completion, MyCAA
- 🧭 Decision Toolkit — 4-lens test + standing financial rules
Black multicam aesthetic with USMC scarlet (#be0f34) and gold (#bf9522) accents. Light theme uses sand/khaki with the same scarlet/gold accent system. Toggle from the top-right.
The app supports a layered persistence model so it works immediately with zero backend setup, with a clear upgrade path when you're ready to add cloud sync.
- 👤 Account button in the top-right opens a modal that captures the player's name + email. Stored in
localStoragealongside the game state. No password, no backend needed. - 📁 My Paths tab lets the player save multiple named playthroughs ("Recon Track", "Married Early", etc.), see a stats summary card for each, and load any one back into the simulator with one click.
- 📧 Email My Results generates a full plain-text career report — current rank, financial snapshot, investment plan, age-60 projection, decisions made, paths visited — and opens a pre-filled
mailto:link in the default email client. If the report is too long formailto:(common on Outlook), it falls back to copying to clipboard. - ⬇️ Export All as JSON / ⬆️ Import lets the player move their saves between devices manually.
The cloud-sync stack is built and committed. The only manual step left is enabling Identity in your Netlify dashboard.
Backend (already in this repo):
netlify/functions/save-path.js— accepts a signed-in user's JWT + a path object, stores it in Netlify Blobs keyed by<userEmail>/<id>netlify/functions/list-paths.js— returns every path under the user's email prefixnetlify/functions/delete-path.js— deletes a specific pathnetlify/functions/_auth.js— shared helper that extracts the verified Identity user fromclientContextpackage.json— declares@netlify/blobsdep so Netlify auto-installs on deploynetlify.toml— declaresfunctions = "netlify/functions"and esbuild bundler
Frontend (already wired in index.html):
isCloudSignedIn(),getAuthHeaders(),cloudSavePath(),cloudListPaths(),cloudDeletePath(),syncCloudPaths()helperssavePath()now writes to localStorage first (instant) AND POSTs to/.netlify/functions/save-pathif signed inrenderPathsList()pulls from cloud + merges into local on every render when signed indeletePath()removes from cloud too when signed in- The "👤 Sign In" button now calls
openSignIn()which opens the Identity magic-link modal when Identity is loaded, falling back to the local-only name/email modal otherwise netlifyIdentity.on('login', …)firessyncCloudPaths()to pull existing paths down on first sign-in
One-time setup in the Netlify dashboard (~3 minutes):
- Site dashboard → Integrations → Netlify Identity → Enable Identity
- Under Registration, choose:
- Open (anyone with an email can sign up — fine for personal/family use), or
- Invite-only (you manually invite people via email)
- (Optional) Under External providers, enable Google / GitHub / Apple OAuth so users can sign in with one click
- Site dashboard → Integrations → Netlify Blobs → Enable (free tier covers thousands of saves)
- Trigger a new deploy so the Functions and Blobs binding go live (
git pushdoes this automatically)
That's it. After step 5:
- The 👤 Sign In button opens the Identity magic-link modal
- Signing in pulls any cloud-saved paths down to the current device
- New saves write to cloud automatically
- Saves follow the user across phone, laptop, tablet
- Multiple users can use the same URL — each has their own email-keyed namespace
Free tier limits:
- Netlify Identity: 1,000 active monthly users
- Netlify Blobs: 1 GB storage, 100k operations/month
- Netlify Functions: 125k invocations/month + 100 hr runtime
For a family-of-five planning tool this is effectively free forever.
mailto: works today but caps at ~1800-char body length on some clients. To send real emails via Resend or SendGrid, add a fourth function netlify/functions/email-report.js that takes the user's JWT + the report body and calls the email provider. ~30 lines of code; not built yet.
# Anywhere — no install needed
open index.htmlOr with a local dev server (useful for some browsers that block localStorage on file://):
# Python (any system)
python3 -m http.server 8000
# then open http://localhost:8000/
# Or with npx
npx serve .- Zip the repo (or just drag the folder).
- Drop on https://app.netlify.com/drop
- Done — a public URL is live in ~5 seconds.
- Push this repo to GitHub:
git init git add . git commit -m "Initial: Semper Fidelis Career Sim" git remote add origin git@github.com:<you>/marine-career-path.git git push -u origin main
- In Netlify → "Add new site" → "Import from Git" → pick this repo.
- Build command: (leave blank)
- Publish directory:
. - Deploy. Every
git pushtomainauto-rebuilds.
netlify.toml is already configured with publish = ".", security headers, and friendly redirects for /play and /sim.
npm install -g netlify-cli
netlify deploy --prod --dir=..
├── index.html # The full simulator (single-file, no build step)
├── README.md # You are here
├── netlify.toml # Netlify deploy config (publish=., security headers)
├── .gitignore
├── data/ # Source-of-truth JSON files (see data/README.md)
│ ├── mos_complete.json ✅ v1
│ ├── career_stages.json ✅ v1
│ ├── pay_2026.json ✅ v1
│ ├── decision_tree.json ✅ v1
│ └── timeline.json ✅ v1
└── archive/ # Earlier prototype versions, kept for reference
├── v1-starter.html
└── v2-reference.html
- Wire the simulator to load
data/pay_2026.jsoninstead of hardcoding pay tables - Wire
data/mos_complete.jsoninto the MOS Deep Dive tab - Wire
data/career_stages.jsoninto the Path to Recon + Path to Raiders tabs - Add a Print/Export PDF for a saved character (so he can show family/recruiter his plan)
- Investment growth chart (TSP + Roth IRA compounded to age 60)
- Side-by-side path comparison ("if I do A vs B")
- Multi-character save slots (LCpl me, Married me, Recon me, MARSOC me, etc.)
- Army path parity (currently Marines-deep, Army-light) — RASP, SFAS, full 75th Ranger Regiment storyline
- Officer path (OCS / ROTC / Naval Academy → Recon Officer → MARSOC SOO)
- Spouse-side budget (BAH math, MyCAA, dual-income scenarios, deployment communication)
- Veteran-after-20 phase (second career, VA disability rating, location, equity)
- Mobile-first responsive pass (tree → bottom drawer on small screens)
- Branch-specific themes (Army OCP, Navy NWU, Air Force ABU)
- Real-time BAH lookup by zip code (DoD calculator API or scraped table)
- Class-of-2026 retirement modeling (BRS vs legacy High-3 comparison built in)
The /data directory is the source-of-truth for everything the simulator displays. All files are plain JSON — no dependencies, no schemas-as-code, just structured facts with source citations.
Complete USMC enlisted MOS list organized by occupational field. Each entry: MOS code, title, ASVAB line-score requirement, enlistable-from-boot-camp flag, full duty description, civilian-bridge value.
Source: mosdb.com, operationmilitarykids.org (MOS Guide 2026), marines.mil
Full training-pipeline data for every stage on the primary path:
- Boot Camp (13 weeks)
- School of Infantry / Infantry Rifleman Course (14 weeks)
- Recon Screening / RSAT
- Ground Reconnaissance Course — GRC (9 weeks)
- Amphibious Reconnaissance Course — ARC (9 weeks)
- Combatant Diver Course — CDC (8 weeks)
- Basic Airborne Course — BAC (3 weeks)
- Military Free Fall / HALO — MFF (3 weeks)
- SERE Level C (3 weeks)
- Scout Sniper Basic Course — SSBC (10–13 weeks)
- MARSOC A&S Phase I (3 weeks) + Phase II (3 weeks)
- Marine Raider Course — MRC (39 weeks / 9 months)
- Marine Security Guard School (8 weeks)
- Drill Instructor School (11 weeks)
- 20-year retirement calculation
Each stage includes: duration, location, rank at entry/exit, 2026 base pay, prerequisites, attrition rates where documented, housing options, TA/college notes, financial planning notes.
Sources: marines.mil, marsoc.marines.mil (A&S and MRC pages), mcesg.marines.mil (MSG prerequisites), mcrdpi.marines.mil (DI School), MARADMIN FY2026, operationmilitarykids.org (0317, 0321 MOS guides)
Complete 2026 military pay data: E-1 through E-9 base pay by years of service, BAS ($460.25/mo), sample BAH by station + grade + dependency status, all special pays (jump, dive, SDAP, hostile fire, FSA, COLA), total-comp examples (married Marine, various grades), BRS TSP match rules, GI Bill Chapter 33 details, Tuition Assistance ($4,500/yr max, $250/credit hr).
Sources: DFAS dfas.mil 2026 pay tables, vaclaimsinsider.com, military.com/benefits, DoD BAH calculator
Complete decision tree with every node, fork, and recovery path. Drives the interactive game UI.
Node types: stage · decision_gate · recovery_node · terminal · adversity_node
Each node: elapsed months from enlistment, rank, 2026 base pay, decision options with next pointers to next node IDs, requirements, attrition rates, descriptions.
Includes a life_layer overlay covering: marriage timing + financial impact, children (TRICARE, CDCs, SGLI), college strategy (TA vs GI Bill, CLEP), financial rules (TSP, VA loan, SRB, combat-zone tax), geopolitical risk factors.
Linear timeline for Gantt / visual path rendering: primary path (Infantry → Recon → Sniper → MARSOC → Retirement), alternate paths (no-Recon 03XX, MSG path, DI path), rank promotion milestones with typical months TIS and 2026 pay.
- All pay = 2026 rates (3.8% increase effective Jan 1, 2026)
- BAH varies significantly by duty station — always reference the official DoD BAH calculator: https://www.defensetravel.dod.mil/site/bah.cfm
- Attrition rates are public-source estimates — actual rates vary by cycle, class size, and year
- MOS requirements are current as of May 2026 — verify with an official recruiter or MCTFS
- Lateral-move rules are governed by annual MARADMIN — always check the current fiscal year MARADMIN
This is a personal planning tool, but PRs are welcome — especially:
- Data corrections with sources (open a PR against any
data/*.json) - New scenes in the simulator (
SCENESobject inindex.html) - Branch parity — Army, Navy, Air Force, Space Force, Coast Guard paths
- Officer track — commissioning paths and officer-side career model
This tool is for personal planning and education only. It does not reflect official US Marine Corps guidance and is not endorsed by the Department of Defense. Always verify policy, pay, and requirements with an official recruiter, command career planner, or the current MARADMIN. The Eagle, Globe, and Anchor and all USMC marks are trademarks of the United States Marine Corps; this tool does not use the official emblem.
Semper Fidelis.