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
, notifications
users
, sessions
, accounts
, verifications
, apikeys
Generated 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 wrangler
wrangler.toml
bun run deploy
Optional 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-feature
git commit -m 'Add amazing feature'
git push origin feature/amazing-feature
MIT License β see LICENSE
for details.
Made with β€οΈ by the Instafication team