<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: pelavo</title>
    <description>The latest articles on DEV Community by pelavo (@plvo).</description>
    <link>https://dev.to/plvo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2241086%2F49abaef6-dbd6-4268-8640-daabe3a4c9c8.jpeg</url>
      <title>DEV Community: pelavo</title>
      <link>https://dev.to/plvo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/plvo"/>
    <language>en</language>
    <item>
      <title>Skip Repetitive Stack Setup (Database, Auth, UI) and Start Coding Immediately</title>
      <dc:creator>pelavo</dc:creator>
      <pubDate>Wed, 14 Jan 2026 15:55:43 +0000</pubDate>
      <link>https://dev.to/plvo/skip-repetitive-stack-setup-database-auth-ui-and-start-coding-immediately-4lc2</link>
      <guid>https://dev.to/plvo/skip-repetitive-stack-setup-database-auth-ui-and-start-coding-immediately-4lc2</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Last week I started a new Next.js project. Needed the usual stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;drizzle for database&lt;/li&gt;
&lt;li&gt;better-auth for authentication&lt;/li&gt;
&lt;li&gt;shadcn for UI&lt;/li&gt;
&lt;li&gt;TanStack Query for data fetching&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here's what happened:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install drizzle, create schema, configure client&lt;/li&gt;
&lt;li&gt;Install better-auth, create user/session/account tables&lt;/li&gt;
&lt;li&gt;Wire better-auth to drizzle schema&lt;/li&gt;
&lt;li&gt;Install shadcn, set up components.json&lt;/li&gt;
&lt;li&gt;Configure theme provider&lt;/li&gt;
&lt;li&gt;Set up TanStack Query with proper providers&lt;/li&gt;
&lt;li&gt;Debug TypeScript paths for 20 minutes&lt;/li&gt;
&lt;li&gt;Realize I forgot to add auth tables to schema&lt;/li&gt;
&lt;li&gt;90 minutes later: finally working&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I've done this exact integration 6 times in 4 months. Same stack. Same debugging. Same wasted time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution I Built
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;create-faster&lt;/code&gt; generates projects with your chosen stack already integrated:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bunx create-faster
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Interactive Mode
&lt;/h3&gt;

&lt;p&gt;Pick your stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework&lt;/strong&gt;: Next.js, Expo, Hono, TanStack Start&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database&lt;/strong&gt;: Postgres, MySQL&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ORM&lt;/strong&gt;: Drizzle, Prisma (with auto-generated auth tables)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UI&lt;/strong&gt;: shadcn, nativewind, theme support, and more&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Features&lt;/strong&gt;: Better Auth, TanStack Query/Form, MDX, PWA, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Package manager&lt;/strong&gt;: bun, pnpm, npm&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Non-Interactive Mode
&lt;/h3&gt;

&lt;p&gt;Same setup every time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bunx create-faster myapp &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--app&lt;/span&gt; myapp:nextjs:shadcn,better-auth,tanstack-query &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--database&lt;/span&gt; postgres &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--orm&lt;/span&gt; drizzle &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--git&lt;/span&gt; &lt;span class="nt"&gt;--pm&lt;/span&gt; bun
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Multi-App Monorepos
&lt;/h3&gt;

&lt;p&gt;Web + mobile sharing database:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bunx create-faster mysaas &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--app&lt;/span&gt; web:nextjs:shadcn,better-auth &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--app&lt;/span&gt; mobile:expo:nativewind &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--database&lt;/span&gt; postgres &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--orm&lt;/span&gt; drizzle &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--git&lt;/span&gt; &lt;span class="nt"&gt;--pm&lt;/span&gt; bun
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Auto-creates turborepo. Both apps use the shared &lt;code&gt;db&lt;/code&gt; package. Auth tables already in drizzle schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  What It Actually Generates
&lt;/h2&gt;

&lt;p&gt;Not just files - working integrations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;drizzle + better-auth:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User, session, account tables in drizzle schema&lt;/li&gt;
&lt;li&gt;Database client configured&lt;/li&gt;
&lt;li&gt;Auth config pointing to drizzle&lt;/li&gt;
&lt;li&gt;Type-safe queries ready to use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;shadcn + next-themes:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;shadcn installed with components.json configured&lt;/li&gt;
&lt;li&gt;Theme provider in app layout&lt;/li&gt;
&lt;li&gt;Dark mode toggle component ready&lt;/li&gt;
&lt;li&gt;Tailwind configured&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;TanStack Query + Next.js:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query client configured&lt;/li&gt;
&lt;li&gt;Provider in app layout&lt;/li&gt;
&lt;li&gt;Devtools ready if selected&lt;/li&gt;
&lt;li&gt;Example query hooks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;For monorepos:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Turborepo with proper pipeline&lt;/li&gt;
&lt;li&gt;Shared &lt;code&gt;db&lt;/code&gt; package used by all apps&lt;/li&gt;
&lt;li&gt;TypeScript paths configured&lt;/li&gt;
&lt;li&gt;Single install command&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Reproducibility Feature
&lt;/h2&gt;

&lt;p&gt;After generation, get the exact command to recreate it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;create-faster mysaas \
  --app web:nextjs:shadcn,better-auth \
  --app mobile:expo:nativewind \
  --database postgres \
  --orm drizzle \
  --git --pm bun
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save it. Run it later. Same integrated stack every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;I kept rebuilding the same integrations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;drizzle schema with better-auth tables&lt;/li&gt;
&lt;li&gt;shadcn with theme provider&lt;/li&gt;
&lt;li&gt;TanStack Query wired into Next.js&lt;/li&gt;
&lt;li&gt;Turborepo for web + mobile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each time: 90 minutes of the same work. Each time: slightly different setup leading to bugs later.&lt;/p&gt;

&lt;p&gt;Now: one command. Consistent, working stack every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;Currently supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frameworks: Next.js, Expo, Hono, TanStack Start&lt;/li&gt;
&lt;li&gt;Database: Postgres, MySQL with drizzle or prisma&lt;/li&gt;
&lt;li&gt;Popular modules: shadcn, better-auth, TanStack Query/Form, and more&lt;/li&gt;
&lt;li&gt;Monorepo: Auto turborepo for multi-app projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Roadmap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More frameworks (Remix, Astro)&lt;/li&gt;
&lt;li&gt;More integrations (tRPC, i18n, Stripe)&lt;/li&gt;
&lt;li&gt;Templates examples (dashboards, dApp, SaaS)&lt;/li&gt;
&lt;li&gt;Saved presets&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bunx create-faster
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/plvo/create-faster" rel="noopener noreferrer"&gt;https://github.com/plvo/create-faster&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href="https://create.plvo.dev/docs" rel="noopener noreferrer"&gt;https://create.plvo.dev/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/create-faster" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/create-faster&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MIT licensed. PRs welcome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Discussion
&lt;/h2&gt;

&lt;p&gt;What stack integrations are you tired of rebuilding? What would make this more useful?&lt;/p&gt;

</description>
      <category>cli</category>
      <category>webdev</category>
      <category>nextjs</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
