A Next.js template for small businesses featuring high-quality feminine design. Build and deploy a professional small business website with speed and get highly ranked on Google. Manage content and images with AI using Gallop software. No CMS required.
š Demo: speedwell.gallop.software
šØ Template: gallop.software/templates
š¦ Repository: github.com/gallop-software/speedwell
š·ļø Category: Small Business Template
Speedwell is part of the Gallop template ecosystem, designed specifically to work seamlessly with AI assistants like GitHub Copilot, Claude, and ChatGPT. Built with an opinionated codebase optimized for AI efficiency, Gallop templates enable you to:
Gallop templates are trusted by professionals achieving #1 Google rankings in competitive search terms like "dallas architects," "lubbock attorneys," and "birth center."
npm install
npm run dev
Open http://localhost:3000 to view your site.
npm run buildnpm run start
speedwell/
āāā src/
ā āāā app/ # Next.js App Router
ā ā āāā (default)/ # Default layout route group
ā ā ā āāā layout.tsx # Default navbar layout
ā ā ā āāā category/ # Category pages
ā ā ā āāā services/ # Service pages
ā ā ā āāā .../ # Other page routes
ā ā āāā (hero)/ # Hero layout route group
ā ā ā āāā layout.tsx # Hero navbar layout
ā ā ā āāā page.tsx # Home page
ā ā ā āāā testimonials/ # Testimonials page
ā ā ā āāā .../ # Other hero pages
ā ā āāā (post)/ # Blog post route group
ā ā ā āāā layout.tsx # Post layout with gradient
ā ā ā āāā post/[slug]/ # Dynamic blog posts
ā ā āāā (demo)/ # Demo/preview route group
ā ā ā āāā block/ # Block preview routes
ā ā āāā (one-page-site)/ # Single-page layout group
ā ā āāā (alternate)/ # Alternate navbar group
ā ā āāā (color-navbar)/ # Colored navbar group
ā ā āāā api/ # API routes
ā ā āāā sitemap_index.xml/ # Sitemap generation
ā ā āāā error.tsx # Error boundary
ā ā āāā layout.tsx # Root layout
ā ā āāā metadata.tsx # Site metadata
ā ā āāā not-found.tsx # 404 page
ā ā āāā sitemap.ts # Sitemap config
ā ā āāā README.md # Layouts documentation
ā ā āāā *.png, *.ico # App icons and favicon
ā āāā blog/ # Blog post content (TSX files)
ā āāā blocks/ # Reusable content blocks
ā ā āāā hero-*.tsx # Hero sections (1-15)
ā ā āāā content-*.tsx # Content sections (1-11)
ā ā āāā call-to-action-*.tsx # CTAs (1-6)
ā ā āāā contact-*.tsx # Contact sections (1-4)
ā ā āāā cover-*.tsx # Cover sections
ā ā āāā profile-*.tsx # Profile sections
ā ā āāā testimonial-*.tsx # Testimonials
ā ā āāā about-*.tsx # About sections
ā ā āāā accordion-1.tsx # Accordion component
ā ā āāā application-1.tsx # Application section
ā ā āāā blog-*.tsx # Blog listing
ā ā āāā partners-1.tsx # Partners section
ā ā āāā pricing-1.tsx # Pricing section
ā ā āāā README.md # Blocks documentation
ā āāā components/ # React components
ā ā āāā navbar/ # Main navigation
ā ā āāā navbar-2/ # Alternate navigation
ā ā āāā navbar-3/ # Third navigation variant
ā ā āāā blog/ # Blog components
ā ā āāā search/ # Search components
ā ā āāā lightbox/ # Lightbox gallery
ā ā āāā page-wrapper.tsx # Page wrapper with structured data
ā ā āāā accordion.tsx
ā ā āāā button.tsx
ā ā āāā card-*.tsx
ā ā āāā contact-form.tsx
ā ā āāā footer.tsx
ā ā āāā gallery.tsx
ā ā āāā heading.tsx
ā ā āāā image.tsx
ā ā āāā logo.tsx
ā ā āāā section.tsx
ā ā āāā ...
ā āāā hooks/ # Custom React hooks
ā āāā styles/ # Global styles & fonts
ā ā āāā fonts/ # Font files & management
ā ā āāā globals.css
ā āāā template/ # Page templates
ā āāā tools/ # Utility tools
ā āāā types/ # TypeScript types
ā āāā utils/ # Helper functions
ā āāā state.ts # Global state management
āāā public/
ā āāā blocks/ # Block preview screenshots
ā āāā originals/ # Source images (not deployed)
ā ā āāā portfolio/
ā ā āāā profiles/
ā āāā images/ # Processed images
ā ā āāā portfolio/
ā ā āāā profiles/
ā āāā videos/ # Video assets
ā āāā search-index.json # FlexSearch index
ā āāā speedwell.jpg # Featured image
āāā _data/ # Generated metadata
ā āāā _blog.json # Blog metadata
ā āāā _meta.json # Image metadata
ā āāā _meta-old.json # Backup metadata
ā āāā _fonts/ # Font configurations
ā ā āāā _accent.tsx
ā ā āāā _body.tsx
ā ā āāā _heading.tsx
ā ā āāā _heading2.tsx
ā ā āāā _heading3.tsx
ā āāā _import/ # Import utilities
āāā _scripts/ # Automation scripts
ā āāā process-images.js # Image optimization
ā āāā generate-blog-metadata.mjs
ā āāā generate-blocks-catalog.mjs
ā āāā generate-favicon.js
ā āāā generate-featured-image.js
ā āāā generate-search.mjs
ā āāā generate-search.sh
ā āāā compress-fonts.js
ā āāā convert-pro-blocks.mjs
ā āāā *.md # Script documentation
āāā _docs/ # Documentation
ā āāā content.md
ā āāā deployment.md
āāā next.config.mjs # Next.js configuration
āāā tsconfig.json # TypeScript config
āāā postcss.config.js # PostCSS config
āāā package.json # Dependencies & scripts
āāā .prettierrc # Prettier config
āāā .eslintrc.json # ESLint config
āāā push-env-to-vercel.sh # Environment sync script
npm run dev - Start development server at http://localhost:3000npm run build - Build for production (runs blog metadata first)npm run start - Start production servernpm run lint - Run ESLint checksnpm run images - Process images from public/originals/ to responsive variantsnpm run images:reset - Delete processed images and regenerate allnpm run blog - Generate blog post metadata to _data/_blog.json ā docsnpm run search - Build FlexSearch index for site search ā docsnpm run favicon - Generate favicon files from public/originals/favicon.png ā docsnpm run featured-image - Screenshot homepage for social preview ā docsnpm run blocks - Generate blocks catalog with screenshotsnpm run blocks:screenshots - Force regenerate all block screenshotsnpm run blocks:sort - Sort blocks in catalognpm run blocks:lite - Convert pro blocks ā docsnpm run layouts - Generate layouts catalog from app route groupsnpm run layouts:screenshots - Force regenerate all layout screenshotsnpm run layouts:sort - Sort layouts in catalognpm run fonts - Convert TTF fonts to WOFF2 ā docsnpm run fonts:use - Mark fonts as used in projectnpm run env - Push local .env.local to Vercelnpm run env:prod - Push to production environmentnpm run env:prev - Push to preview environmentnpm run update:check - Check for package updatesnpm run update:patch - Update to latest patch versionsnpm run update:minor - Update to latest minor versionsnpm run update:major - Update to latest major versionsnpm run update:interactive - Interactively choose updatesnpm run update:doctor - Update and test changes incrementallynpm run clean - Remove node_modules, .next, and package-lock.jsonnpm run clean:install - Clean and reinstall all dependenciesDeploy to Vercel with one click:
Or manually:
npm run buildvercel --prod
See Deployment Guide for other platforms and configuration.
Every dependency is battle-tested in production and chosen for stability, performance, and long-term maintainability.
16.0.7 - React framework with App Router19 - UI library4.1.17 - Utility-first CSS framework2.2.9 - Unstyled accessible components2.2.0 - State management12.0.3 - Modern slider/carousel3.25.0 - Image gallery0.8.212 - Full-text search1.19.4 - Search autocomplete2.30.1 - Video player integration12.23.25 - Animation library1.11.19 - Date formatting3.7.2 - DateTime library10.0.0 - Scroll-based animations and lazy loading0.21.0 - Text highlighting2.1.1 - Conditional className utility3.0.0 - URL-friendly slugs19.2.1 - React rendering1.6.1 - Analytics integration16.0.7 - Third-party script optimizationTools for building and developing the site:
5 - Type safety and IntelliSense9 - Code linting3.7.4 - Code formatting4.3.0 - Auto-organize imports0.7.2 - Sort Tailwind classes8.5.6 - CSS transformationsBuild-time tools for content and asset generation:
0.34.5 - Image processing and optimization24.32.0 - Screenshot generation (featured images)8.0.0 - Font compression27.2.0 - HTML parsing for search indexing0.6.2 - XML/RSS feed generationMIT License - see LICENSE for details
Contributors:
Built with ā¤ļø by the team at Gallop