# Onboarding Activity Feed

> A onboarding activity feed block.

A shadcn/ui block from the [@blocks-so](https://blocks.so) registry, listed on [shadcn.exchange](https://shadcn.exchange/r/blocks-so/onboarding-05).

- Page, with a live preview: https://shadcn.exchange/r/blocks-so/onboarding-05
- Screenshot: https://abzjhwgwpdpz7ua5.public.blob.vercel-storage.com/shots/blocks-so/onboarding-05-light-702850dae71a6b73.png
- Registry item: https://blocks.so/r/onboarding-05.json
- Categories: onboarding
- Listed: 2026-10-13, source last changed 2026-10-13

## Install

```bash
npx shadcn@latest add https://blocks.so/r/onboarding-05.json
```

Run it in a project that has shadcn/ui set up. It adds the files below and installs what they depend on.

## Files

### `content/components/onboarding/onboarding-05.tsx`

```tsx
import { cn } from '@/lib/utils';

const steps = [
  {
    id: 1,
    type: 'created',
    description: 'Created project "Brand Refresh"',
    user: { name: 'Sarah K.', initial: 'S', bgColor: 'bg-violet-500' },
    activityTime: '3d ago',
  },
  {
    id: 2,
    type: 'created',
    description: 'Uploaded 12 design assets',
    user: { name: 'Marcus L.', initial: 'M', bgColor: 'bg-orange-500' },
    activityTime: '2d ago',
  },
  {
    id: 3,
    type: 'created',
    description: 'Shared prototype with stakeholders',
    user: { name: 'Sarah K.', initial: 'S', bgColor: 'bg-emerald-500' },
    activityTime: '2h ago',
  },
  {
    id: 4,
    type: 'created',
    description: 'Left feedback on homepage layout',
    user: { name: 'Jamie R.', initial: 'J', bgColor: 'bg-fuchsia-500' },
    activityTime: '5min ago',
  },
  {
    id: 5,
    type: 'in progress',
    description: 'Scheduled design review meeting',
    user: { name: 'Team Ops', initial: 'T', bgColor: 'bg-blue-500' },
    activityTime: 'today 2:30pm',
  },
];

export function Onboarding05() {
  return (
    <div className="flex min-h-dvh items-center justify-center bg-background p-4">
      <div className="sm:max-w-lg md:mx-auto">
        <h3 className="font-medium text-foreground">Project activity</h3>
        <p className="mt-1 text-muted-foreground text-sm leading-6">
          Recent updates from your team
        </p>
        <ul className="mt-6 space-y-6 pb-2">
          {steps.map((step, stepIdx) => (
            <li className="relative flex gap-x-3" key={step.id}>
              <div
                className={cn(
                  'absolute top-0 left-0 flex w-6 justify-center',
                  stepIdx === steps.length - 1 ? 'h-6' : '-bottom-6'
                )}
              >
                <span aria-hidden className="w-px bg-border" />
              </div>
              <div className="flex items-start space-x-2">
                <div className="flex items-center space-x-2">
                  <div className="relative flex size-6 flex-none items-center justify-center bg-background">
                    {step.type === 'created' ? (
                      <div className="size-3 rounded-full border border-gray-300 bg-muted/50 ring-4 ring-background" />
                    ) : (
                      <div className="size-3 rounded-full border border-gray-300 bg-background ring-4 ring-background" />
                    )}
                  </div>
                  <span
                    aria-hidden
                    className={cn(
                      step.user.bgColor,
                      'inline-flex size-6 flex-none items-center justify-center rounded-full text-primary-foreground text-xs'
                    )}
                  >
                    {step.user.initial}
                  </span>
                </div>
                <p className="mt-0.5 font-medium text-foreground text-sm">
                  {step.user.name}
                  <span className="font-normal text-muted-foreground">
                    {' '}
                    {step.description}
                  </span>
                  <span className="font-normal text-muted-foreground/60">
                    {' '}
                    &#8729; {step.activityTime}
                  </span>
                </p>
              </div>
            </li>
          ))}
        </ul>
      </div>
    </div>
  );
}
```
