import Post from '@/server/models/Post'
export async function GET() {
const posts = await Post
.where('status', 'published')
.latest()
.paginate(15)
return Response.json(posts)
}
Your route. Your rendering. Holo underneath.
Your code stays. Your infrastructure can change.
One contract. Different drivers. Explore what each module
does.
ONE SYSTEM. MANY CAPABILITIES.
@holo-js/storage
Different disks. Same file API.
Store files locally, serve public uploads, or use
S3-compatible storage through the same API. Your media library
builds on these disks with model collections and conversions.
Write a typed job once. Run it inline with sync, or dispatch
it through database and Redis connections. Attempts, backoff
and failed jobs stay explicit.
CONFIG CHANGESdefault: 'sync'
SAME APPLICATION CODE
await GenerateReport.dispatch({ reportId })
QueuedProcessingComplete
INTERACTIVE ILLUSTRATION
Report requested → queued
Sync runs inline. Database and Redis need workers; database
queues also need their queue-table migration.