Skip to content

Commit 3e6573b

Browse files
authored
0.5.X (#26)
* Refactor to shadcn-style direct imports (STARTUP-93) (#24) * feat: refactor to shadcn-style direct imports (STARTUP-93) - Refactor @startupkit/analytics to minimal core with peer dependencies - Update @startupkit/auth to use flexible peer dependencies (>=1.3.0) - Update @repo/analytics to import directly from posthog-js and rudderstack - Update @repo/auth to import directly from better-auth - Remove version lock-in - projects control all upstream dependencies - Add comprehensive documentation of shadcn principle - Both packages build successfully The shadcn principle: Import directly from upstream. Only use @startupkit/* when it adds real value (utilities, orchestration, conventions). Closes STARTUP-93 * lockfile * lockfile * lint * fixes * lint * drop top level analytics * fix * lockfile * typecheck * feat: implement shadcn-style package strategy (STARTUP-93) - Remove @startupkit/analytics entirely (not needed) - Remove RudderStack dependency (PostHog handles everything) - Update @startupkit/auth to use flexible peer dependencies (>=1.3.0) - Update @repo/analytics to import directly from posthog-js/posthog-node - Update @repo/auth to import directly from better-auth - Add comprehensive package strategy documentation - Add withAuth and handler exports to @repo/auth/server - Fix email template props and types The shadcn principle: Import directly from upstream libraries. Only use @startupkit/* when it adds real value (like @startupkit/auth helpers). Benefits: - No version lock-in - upgrade posthog/better-auth anytime - You own the code - @repo/* packages are yours to customize - Simpler architecture - PostHog only, no RudderStack - Better TypeScript support with direct imports Closes STARTUP-93 * revert * revert * revert * chore: upgrade to Next.js 16.0.0 and React 19 - Upgrade Next.js from 15.3.0 to 16.0.0 - Update @types/node to 22.12.0 (for vite compatibility) - Update @types/react to 19.0.1 - Update @types/react-dom to 19.0.2 - Fix @startupkit/auth peer dependency to support Next.js >=14.0.0 - React 19 peer warnings from Radix UI are expected (React 19 is backward compatible) * bump next/react * add otp client again * fix readme * fix: add type assertions for better-auth client plugins The adminClient and emailOTPClient plugins have complex type signatures that require type assertions to work properly. This is a better-auth type system limitation. * cleanup * wip analytics package * analytics clenaup * lockfile * remove markdown spam * lint * package * fix type errors * actually error on pnpm install fail * fix repo where we pull templates from * better phrase * Ditch prisma, switch to drizzle (#25) * switch to drizzle * fix: add allowEmptyPaths to replace-in-file to handle edge cases Addresses STARTUP-92 * fix: prevent duplicate /templates/repo in degit source path When --repo includes /templates/repo with a branch, don't append it again. Addresses STARTUP-92 * feat: export TypeScript types from Drizzle schema Export User, Account, Session, Team, TeamMember, and Verification types for use by other packages. Addresses STARTUP-92 * fix: add drizzle-orm dependency and fix AuthConfig types - Add drizzle-orm to @repo/auth dependencies - Update AuthConfig users type to accept table definitions Addresses STARTUP-92 * fix: use Record<string, never> for users type to allow build The more restrictive type with unknown fields was preventing TypeScript from compiling the eq() operations with Drizzle columns. Addresses STARTUP-92 * fix: use any type for users to accept Drizzle table types Record<string, never> was too restrictive and prevented Drizzle PgTableWithColumns from being assigned. Using any allows full compatibility. Addresses STARTUP-92 * fix: use proper Drizzle PgTableWithColumns type instead of any Import PgTableWithColumns from drizzle-orm/pg-core for type safety while maintaining compatibility with Drizzle table structures. Addresses STARTUP-92 * fix: use minimal type interface for users parameter Avoid importing Drizzle types in @startupkit/auth to prevent version conflicts between package and template instances. Use minimal interface with just { id: unknown } since that's all we need for the eq() operation. Addresses STARTUP-92 * fix: use generic object type with ts-expect-error for Drizzle tables Use TUsers extends object as a generic parameter to accept Drizzle tables without importing Drizzle types (which causes version conflicts). Use @ts-expect-error for accessing users.id in implementation since TypeScript can't verify the generic has this property at compile time, but it will exist at runtime. This avoids any/unknown types while maintaining type safety. Addresses STARTUP-92 * adding centralized config * refactor auth * get rid of erroneous docs * fix types * readme updated, type fixes * update readme * add biome to packages (#27) * add biome * adding biome * fixing lint * fix lint * lint typecheck step * lint fix * fix typecheck * lint * Add agents.md management (#28) * adding ruler for agents * add missing gemini and qwen * ignore * fix gitignore * baseline ruler * wip agents.md * updates * add missing ignores for template * set prefs for startupkit agents * remove jobs (#29) * remove (#30) * remove * fix tests * run parallel * cleanup * rename * rename (#31) * Remove packages/utils (#32) * remove utils we dont need this anymore: * more * remove this junk * Add OpenPanel (#33) * add openpanel * memo * lint * fixing typecheck * adding link/unlink * convert github action to use script * make proper react component * refactor openpanel * we've ported readme to public repo, we can remove this * Next@16 (#34) * Refactor project configuration and dependencies - Removed ESLint configuration file (.eslintrc.json). - Updated Next.js configuration in apps/home/next.config.mjs to use turbopack and simplified rewrites. - Changed build script in apps/home/package.json to use webpack. - Updated package dependencies in apps/home/package.json to use catalog references for various libraries. - Modified TypeScript configuration in apps/home/tsconfig.json to include target and updated JSX settings. - Updated pnpm-lock.yaml with new package versions and resolved dependencies. - Adjusted workspace configuration in pnpm-workspace.yaml to include new catalogs and dependencies. - Cleaned up template configurations for Next.js to align with new standards. * use sk next tsconfig * fix next tsconfig * fix * fixes * fixes * lint * remove webpack and turbo not required * Adding GA, refactor OpenMeter (#35) * adding GA * Refactor GA * moving openpanel * add missing * refactor * much simpler analytics setup * remove dupe openpanel * fix, lint * cleanup * lint * simplify * fix * add second param * fix email, fixes STARTUP-103 * Adding ahrefs provider (#36) * adding ahrefs * lint * lockfile * mby fix * remove admin client for now
1 parent 35dc4bc commit 3e6573b

File tree

151 files changed

+12597
-11772
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

151 files changed

+12597
-11772
lines changed

.eslintrc.json

Lines changed: 0 additions & 10 deletions
This file was deleted.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Lint & Typecheck
2+
3+
on:
4+
pull_request
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
lint:
11+
runs-on: ubuntu-latest
12+
env:
13+
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
14+
TURBO_TEAM: ribera
15+
steps:
16+
- uses: actions/checkout@v4
17+
- uses: pnpm/action-setup@v4
18+
with:
19+
20+
run_install: false
21+
- uses: actions/setup-node@v4
22+
with:
23+
node-version: "22"
24+
cache: "pnpm"
25+
- run: pnpm install --frozen-lockfile
26+
- run: pnpm lint
27+
28+
typecheck:
29+
runs-on: ubuntu-latest
30+
env:
31+
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
32+
TURBO_TEAM: ribera
33+
steps:
34+
- uses: actions/checkout@v4
35+
- uses: pnpm/action-setup@v4
36+
with:
37+
38+
run_install: false
39+
- uses: actions/setup-node@v4
40+
with:
41+
node-version: "22"
42+
cache: "pnpm"
43+
- run: pnpm install --frozen-lockfile
44+
- run: pnpm typecheck

.github/workflows/templates-build.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ jobs:
4444
pkg.pnpm = pkg.pnpm || {};
4545
pkg.pnpm.overrides = {
4646
'@startupkit/auth': 'link:' + workspace + '/packages/auth',
47-
'@startupkit/analytics': 'link:' + workspace + '/packages/analytics',
48-
'@startupkit/utils': 'link:' + workspace + '/packages/utils'
47+
'@startupkit/analytics': 'link:' + workspace + '/packages/analytics'
4948
};
5049
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
5150
console.log('Overrides added:', pkg.pnpm.overrides);
@@ -102,8 +101,7 @@ jobs:
102101
pkg.pnpm = pkg.pnpm || {};
103102
pkg.pnpm.overrides = {
104103
'@startupkit/auth': 'link:' + workspace + '/packages/auth',
105-
'@startupkit/analytics': 'link:' + workspace + '/packages/analytics',
106-
'@startupkit/utils': 'link:' + workspace + '/packages/utils'
104+
'@startupkit/analytics': 'link:' + workspace + '/packages/analytics'
107105
};
108106
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
109107
console.log('Overrides added:', pkg.pnpm.overrides);

0 commit comments

Comments
 (0)