@fonderie/vue-courier-admin

Vue 3 composables for the Fonderie courier admin API (email/SMS/push template management) — thin bindings over @fonderie/client's CourierAdminClient.
1,980 5
Install
npm install @fonderie/vue-courier-admin
Latest Version:0.5.3
Vue:3
License:MIT
Last Updated:Oct 19, 2026
Links: GitHub  ·  npm
Maintainer: fonderie

@fonderie/vue-courier-admin

Vue 3 composables for the Fonderie courier admin API — useTemplates (list, plus saveTemplate/removeTemplate), useTemplate, useTemplatePreview, useTemplateRevisions (list + rollback), useTemplateCatalog (every email and language, built-in copy included), useBuiltInTemplate (the shipped default for one type), and useTemplateResolution (which template a send would actually use). Thin bindings over @fonderie/client's CourierAdminClient: reactive refs for loading/error/data state and the request itself, nothing else. Bring your own UI.

Install

npm install @fonderie/vue-courier-admin

Use

<script setup>
import { CourierAdminClient } from '@fonderie/client';
import { useTemplates } from '@fonderie/vue-courier-admin';

const admin = new CourierAdminClient({
  baseUrl: 'https://api.example.com/v1',
  adminToken: import.meta.env.VITE_FONDERIE_ADMIN_TOKEN,
});

// Saving and deleting come from useTemplates; both refresh the list.
const { templates, saveTemplate, removeTemplate } = useTemplates(admin);
</script>

<template>
  <ul>
    <li v-for="t in templates" :key="t.type">
      {{ t.type }}
      <button @click="saveTemplate(t.type, { text: 'Hello!' })">Save</button>
      <button @click="removeTemplate(t.type)">Revert to default</button>
    </li>
  </ul>
</template>

This client is deliberately separate from FonderieClient. Courier's /admin/templates/* routes are guarded by a static bearer token configured on the server (CourierModule's adminToken), not the signed-in user's session — the same model @fonderie/config's admin surface and the fonderie template/fonderie config CLI commands use. Construct CourierAdminClient with that token directly; it does not share state with AuthClient/BillingClient/WorkspacesClient.

Want pre-built screens instead of wiring your own editor? See @fonderie/vue-courier-admin-screens.

Why this exists

You've shipped this plumbing before — auth, teams, billing, messaging — and the next project will ask for it again. Fonderie packages it once: plain TypeScript modules for @fonderie/core, PostgreSQL-backed, self-hosted, MIT. No external control plane, no per-seat anything. Register the modules you need; skip the ones you don't.

This package owns the Vue binding for courier's template admin API — reactive state management around @fonderie/client, nothing more. No business logic lives here; it lives in @fonderie/courier on the server.

Browse the whole set at fonderiejs/fonderie · follow @fonderiejs

License

MIT © Fonderie, Inc.

Related Packages

@fonderie/vue-courier-admin-screens

Pre-built Vue screens for the Fonderie courier admin API — template list, templa...

2,761 5
@fonderie/vue-admin

Vue composables over @fonderie/admin — the operator's surface. One composable pe...

2,497 5
@fonderie/vue-config-admin

Vue 3 composables for the Fonderie config admin API (feature flags/remote config...

3,077 5
@fonderie/vue-auth

Vue composables for Fonderie auth — thin bindings over @fonderie/client.

4,674 5
@fonderie/vue-webhooks

Vue 3 composables for Fonderie's outgoing webhooks — thin bindings over @fonderi...

2,583 5

Version History

Version Released License
0.5.3 MIT
0.5.2 MIT
0.5.1 MIT
0.5.0 MIT
0.4.1 MIT