Backend modules, designed to connect
Edict modules are the planned building blocks of a mobile backend: sign-in, data, subscriptions, AI limits, and more. Each is designed to share users, plans, and data with the others, so you configure the app and skip the glue.
Planned All nine modules are in development. None is available yet.
How do the modules fit together?
Pick the modules your app needs. The map shows the connections each one is designed to make. Point at a module to see the edict.yaml it would add.
Foundation
Monetization
Engagement
AI
Data and storage
Business logic and automation
Authentication and user managementRead the module page
| 1 | modules: | |
| 2 | +Added | identity: |
| 3 | +Added | providers: [apple, google, email] |
| 4 | +Added | profile: |
| 5 | +Added | fields: [display_name, avatar] |
| 6 | +Added | data: |
| 7 | +Added | workouts: |
| 8 | +Added | owner: user |
Database and backend APIsRead the module page
| 1 | modules: | |
| 2 | +Added | data: |
| 3 | +Added | workouts: |
| 4 | +Added | owner: user |
| 5 | +Added | fields: |
| 6 | +Added | title: text |
| 7 | +Added | started_at: timestamp |
| 8 | +Added | duration_min: integer |
| 9 | +Added | indexes: [started_at] |
Subscriptions and paywallsRead the module page
| 1 | modules: | |
| 2 | +Added | subscriptions: |
| 3 | +Added | plans: [free, premium] |
| 4 | +Added | entitlements: |
| 5 | +Added | premium: [ai_coach, export] |
| 6 | +Added | trial: |
| 7 | +Added | enabled: true |
| 8 | +Added | ai_coach: |
| 9 | +Added | requires_plan: premium |
Payments and creditsRead the module page
| 1 | modules: | |
| 2 | +Added | payments: |
| 3 | +Added | consumables: |
| 4 | +Added | credit_pack: |
| 5 | +Added | stores: [app_store, google_play] |
| 6 | +Added | credits: 20 |
| 7 | +Added | credits: |
| 8 | +Added | balance: image_credits |
| 9 | +Added | reserve: |
| 10 | +Added | per_request: 1 |
| 11 | +Added | release_on: failure |
Push notificationsRead the module page
| 1 | modules: | |
| 2 | +Added | notifications: |
| 3 | +Added | channels: [apns, fcm] |
| 4 | +Added | templates: |
| 5 | +Added | streak_at_risk: |
| 6 | +Added | title: "Keep your streak going" |
| 7 | +Added | body: "You have not logged today." |
| 8 | +Added | triggers: |
| 9 | +Added | - on: streak.at_risk |
| 10 | +Added | send: streak_at_risk |
| 11 | +Added | limits: |
| 12 | +Added | per_user_per_day: 3 |
AI gatewayRead the module page
| 1 | modules: | |
| 2 | +Added | ai: |
| 3 | +Added | provider: bring_your_own |
| 4 | +Added | development: |
| 5 | +Added | simulate: true |
| 6 | +Added | ai_coach: |
| 7 | +Added | model: general_chat |
| 8 | +Added | requires_plan: premium |
| 9 | +Added | stream: true |
| 10 | +Added | quota: |
| 11 | +Added | per: billing_period |
| 12 | +Added | limit: 200 |
| 13 | +Added | rate_limit: 10/min |
Files and content deliveryRead the module page
| 1 | modules: | |
| 2 | +Added | files: |
| 3 | +Added | receipts: |
| 4 | +Added | owner: user |
| 5 | +Added | visibility: private |
| 6 | +Added | max_size_mb: 10 |
| 7 | +Added | types: [image/jpeg, image/png, application/pdf] |
| 8 | +Added | quota: |
| 9 | +Added | free: 50 |
| 10 | +Added | premium: 5000 |
Background operationsRead the module page
| 1 | modules: | |
| 2 | +Added | jobs: |
| 3 | +Added | daily_summary: |
| 4 | +Added | schedule: "0 7 * * *" |
| 5 | +Added | timezone: user |
| 6 | +Added | run: summarize_activity |
| 7 | +Added | render_image: |
| 8 | +Added | on: image.requested |
| 9 | +Added | retries: 3 |
| 10 | +Added | backoff: exponential |
| 11 | +Added | history: true |
Declarative business logicRead the module page
| 1 | modules: | |
| 2 | +Added | rules: |
| 3 | +Added | workout_streak: |
| 4 | +Added | counts: workouts |
| 5 | +Added | per: day |
| 6 | +Added | reset_after: 1_missed_day |
| 7 | +Added | emits: streak.at_risk |
| 8 | +Added | daily_exports: |
| 9 | +Added | limit: 3 |
| 10 | +Added | per: day |
| 11 | +Added | unless_plan: premium |
Foundation
Give every interaction an identity and a place to live.
Authentication and user management
Planned sign-in, sessions, profiles, and ownership rules that every other module can build on.
Database and backend APIs
Planned PostgreSQL-backed entities, relationships, and typed APIs generated from your schema.
Monetization
Connect payment to permission.
Subscriptions and paywalls
Planned store subscription sync, entitlements, and backend enforcement of paid access.
Payments and credits
Planned store purchases for credits, with credit balances and atomic, refund-aware accounting.
Engagement
Keep the right people in the loop.
Push notifications
Planned device registration, templates, and event-triggered or scheduled notifications.
AI
Make intelligence part of the app, with limits.
AI gateway
Planned secure AI provider access with metering, quotas, rate limits, and streaming.
Data and storage
A place for what your app creates.
Files and content delivery
Planned uploads, object storage, secure URLs, and file authorization tied to your users.
Business logic and automation
Describe what should happen next.
Background operations
Planned scheduled tasks, durable event reactions, retries, and execution history without your own workers.
Declarative business logic
Planned typed rules for quotas, streaks, capacity, credits, and state changes, written as configuration.
Get an invitation when the beta opens.
Joining gets you email updates while Edict is built, and an invitation to the hosted beta when it opens.
Building now. No launch date yet.
Join the beta waitlist
Open the signup form on KitEdict is in development. Joining does not create an account or start a trial.