LogoShipSaaS

Components

Learn about the components available in ShipSaaS and how to use them effectively

ShipSaaS provides a streamlined set of UI components consisting of Shadcn UI, marketing blocks, and business components, structured cleanly for easy extensibility.

Component Structure

Components are located in the src/components directory and are organized as follows:

src

  • components/
    • ui/
    • blocks/
    • auth/
    • blog/
    • layout/
    • shared/
    • settings/
    • theme/
    • pricing/
    • data-table/
    • dashboard/

Other directories partitioned by functionality (such as payment, admin, analytics, chatbox, contact, roadmap) follow the exact same organizational pattern.

Shadcn/ui & Base UI

The src/components/ui directory stores the application's base UI building blocks from Shadcn/ui. All components are built on top of Base UI, providing an unstyled, accessible foundation.

CategoryComponentsDescription
FormsInput, Textarea, Select, Checkbox, Radio Group, Switch, Form, Input Group, FieldForm controls and validation
OverlaysDialog, Alert Dialog, Sheet, Drawer, Popover, Hover CardModals and floating content
NavigationTabs, Navigation Menu, Breadcrumb, Menubar, Pagination, SidebarMenus and routing navs
Data DisplayTable, Card, Calendar, Carousel, Avatar, BadgeTables, cards, and display
LayoutAccordion, Collapsible, Separator, Scroll Area, ResizableStructure and layout elements
FeedbackAlert, Progress, Skeleton, Spinner, Command, EmptyStatus and loading indicators

Usage Notes:

  • It is recommended not to modify files within src/components/ui directly to facilitate seamless synchronization of template updates.
  • These components are periodically kept in sync with upstream Shadcn/ui + Base UI updates.
  • src/components/ui is excluded from Biome's linting and formatting rules.

Marketing Blocks

Landing page and marketing components are centralized under src/components/blocks. They can be imported directly into the homepage, pricing pages, and more:

  • Herohero.tsx, homepage.tsx
  • Featuresfeatures.tsx, features2.tsx, features3.tsx
  • Stats, Logo Cloud, Testimonialsstats.tsx, logo-cloud.tsx, testimonials.tsx
  • FAQs, CTAfaqs.tsx, calltoaction.tsx
  • Integration, Newsletterintegration.tsx, integration2.tsx, newsletter-card.tsx
  • Pricingpricing.tsx (pricing tables composite component)

You can copy and modify these components as needed for your product. For more component references, check Tailark.

Business Components

Feature-specific components are located in their respective directories within src/components:

DirectoryPurpose
authLogin, registration, forgot/reset password, and social sign-in
blogBlog card, post grid, and blog pagination
layoutNavbar, footer, sidebar, dashboard layouts, and content containers
sharedLogo, toaster, form success/error alerts, and user profile buttons/avatars
settingsUser profile, billing, security settings, user files, API keys, and notifications
themeTheme Provider and dark/light mode toggle switch
pricingPricing cards, comparison tables, checkout buttons, and customer billing portals
data-tableReusable data tables featuring filtering, sorting, and pagination toolbars
dashboardDashboard widgets, metrics cards, and charts

When adding new components, place them in the corresponding feature directory, name them using PascalCase, and try to reuse components/ui and shared components as much as possible.

Example:

// src/components/dashboard/section-cards.tsx
import { Card } from "@/components/ui/card"

export function SectionCards() {
  return (
    <Card>
      {/* ... */}
    </Card>
  )
}

References

Next Steps

Now that you understand the components in ShipSaaS, continue reading:

On this page