Introduction

Taman is a full-stack Vue admin template you own after generate — published @vinicunca packages keep receiving updates.

Taman is an admin-app monorepo template plus a set of published npm packages. You generate a project with pnpm create taman my-app, then own every file in that tree. Only @vinicunca/* packages keep receiving updates via pnpm update.

It is for teams that want a Vue 3 SPA, a Cloudflare-ready API, contract-first RPC, auth with organizations, and Postgres — without starting from a blank repo.

What you get

Vue admin SPA

Vite 8, vue-router 5, Pinia 4, vue-i18n 11, TanStack Vue Query and Vue Form, Zod 4, AG Grid. UI is Pohon + Akar + UnoCSS.

Nitro API on Workers

Standalone Nitro v3 beta built as cloudflare-module. Durable Object publisher, email queues, and a send_email binding.

Auth and orgs

better-auth 1.7 with the admin and organization/teams plugins, Google OAuth, and email verification.

Postgres + Drizzle

Postgres 18 via Docker Compose (host port 5437, database taman_db) and Drizzle ORM.

Stack

LayerChoice
WebVue 3.5 SPA, Vite 8, vue-router 5, Pinia 4 (persistedstate + secure-ls), vue-i18n 11, TanStack Vue Query + Vue Form, Zod 4, AG Grid
UIpohon-ui, akar, UnoCSS with @vinicunca/unocss-preset
APINitro v3 beta, Cloudflare Workers (cloudflare-module)
RPCContract-first oRPC 1.15
Authbetter-auth 1.7 (admin + organization/teams, Google OAuth, email verification)
DataPostgres 18, drizzle-orm 0.45, drizzle-kit 0.31
EmailMaizzle templates, Cloudflare Email Routing or console in dev
Toolingnx, pnpm 12, vitest, Playwright, changesets, commitlint

Layout of a generated project

  • apps/web (@<scope>/web) — Vue admin app
  • apps/api (@<scope>/api) — Nitro API
  • packages/shell/* — browser packages (access, app-ui, composables, designs, layouts, locales, stores, types, utils)
  • packages/server/* — db-pg and emails
  • packages/shared/* — api-contract, rbac, constants
  • Published packages stay on npm: @vinicunca/taman-core, @vinicunca/taman-ui, @vinicunca/request, plus @vinicunca/{vite-config,tsconfig,node-utils,commitlint-config}

The template repo also contains packages/{taman-core,taman-ui,request,create-taman} and internal/*. Those are removed from generated projects and installed from npm instead.

Published packages

Current versions on npm: 0.1.0 for the Taman packages (0.1.1 for @vinicunca/taman-ui) and 1.0.1 for the tooling packages.

PackageRole
create-tamanCLI that scaffolds the monorepo
@vinicunca/taman-coreUtils, cache, preferences, typings, composables
@vinicunca/taman-uiAdmin components, forms, dialogs, layout, menu, tabs
@vinicunca/requestoRPC and REST clients with TanStack Query helpers
@vinicunca/vite-configOpinionated Vite config for the web app
@vinicunca/tsconfigShared TypeScript configs
@vinicunca/node-utilsNode helpers used by tooling
@vinicunca/commitlint-configConventional commits + workspace scopes

See Packages for API reference.

Who this is for

  • You want a shadcn-style starter: generated code is yours to change.
  • You are fine with no optional feature flags — the CLI always emits the same stack.
  • You will add product features by copying the todo walkthrough (contract → schema → repo/service → RPC → page).
The generated web app has a login page and the todo reference feature. There are no profile, onboarding, or organization-management views yet. The API already runs better-auth's organization plugin; the client does not install organizationClient. See Authentication.