Instafication is a smart notification service that monitors booking systems and instantly alerts you via SMS or email when new appointment slots become available. Never miss a booking opportunity again!
Clone the repository
git clone https://github.com/instafication/frontend.git
cd frontend
Install dependencies
bun install
Set up environment variables
Create a .env file in the root directory (values are examples):
BETTER_AUTH_SECRET=your_random_secret
# Public analytics (optional)
PUBLIC_POSTHOG_KEY=phc_xxx
PUBLIC_POSTHOG_HOST=https://eu.i.posthog.com
STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
STRIPE_SECRET_KEY=your_stripe_secret_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
Set up the database
# Generate migrations from the Drizzle schema
bun run generate
# Apply to the local SQLite file (dev.db) or to D1 if configured
bun run push
Apply D1 migrations (remote D1)
If you're targeting a remote Cloudflare D1, ensure you have valid credentials in wrangler.toml or env variables used by drizzle.config.ts, then:
bun run migrate:prod
Start the development server
# Option A: Vite dev server (no CF bindings, good for UI work)
bun run dev
# Option B: Full Cloudflare Workers dev with D1 bindings
bunx wrangler dev --x-remote-bindings --port=5173 --local --persist-to=.wrangler/state
Visit http://localhost:5173 to see the application running!
bun run build - Build for productionbun run dev - Start development serverbun run deploy - Deploy project to Cloudflaresrc/
βββ lib/
β βββ Components/ # Reusable Svelte components
β βββ Managers/ # Business logic managers
β βββ server/ # Server-side utilities
β βββ i18n.ts # Internationalization
β βββ translations.ts # Translation strings
βββ routes/
β βββ +layout.svelte # Main layout
β βββ +page.svelte # Landing page
β βββ [...api]/ # API routes
β βββ payment/ # Payment handling
β βββ webhook/ # Webhook endpoints
βββ app.html # HTML template
basePath /api/auth):/api/auth/sign-up/email with { email, password }/api/auth/sign-in/email with { email, password }Core tables include:
profiles, services, scrapers, notificationsusers, sessions, accounts, verifications, apikeysGenerated auth schema lives at drizzle/generated.auth.schema.ts. If you upgrade BetterAuth and need to refresh the schema, regenerate with the BetterAuth CLI.
Users can configure:
Administrators can configure:
bun i -g wranglerwrangler.tomlbun run deployOptional envs used by drizzle.config.ts when pushing via HTTP driver:
export DRIZZLE_USE_D1=1
export CLOUDFLARE_ACCOUNT_ID=...
export CLOUDFLARE_DATABASE_ID=...
export CLOUDFLARE_D1_TOKEN=...
bun run generate && bun run push (local) or bun run migrate:prod (remote)wrangler d1 execute prod --remote --command "PRAGMA table_info('users');"Instafication offers two pricing tiers:
Currently supports:
We welcome contributions! Please follow these steps:
git checkout -b feature/amazing-featuregit commit -m 'Add amazing feature'git push origin feature/amazing-featureMIT License β see LICENSE for details.
Made with β€οΈ by the Instafication team