Package Exports
- starkon
- starkon/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (starkon) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
π Starkon - Next.js Boilerplate & Template Generator
π Create production-ready Next.js applications in seconds, not hours
The most comprehensive Next.js 15 starter template with authentication, internationalization, corporate features, and powerful CLI scaffolding.
β‘ Quick Start
π’ Corporate Website
Perfect for business websites, agencies, and companies:
npx starkon my-company-site --template corporate
cd my-company-site
npm install
npm run devπ― Landing Page
Optimized for product launches and marketing pages:
npx starkon my-landing --template landing
cd my-landing
npm install
npm run devπ Full-Stack App
Complete with authentication and internationalization:
npx starkon my-app --template standard
cd my-app
npm install
npm run devYour Next.js app will be running at http://localhost:3000 π
π― Template Library
Choose the perfect starting point for your specific use case:
π’ Corporate Template β New
Complete business website with content management system.
npx starkon company-website --template corporatePerfect for:
- Corporate websites
- Agency portfolios
- Business landing pages
- Service companies
Includes:
- π Pages: Home, About, Services, Blog, Gallery, Contact
- π§© Components: ServiceCard, TeamMember, BlogCard, GalleryItem
- π Content System: Built-in content management with TypeScript interfaces
- π¨ Professional Design: Clean, modern business aesthetic
- π± Responsive: Mobile-optimized layouts
Excludes: Authentication system, i18n complexity for cleaner corporate focus
π― Landing Template β Popular
Single-page marketing websites optimized for conversions.
npx starkon product-launch --template landingPerfect for:
- Product launches
- SaaS marketing sites
- Portfolio websites
- Event pages
Includes:
- π¨ Sections: Hero, Features, Testimonials, CTA, Contact
- β‘ Animations: Smooth scroll-triggered animations with Framer Motion
- π Forms: Contact forms with validation
- π― CTA Optimized: Conversion-focused design patterns
Excludes: Authentication, i18n, dashboard components for faster loading
ποΈ Standard Template (Full-Featured)
Complete full-stack setup with all enterprise features.
npx starkon enterprise-app --template standardPerfect for:
- SaaS applications
- Admin dashboards
- Enterprise tools
- Multi-user platforms
Includes:
- π Authentication: JWT-based auth with session management
- π i18n: English/Turkish with easy language addition
- π Dashboard: Admin panels and user management
- π‘οΈ Security: Protected routes, XSS protection
- π¨ Complete UI Kit: 30+ production-ready components
β‘ Basic Template
Essential Next.js setup without complexity.
npx starkon simple-app --template basicPerfect for:
- Small projects
- Prototypes
- Learning Next.js
- Quick experiments
Includes: Next.js 15, TypeScript, Tailwind CSS, ESLint Excludes: Authentication, i18n, complex UI components
π Dashboard Template
Admin dashboard optimized for data-heavy applications.
npx starkon admin-panel --template dashboardPerfect for:
- Admin dashboards
- Analytics tools
- Data management
- Internal tools
Includes: Dashboard layout, data tables, charts integration Excludes: Public marketing pages
π― Minimal Template
Bare-bones Next.js setup for maximum control.
npx starkon minimal-app --template minimalPerfect for:
- Custom implementations
- Learning projects
- Starting from scratch
Includes: Next.js 15, TypeScript only Excludes: Everything else - build your own way
ποΈ Architecture Overview
Project Structure
starkon-app/
βββ src/
β βββ app/ # Next.js App Router
β β βββ (auth)/ # π Protected route group
β β β βββ dashboard/ # Main dashboard
β β β βββ settings/ # User settings
β β β βββ layout.tsx # Auth layout wrapper
β β βββ (corporate)/ # π’ Corporate route group
β β β βββ about/ # Company info
β β β βββ services/ # Services catalog
β β β βββ blog/ # Blog system
β β β βββ gallery/ # Project gallery
β β β βββ layout.tsx # Corporate layout
β β βββ (authentication)/ # Login/register flows
β β β βββ login/
β β β βββ register/
β β β βββ verify-email/
β β βββ layout.tsx # Root layout
β βββ components/ # Reusable components
β β βββ core/ # π§© Base UI (Button, Input, Card, etc.)
β β βββ corporate/ # π’ Business components
β β β βββ ServiceCard.tsx
β β β βββ TeamMember.tsx
β β β βββ BlogCard.tsx
β β β βββ GalleryItem.tsx
β β βββ sections/ # π― Landing page sections
β β β βββ Hero.tsx
β β β βββ Features.tsx
β β β βββ Testimonials.tsx
β β βββ ui/ # Complex components
β β βββ layout/ # Layout components
β βββ lib/ # Core utilities
β β βββ content.ts # π Content management system
β β βββ services/ # API services & auth
β β βββ validations/ # Zod schemas
β β βββ utils.ts # Helper utilities
β βββ hooks/ # Custom React hooks
β βββ providers/ # Context providers
β βββ locales/ # π i18n translations
βββ public/ # Static assets
βββ tailwind.config.mjs # Tailwind configuration
βββ next.config.mjs # Next.js configurationTechnology Stack
Core Framework:
- Next.js 15 - App Router, Server Components, optimized performance
- TypeScript - Full type safety and developer experience
- Tailwind CSS - Utility-first styling with custom design system
UI & Design:
- Radix UI - Accessible, unstyled component primitives
- Framer Motion - Smooth animations and transitions
- Lucide React - Beautiful, consistent icon library
- CSS Variables - Dynamic theming support
State & Data:
- React Query - Server state management and caching
- Zustand - Lightweight client state management
- React Hook Form - Performant forms with validation
Development:
- ESLint - Code linting with Next.js rules
- Prettier - Code formatting with Tailwind plugin
- Jest - Unit testing framework
- React Testing Library - Component testing utilities
π Authentication System
Features
- JWT Tokens - Secure access and refresh token system
- Auto-refresh - Automatic token renewal with 5-minute buffer
- Session Management - Persistent login with "Remember Me"
- Protected Routes - Middleware-based route protection
- Mock Development - Built-in test users for development
Development Users
// Available test accounts
admin@example.com / admin123 // Full admin access
user@example.com / user123 // Standard user
demo@example.com / demo123 // Demo accountUsage
import { useAuth } from '@/hooks/useAuth'
function Dashboard() {
const { user, logout, isAuthenticated } = useAuth()
if (!isAuthenticated) return <LoginForm />
return <h1>Welcome {user.name}!</h1>
}π Internationalization
Built-in Language Support
- English (en) - Complete translations
- Turkish (tr) - Native language support
- Browser Detection - Automatic language detection
- URL Persistence - Language state in URL parameters
Adding New Languages
# 1. Create translation file
src/locales/es/translation.json
# 2. Add to supported locales
src/lib/locale-utils.tsUsage
import { useTranslation } from 'react-i18next'
function Component() {
const { t } = useTranslation()
return <h1>{t('welcome.title')}</h1>
}π¨ UI Component System
Core Components (30+)
// Form Components
<Button variant="default | outline | ghost" size="sm | md | lg" />
<Input type="text | email | password" />
<Textarea placeholder="Enter text..." />
<Checkbox checked={true} />
<Switch enabled={true} />
// Layout Components
<Card>
<CardHeader>
<CardTitle>Title</CardTitle>
</CardHeader>
<CardContent>Content</CardContent>
</Card>
// Data Display
<DataTable data={data} columns={columns} />
<Badge variant="default | secondary | outline" />
<Avatar src="/avatar.jpg" fallback="JD" />
// Navigation
<Tabs defaultValue="tab1">
<TabsList>
<TabsTrigger value="tab1">Tab 1</TabsTrigger>
</TabsList>
</Tabs>
// Feedback
<Alert variant="default | destructive">
<AlertTitle>Alert Title</AlertTitle>
<AlertDescription>Description</AlertDescription>
</Alert>Corporate Components
// Service showcase
<ServiceCard
title="Web Development"
description="Custom web solutions"
features={["React", "Next.js", "TypeScript"]}
icon={Code}
href="/services/web"
/>
// Team member display
<TeamMember
name="John Doe"
role="Lead Developer"
bio="10+ years experience"
image="/team/john.jpg"
social={{ linkedin: "...", github: "..." }}
skills={["React", "Node.js", "AWS"]}
/>
// Blog post cards
<BlogCard
title="Getting Started with Next.js"
excerpt="Learn the fundamentals..."
author={{ name: "Jane Smith", avatar: "/authors/jane.jpg" }}
category="Tutorial"
readingTime="5 min read"
publishedAt="2024-01-15"
/>Landing Page Sections
// Hero section with CTA
<Hero
title="Build Amazing Apps"
subtitle="Next.js boilerplate for rapid development"
primaryAction="Get Started"
secondaryAction="View Demo"
/>
// Feature showcase
<Features
title="Everything You Need"
features={[
{ title: "Fast Setup", icon: Zap, description: "..." },
{ title: "TypeScript", icon: Shield, description: "..." }
]}
/>
// Social proof
<Testimonials
title="What Developers Say"
testimonials={[
{ name: "Developer", role: "CTO", content: "Amazing tool!" }
]}
/>π οΈ Development Workflow
Getting Started
# 1. Create project
npx starkon my-project --template corporate
# 2. Setup development
cd my-project
npm install
# 3. Start development server
npm run dev
# 4. Open browser
open http://localhost:3000Code Quality
# Linting and formatting
npm run lint # ESLint check
npm run lint:fix # Auto-fix ESLint errors
npm run prettier # Format code
npm run prettier:check # Check formatting
# Type checking
npm run type-check # TypeScript validation
# Testing
npm test # Run test suite
npm run test:watch # Watch mode testing
npm run test:coverage # Coverage reportBuild and Deploy
# Production build
npm run build
# Analyze bundle size
npm run analyze # Opens webpack-bundle-analyzer
# Start production server
npm run startπ CLI Reference
Basic Usage
npx starkon <project-name> [options]Options
| Option | Description | Example |
|---|---|---|
--template <type> |
Choose template type | --template corporate |
--skip-git |
Skip git repository initialization | - |
--skip-update-check |
Skip version update check | - |
--verbose |
Show detailed output | - |
--config-set <key=value> |
Set user configuration | --config-set locale=en |
--config-get <key> |
Get configuration value | --config-get defaultTemplate |
--clear-cache |
Clear template cache | - |
Template Types
| Template | Use Case | Command |
|---|---|---|
standard |
Full-stack apps with auth + i18n | npx starkon app --template standard |
corporate |
Business websites | npx starkon company --template corporate |
landing |
Marketing/product pages | npx starkon landing --template landing |
dashboard |
Admin panels | npx starkon admin --template dashboard |
basic |
Simple projects | npx starkon simple --template basic |
minimal |
Bare-bones setup | npx starkon minimal --template minimal |
Advanced Examples
# Corporate website with git skipped
npx starkon acme-corp --template corporate --skip-git
# Landing page with verbose output
npx starkon product-launch --template landing --verbose
# Set default template for future projects
npx starkon --config-set defaultTemplate=corporate
# Check current configuration
npx starkon --config-get locale
# Clear template cache
npx starkon --clear-cacheπ Feature Comparison
| Feature | Standard | Corporate | Landing | Dashboard | Basic | Minimal |
|---|---|---|---|---|---|---|
| Core | ||||||
| Next.js 15 | β | β | β | β | β | β |
| TypeScript | β | β | β | β | β | β |
| Tailwind CSS | β | β | β | β | β | β |
| Authentication | ||||||
| JWT Auth System | β | β | β | β | β | β |
| Protected Routes | β | β | β | β | β | β |
| User Management | β | β | β | β | β | β |
| Internationalization | ||||||
| i18n Support | β | β | β | β | β | β |
| Multi-language | β | β | β | β | β | β |
| UI Components | ||||||
| Core UI Kit | β | β | β | β | β | β |
| Corporate Components | β | β | β | β | β | β |
| Landing Sections | β | β | β | β | β | β |
| Dashboard Components | β | β | β | β | β | β |
| Pages & Routing | ||||||
| Public Pages | β | β | β | β | β | β |
| Corporate Pages | β | β | β | β | β | β |
| Auth Pages | β | β | β | β | β | β |
| Performance | ||||||
| Bundle Size | Large | Medium | Small | Medium | Small | Tiny |
| Setup Time | 2-3 min | 1-2 min | 1 min | 2 min | 30 sec | 15 sec |
π Deployment Guide
π’ Vercel (Recommended)
Zero-configuration deployment for Next.js apps:
# Install Vercel CLI
npm install -g vercel
# Deploy
vercel
# Production deployment
vercel --prodFeatures:
- Automatic builds on git push
- Edge functions support
- Built-in analytics
- Custom domains
π Netlify
Great for static and hybrid apps:
# Build for deployment
npm run build
# Deploy to Netlify
netlify deploy --prod --dir=.nextπ΅ Docker
Containerized deployment:
# Dockerfile included in template
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]# Build and run
docker build -t my-starkon-app .
docker run -p 3000:3000 my-starkon-appβοΈ Other Platforms
- Railway:
railway deploy - Render: Connect GitHub repository
- AWS Amplify: Push to connected git branch
- Google Cloud:
gcloud app deploy
βοΈ Configuration
Environment Variables
# API Configuration
NEXT_PUBLIC_API_URL=http://localhost:3001/api
NODE_ENV=development
# Authentication (Standard template)
NEXTAUTH_SECRET=your-secret-key
NEXTAUTH_URL=http://localhost:3000
# Database (if using)
DATABASE_URL=postgresql://user:pass@localhost:5432/db
# Analytics (optional)
NEXT_PUBLIC_GA_ID=G-XXXXXXXXXXUser Configuration
# Set default template
npx starkon --config-set defaultTemplate=corporate
# Set preferred package manager
npx starkon --config-set preferredPackageManager=pnpm
# Set default locale
npx starkon --config-set locale=en
# Disable telemetry
npx starkon --config-set telemetryEnabled=falseπ§ͺ Testing
Running Tests
npm test # Run all tests
npm run test:watch # Watch mode
npm run test:coverage # Coverage reportWriting Tests
import { render, screen } from '@testing-library/react'
import { Button } from '@/components/core/button'
test('Button renders correctly', () => {
render(<Button>Click me</Button>)
expect(screen.getByRole('button')).toHaveTextContent('Click me')
})π¨ Customization
Theme System
// Custom theme configuration
// tailwind.config.mjs
export default {
theme: {
extend: {
colors: {
primary: {
50: 'hsl(210 40% 98%)',
// ... your brand colors
}
}
}
}
}Component Variants
// Using class-variance-authority
import { cva } from 'class-variance-authority'
const buttonVariants = cva('base-styles', {
variants: {
variant: {
default: 'bg-primary text-white',
outline: 'border border-primary text-primary',
},
size: {
sm: 'px-3 py-1.5 text-sm',
lg: 'px-6 py-3 text-lg',
}
}
})π Available Scripts
Development
npm run dev # Next.js development server (Turbo mode)
npm run build # Production build
npm run start # Production server
npm run analyze # Bundle analyzer (set ANALYZE=true)Code Quality
npm run lint # ESLint check
npm run type-check # TypeScript validation
npm run prettier # Code formatting
npm run prettier:check # Check formatting onlyTesting
npm test # Jest test runner
npm run test:watch # Watch mode testing
npm run test:coverage # Generate coverage reportπ Migration Guide
From Create Next App
# 1. Create Starkon project
npx starkon my-app --template basic
# 2. Copy your existing code
cp -r old-project/src/pages/* new-project/src/app/
cp -r old-project/components/* new-project/src/components/
# 3. Update imports
# Change: import { Button } from '../components/Button'
# To: import { Button } from '@/components/core/button'From Other Boilerplates
- Extract your custom components to
src/components/ - Move API logic to
src/lib/services/ - Update styling to use Tailwind classes
- Add TypeScript types in
src/types/
π€ Contributing
We welcome contributions to make Starkon even better!
Development Setup
# Clone repository
git clone https://github.com/zzafergok/starkon.git
cd starkon
# Install dependencies
npm install
# Start development
npm run dev
# Run tests
npm testCreating New Templates
# 1. Add template to index.js TEMPLATES object
# 2. Create template-specific components
# 3. Test template generation
# 4. Update README.md
# 5. Submit PRGuidelines
- Code Quality: Follow ESLint and Prettier rules
- Testing: Add tests for new features
- Documentation: Update README for new features
- TypeScript: Maintain full type safety
π Performance
Bundle Analysis
# Analyze your build
ANALYZE=true npm run build
# Opens webpack-bundle-analyzer in browserOptimization Features
- Automatic Code Splitting - Route-based splitting
- Image Optimization - Next.js Image component
- Font Optimization - Google Fonts optimization
- Static Generation - ISG and SSG support
- Edge Runtime - Faster cold starts
π οΈ Troubleshooting
Common Issues
Build Errors:
# Clear Next.js cache
rm -rf .next
# Clear npm cache
npm cache clean --force
# Reinstall dependencies
rm -rf node_modules package-lock.json
npm installTypeScript Errors:
# Check types without building
npm run type-check
# Clear TypeScript cache
rm -rf node_modules/.cacheAuthentication Issues:
# Check token in browser storage
# DevTools -> Application -> Session Storage -> tokens
# Clear all auth data
localStorage.clear()
sessionStorage.clear()Getting Help
- π Bug Reports: GitHub Issues
- π¬ Questions: Discussions
- π§ Contact: zafer@starkon.website
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
Core Technologies:
- Next.js - The React framework for production
- Radix UI - Low-level accessible UI primitives
- Tailwind CSS - Utility-first CSS framework
- React Query - Powerful data synchronization
Inspiration:
- shadcn/ui - Component design patterns
- T3 Stack - TypeScript-first development
- Vercel Templates - Deployment optimization
π Ready to Build Something Amazing?
Get Started β’ View Examples β’ Read Docs
Made with β€οΈ by Zafer GΓΆk
β If Starkon helped you ship faster, please give us a star on GitHub!
π Stats
- π¨ 30+ UI Components ready to use
- π Complete Auth System with JWT tokens
- π 2 Languages supported (English, Turkish)
- π± 6 Templates for different use cases
- β‘ < 30 seconds from CLI to running app
- π Production Ready - no additional setup needed