Skip to content

Packages ​

Holo-JS is split into small packages so you only install what your app uses. New projects get the core packages and your framework's adapter. npx holo install adds most of the others for you, along with their config files.

All @holo-js/* packages are released together with the same version number. Keep them on the same version.

Always installed ​

PackageWhat it's forWhen you need itDocs
@holo-js/cliThe holo command: scaffolding, generators, migrations, workersEvery projectCLI Commands
@holo-js/configLoads config/ files and .env files; env(), useConfig(), config()Every projectConfiguration
@holo-js/coreStarts the Holo runtime and connects the installed packagesEvery projectHow Holo Works
@holo-js/kernelShared contracts, defineRedisConfig, and the plugin APIEvery project; import from it directly when configuring Redis or writing pluginsWriting Plugins
@holo-js/dbDatabase connections, query builder, ORM models, migrations, seeders, factoriesEvery projectDatabase, ORM

Framework adapters ​

Install the one for your framework. The installer adds it for you.

PackageWhat it's forWhen you need itDocs
@holo-js/adapter-nextwithHolo() for next.config.ts, plus client helpersNext.js appsNext.js
@holo-js/adapter-nuxtThe Nuxt module, plus client composablesNuxt appsNuxt
@holo-js/adapter-sveltekitwithHoloSvelteKit() for the sveltekit() options in vite.config.ts, plus client helpersSvelteKit appsSvelteKit
@holo-js/adapter-sharedCode shared by the three adaptersInstalled automatically; you don't import it—

Database drivers ​

Install one for each database engine your config/database.ts uses.

PackageWhat it's forWhen you need itDocs
@holo-js/db-sqliteSQLite driverdriver: 'sqlite'Database
@holo-js/db-postgresPostgreSQL driverdriver: 'postgres'Database
@holo-js/db-mysqlMySQL driverdriver: 'mysql'Database

Requests, forms, and security ​

PackageWhat it's forWhen you need itDocs
@holo-js/validationschema(), field, and validation rulesValidating any user inputValidation
@holo-js/formsvalidate() for form submissions and typed form errorsHandling HTML or JS form postsForms
@holo-js/securityCSRF protection, rate limiting, CORSApps with forms or public APIsSecurity
@holo-js/sessionCookie-backed sessions with file, database, or Redis storageApps with sign-in; installed with authSessions

Authentication and authorization ​

PackageWhat it's forWhen you need itDocs
@holo-js/authLogin, registration, guards, password reset, email verification, MFA, API tokensApps with user accountsAuthentication
@holo-js/auth-socialShared support for OAuth social loginAny social login providerSocial Login
@holo-js/auth-social-googleGoogle loginSign in with GoogleSocial Login
@holo-js/auth-social-githubGitHub loginSign in with GitHubSocial Login
@holo-js/auth-social-discordDiscord loginSign in with DiscordSocial Login
@holo-js/auth-social-facebookFacebook loginSign in with FacebookSocial Login
@holo-js/auth-social-appleApple loginSign in with AppleSocial Login
@holo-js/auth-social-linkedinLinkedIn loginSign in with LinkedInSocial Login
@holo-js/auth-workosWorkOS hosted sign-inUsing WorkOS for identityWorkOS
@holo-js/auth-clerkClerk hosted sign-inUsing Clerk for identityClerk
@holo-js/authorizationPolicies, abilities, authorize()Deciding who can do whatAuthorization

Background work and messaging ​

PackageWhat it's forWhen you need itDocs
@holo-js/queueJobs, dispatch(), workers, failed jobsRunning work in the backgroundQueues
@holo-js/queue-dbDatabase queue driver and database failed-job storageQueues stored in your databaseDrivers and Tables
@holo-js/queue-redisRedis queue driverQueues stored in RedisDrivers and Tables
@holo-js/scheduledefineSchedule(), schedule:run, schedule:work, schedule:listRunning commands, jobs, and functions on a timetableTask Scheduling
@holo-js/eventsEvents, listeners, queued and after-commit listenersDecoupling side effects from your main codeEvents
@holo-js/mailMail definitions, Markdown mail, previews, SMTPSending emailMail
@holo-js/notificationsNotifications over email, database, broadcast, or custom channelsNotifying usersNotifications

Cache and files ​

PackageWhat it's forWhen you need itDocs
@holo-js/cacheCache API, locks, query caching; file and memory storesCaching values or queriesCache
@holo-js/cache-dbDatabase cache storeCache stored in your databaseCache Drivers
@holo-js/cache-redisRedis cache storeCache stored in RedisCache Drivers
@holo-js/storageStorage disks: local and public files, public file URLsReading and writing filesFile Storage
@holo-js/storage-s3S3 and S3-compatible disk driverFiles on S3, R2, MinIO, and similarAmazon S3
@holo-js/mediaAttach files to models, with collections and image conversionsAvatars, post images, uploads tied to recordsMedia Library

Realtime ​

PackageWhat it's forWhen you need itDocs
@holo-js/broadcastBroadcast events, channels, and the WebSocket server (holo broadcast:work)Pushing server events to browsersBroadcasting
@holo-js/fluxBrowser client for broadcast channels and presenceListening for broadcasts in the browserListening on the Client
@holo-js/flux-reactReact hooks for FluxNext.js apps using broadcastingListening on the Client
@holo-js/flux-vueVue composables for FluxNuxt apps using broadcastingListening on the Client
@holo-js/flux-svelteSvelte helpers for FluxSvelteKit apps using broadcastingListening on the Client
@holo-js/realtimeQueries and mutations whose results update live in the browserLive dashboards, feeds, and listsRealtime Queries

Project creation ​

PackageWhat it's forWhen you need itDocs
create-holo-jsRuns npm create holo-js / pnpm create holo-js / yarn create holo-js / bun create holo-jsCreating a new project; never added to your appInstallation

Next steps ​

Released under the MIT License.