Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 1 addition & 7 deletions .claude/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@
"version": "0.0.1",
"configurations": [
{
"name": "execile-dev",
"name": "execil-dev",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["run", "dev"],
"port": 3000
},
{
"name": "execile-dev-verify",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["exec", "vite", "dev", "--port", "3100"],
"port": 3100
}
]
}
6 changes: 6 additions & 0 deletions .dev.vars.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,9 @@
# 2x0000000000000000000000000000000AA always fails
# 3x0000000000000000000000000000000AA "token already spent"
TURNSTILE_SECRET=1x0000000000000000000000000000000AA

# Resend. Leave EMPTY to exercise the delivery-failure path: the endpoint
# returns error "delivery" and the form shows its recovery panel. A real key
# (re_...) sends for real, so prefer Resend's own test addresses:
# delivered@resend.dev bounced@resend.dev complained@resend.dev
RESEND_API_KEY=
8 changes: 6 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,9 @@ VITE_TURNSTILE_SITEKEY=1x00000000000000000000BB
# Address behind the form's "Open Email" failure fallback (issue #27)
VITE_CONTACT_EMAIL=contact@execil.net

# Empty => initAnalytics() returns early and PostHog never loads (issue #31)
VITE_POSTHOG_PROJECT_TOKEN=
# PostHog browser analytics. Set these to the project's public token and host.
# Empty token => the provider renders the tree untouched and PostHog never
# loads, so the site runs with no PostHog account (issue #31).
VITE_PUBLIC_POSTHOG_PROJECT_TOKEN=
VITE_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com

60 changes: 0 additions & 60 deletions .github/workflows/deploy.yml

This file was deleted.

4 changes: 2 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Execile
# Execil

Landing page for Execile, a medical billing / RCM service. Glossary in `CONTEXT.md`. Design source of truth: `docs/design/rcm-landing.dc.html`.
Landing page for Execil, a medical billing / RCM service. Glossary in `CONTEXT.md`. Design source of truth: `docs/design/rcm-landing.dc.html`.

## Conventions (not lint-enforced — check in review)

Expand Down
12 changes: 6 additions & 6 deletions CONTEXT.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
# Execile — Domain Glossary
# Execil — Domain Glossary

Vocabulary for the Execile landing-page effort. Glossary only; decisions live in `docs/adr/` and `.scratch/`.
Vocabulary for the Execil landing-page effort. Glossary only; decisions live in `docs/adr/` and `.scratch/`.

## Business terms

- **Execile** — the brand. A medical billing and revenue cycle management service for independent US practices. The `name` prop in the design canvas.
- **Execil** — the brand. A medical billing and revenue cycle management service for independent US practices. The `name` prop in the design canvas.
- **RCM (Revenue Cycle Management)** — the full billing lifecycle a practice runs to get paid: eligibility, credentialing, coding, claim submission, payment posting, AR follow-up, denials, patient statements, reporting.
- **Practice** — the customer. An independent medical practice with 1–20 providers.
- **Provider** — a clinician in a Practice who bills payers. Providers must be credentialed and enrolled before payers will pay for them.
- **Payer** — an insurer or program that pays claims.
- **Specialty** — a medical field (Primary Care, Behavioral Health, …). Execile assigns coders by Specialty.
- **Specialty** — a medical field (Primary Care, Behavioral Health, …). Execil assigns coders by Specialty.
- **Assessment** — the free billing assessment. The single conversion goal of the landing page; requested through the Assessment Form.
- **BAA (Business Associate Agreement)** — the HIPAA contract signed before any Practice data moves.
- **Fit** — the section stating who Execile is and is not built for.
- **Fit** — the section stating who Execil is and is not built for.

## Landing-page terms

Expand All @@ -29,6 +29,6 @@ Vocabulary for the Execile landing-page effort. Glossary only; decisions live in
- **Dark theme** — the StyleX `createTheme` applied to the footer and the Systems card, overriding Role values for those subtrees. Not a user-facing colour-scheme preference; the site is light.
- **Inverse surface** — a Section that renders on the dark ground and therefore carries the Dark theme.
- **Legal links** — the footer's HIPAA Statement, Privacy Policy and Terms of Service links. Each is a prerendered page of its own (`/hipaa`, `/privacy`, `/terms`) whose text lives in `src/legal.json`, kept apart from `messages.json` so it is bundled only with those routes.
- **Inbox** — the Google Workspace mailbox that receives every Assessment Form submission. Google Workspace is a destination, not a sending platform.
- **Inbox** — the Hostinger mailbox at `contact@execil.net` that receives every Assessment Form submission. It is a destination only; sending is Resend's job, and the two are deliberately separate so the apex MX never has to move.
- **Turnstile** — Cloudflare's bot check on the Assessment Form.
- **Brand font** — Satoshi, from Fontshare. Replaces the earlier FT Kunst Grotesk decision.
2 changes: 1 addition & 1 deletion docs/design/rcm-landing.dc.html
Original file line number Diff line number Diff line change
Expand Up @@ -472,7 +472,7 @@ <h3 style="margin:0;font-family:'Plus Jakarta Sans',sans-serif;font-weight:800;f
</div>
</footer>
</x-dc>
<script type="text/x-dc" data-dc-script data-props="{&quot;startupName&quot;:{&quot;editor&quot;:&quot;text&quot;,&quot;default&quot;:&quot;Execile&quot;,&quot;tsType&quot;:&quot;string&quot;,&quot;section&quot;:&quot;Brand&quot;},&quot;resultsMode&quot;:{&quot;editor&quot;:&quot;enum&quot;,&quot;default&quot;:&quot;placeholder&quot;,&quot;options&quot;:[&quot;placeholder&quot;,&quot;coming-soon&quot;],&quot;tsType&quot;:&quot;'placeholder' | 'coming-soon'&quot;,&quot;section&quot;:&quot;Content&quot;},&quot;dashboardAvailable&quot;:{&quot;editor&quot;:&quot;boolean&quot;,&quot;default&quot;:true,&quot;tsType&quot;:&quot;boolean&quot;,&quot;section&quot;:&quot;Content&quot;}}">
<script type="text/x-dc" data-dc-script data-props="{&quot;startupName&quot;:{&quot;editor&quot;:&quot;text&quot;,&quot;default&quot;:&quot;Execil&quot;,&quot;tsType&quot;:&quot;string&quot;,&quot;section&quot;:&quot;Brand&quot;},&quot;resultsMode&quot;:{&quot;editor&quot;:&quot;enum&quot;,&quot;default&quot;:&quot;placeholder&quot;,&quot;options&quot;:[&quot;placeholder&quot;,&quot;coming-soon&quot;],&quot;tsType&quot;:&quot;'placeholder' | 'coming-soon'&quot;,&quot;section&quot;:&quot;Content&quot;},&quot;dashboardAvailable&quot;:{&quot;editor&quot;:&quot;boolean&quot;,&quot;default&quot;:true,&quot;tsType&quot;:&quot;boolean&quot;,&quot;section&quot;:&quot;Content&quot;}}">
const FAQ = [
["How is pricing structured?", "A percentage of what we collect, quoted upfront before you sign. No setup fees, no per-claim surprises. Credentialing and AR cleanup projects are quoted as flat scopes."],
["How long is onboarding?", "About 14 days. We get access to your existing EHR/PM, map your payers and fee schedules, and start submitting claims — no software switch."],
Expand Down
Loading
Loading