asaak
×
dreamy
Apps through conversation, built the way the business needs them.
Where we are

Vibe coding changed how software gets made

Tools like and many more
Untitled projectDeploy
Build a vendor approval app with a spend dashboard
✦ Assistant
✓ src/App.tsx
✓ src/pages/Dashboard.tsx
✓ supabase/schema.sql
✓ api/approve.ts
↑
CodePreview
Your app will appear here
VendorFlowDashboardRequestsVendors
Spend overview
Pending approvals14
Spend this month$48.2k
Active vendors32
1
Describe itPlain-language prompt
2
AI writes the codeFrontend, backend, schema
3
Instant previewClick around in seconds
4
Share a linkDeployed somewhere
The trade-off

Great for prototypes.

Risky for the business.

Pros
Increase in productivityDays of work in an afternoon
Creative freedomAnyone can turn an idea into software
Quickly solve specific problemsSmall tools for real, everyday pain
Cons
Data & application securityWho can see what? Where does the data live?
Lack of automated testing"It worked when I clicked it"
Inconsistent outputs & technologiesEvery app is a different stack
High costsPer-seat plans and credits add up
Cross-tool integration challengesApps that can't talk to each other
So we built a better way.
Keep the vibes. Lose the risk.
Consistent stack Secure by default Tested releases Integrations Cost-efficient
dreamy.asaak.com

What should we build?

Describe the app. Dreamy builds it, tests it, and publishes it for your team.

Describe an app…
Inventory trackerExpense approvalsCustomer portal
Procurement
Publish
ATYou

Build a procurement app: purchase requests, approvals and a spend dashboard.

Dreamy

Starting from the dynamic-rust + admin buildpack: the same stack and the same workspace branding every Asaak app uses.

dynamic-rust + adminbuildpack
APIRust · dynamic-rust core
DataPostgreSQL · migrations
UIdynamic-rust-admin
BrandAsaak workspace theme
Pinned revisions · foundation.lock.json
Applying buildpack
Modeling Request, Approval, Vendor
Writing roles & permissions
Writing browser E2E tests
Dreamy

1 release test failed: Approver: approve a request. The Approve button was hidden for the Approver role. Fixing it in round 2.

Round 2 · coding the fixagent “asaak-pool”
Dreamy

Fixed. All 6 release tests pass in the development sandbox.

Production publish
Publishing to production4 steps
Promoting tested build 5e1292a
Provisioning production runtime, sign-in and private database
Production browser E2E
Live at procurement.asaak.com
Describe a change, or ask a question…
Flow
Where the latest request is, from the first message to production.
Initializing — agent “asaak-pool”, round 1, started just now“Build a procurement app: purchase requests, approvals and a spend dashboard.”
Idle
Initializing
Coding
Testing
Verifying
Deploying
NowDoneNot reached
▾backend
▾src
lib.rs
models.rs
roles.rs
hooks.rs
tasks.rs
project.json
▾migrations
0001_procurement.sql
▾tests
e2e.spec.cjs
foundation.lock.json
backend/src/models.rsRust

                        
Developmenthttps://procurement--dev.asaak.com/Open app
Roles
Roles & permissionsNothing is visible until a role grants it
ResourceRequesterApproverAdmin
Requestsown · createreadall
Approvalsnoneapproveall
Vendorsreadreadall
Providersnonenoneall
RequesterGET/api/admin/approvals/
403Forbidden · no grant for this role
ProvidersEvery integration, one patternNew provider
NameKindCredentialsStatus
QBQuickBooksaccounting•••••• encryptedConnected
#Slackmessaging•••••• encryptedConnected
Inventorydreamy app•••••• encryptedConnected
GGoogleidentity•••••• encryptedConnected
Financedreamy app•••••• encryptedConnected
New provider
Stored encrypted in this app's database
Save provider
Release tests
Every check a release runs against the deployed app.
0 passed0 failed0 running
A development release is running: dev browser E2E in the sandbox.
Sign-in page

The app opens on its own sign-in page and sends a sign-in link.

Admin home

The shared admin opens with the workspace's name, colors and logo.

Requester: approvals are refused

GET /api/admin/approvals/ as a Requester expects 403.

Approver: approve a request

An Approver opens a pending request and approves it.

Spend dashboard totals

Dashboard totals match approved requests by vendor.

Sign out

Signing out returns to sign-in; the old session no longer reaches the API.

DevelopmentBuild 5e1292a · 6 of 6 E2E passed
ProductionOnly builds that passed E2E can be promoted
Promote tested build to production
Workspace settings

Queue

Every member's messages, in the order agents will take them.Live updates
4 waiting · 1 in progress

In progress

Waiting

Add vendor ratingsProcurement · Bob · asaak-pool
Export approvals to CSVFinance · Carol · 10:21 AM
Low-stock email alertsInventory · Dan · 10:22 AM
Build a travel request appNew project · Eve · 10:22 AM
Add a monthly budget per teamFinance · Frank · 10:23 AM
← Back to Workers

asaak-pool

Active
AccessShared pool agent
ServesAll 24 workspace members · every project
Runs onOur own infrastructure
Today31 requests completed
procurement-appPrivate PostgreSQL database
Private logical database per app and environment
Dedicated database role and credentials
On our PostgreSQL, not a third-party backend
Platform keys never reach the app
Apps integrate with one another the same way they integrate with SaaS
ProcurementDreamy app
InventoryDreamy app
FinanceDreamy app
QBQuickBooksProvider
#SlackProvider
Cost as your team grows
Team members → Monthly cost
Per-seat AI builders
Dreamy: one agent, your infrastructure
1 agent, many users Your own infrastructure Rust backend
Inconsistent outputs & technologiesBuildpacks
Data & application securityLocked down by default
Lack of automated testingE2E-gated releases
Cross-tool integration challengesThe provider pattern
High costsCost-efficient by design

Buildpacks

Every app starts from the same buildpack, dynamic-rust + admin. Today it's the first and only one.

  • One consistent stack: Rust API, PostgreSQL, shared admin UI
  • Branding is configured once for the workspace. Every project uses it by default
  • Same structure and conventions, whichever agent writes the code

Locked down by default

The database is under our control, and nothing is open until a role grants it.

  • Every app gets its own sign-in, roles and permissions
  • Requests without a grant are refused
  • A private database per app, on infrastructure we control

Tested before it ships

E2E testing is required to promote to production.

  • Every app gets a sandbox: a dev environment with its own database
  • Browser E2E runs on every release. Failures go back to the agent
  • Only builds that passed are promoted to production

The provider pattern

Integrations are records, not one-off code.

  • Providers live in the app's database, with their third-party credentials
  • One consistent way to build any integration
  • Apps integrate with one another the same way

Cost-efficient by design

Pay for the work, not for every seat.

  • One agent instance powers the whole team's queue
  • Runs on your own infrastructure: your cloud, your bill
  • Rust on the backend for maximum savings
Dreamy

Vibe coding, made production-grade

Inconsistent outputsBuildpacks

One stack and one brand, set once for every app.

SecurityLocked down by default

Roles, private databases, under our control.

No testingE2E-gated releases

A sandbox for every app; production needs a pass.

IntegrationThe provider pattern

Any integration, one pattern. Apps talk to apps.

High costsCost-efficient

One agent, your infrastructure, Rust underneath.

The speed of vibe coding, with the guarantees the business needs.
What are you waiting for?
Build.
asaak ×
dreamy
asaak×
dreamy

Space to pause · ← → chapters · F fullscreen · M mute

0:00 / 0:00