Dev Log Feed

Building in Public

Development log

Follow our journey as we build. Here are the latest updates from our engineering team.

Beta program opens to first 500 users

MilestoneTeam
Mar 18

Added real-time collaboration with cursor presence

FeatureSarah
Mar 15

Resolved edge case in OAuth token refresh flow

FixAlex
Mar 14

Reduced API response time by 40% with query optimization

ImprovementMike
Mar 12

Refactored notification service to support webhooks

CommitEmma
Mar 10

Implemented dark mode across all dashboard views

FeatureJohn
Mar 8

Fixed timezone handling in scheduled reports

FixSarah
Mar 6
About this block

Dev Log FeedPRO

Coming soon section with a chronological development log feed showing recent updates, commits, and milestones. Perfect for building in public and keeping the community engaged.

ComingSoon10: Dev Log Feed

A centered coming-soon section that stacks a badge, heading, and description above a chronological log feed, where each entry pairs a type-colored icon with a message, a type pill, an optional author, and a date across a divider-separated list.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/comingsoon10?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/comingsoon10?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/comingsoon10.tsx.

Quick start

The installed file exports comingsoon10Demo alongside the block: the exact props behind the preview above. Spread it to get a working dev log feed in one line.

tsx
import { ComingSoon10, comingsoon10Demo } from "@/components/beste/block/comingsoon10";

export default function Page() {
  return <ComingSoon10 {...comingsoon10Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { ComingSoon10 } from "@/components/beste/block/comingsoon10";

export default function Page() {
  return (
    <ComingSoon10
      badge={{ label: "Building in public", variant: "secondary" }}
      heading="Development log"
      description="Follow our journey as we build, with the latest updates from the team."
      entries={[
        {
          type: "milestone",
          message: "Beta program opens to first 500 users",
          date: "Mar 18",
          author: "Team",
        },
        {
          type: "feature",
          message: "Added real-time collaboration with cursor presence",
          date: "Mar 15",
          author: "Sarah",
        },
        {
          type: "fix",
          message: "Resolved edge case in OAuth token refresh flow",
          date: "Mar 14",
        },
      ]}
      labels={{
        feature: "Feature",
        fix: "Fix",
        improvement: "Improvement",
        milestone: "Milestone",
        commit: "Commit",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Eyebrow badge rendered above the heading via shadcn Badge
headingstringSection heading
descriptionstringSupporting paragraph under the heading
entriesLogEntry[][]Chronological log entries
labels{ feature?: string; fix?: string; improvement?: string; milestone?: string; commit?: string }Type-pill text for each log type
classNamestringExtra classes for the outer <section>
ts
type LogType = "feature" | "fix" | "improvement" | "milestone" | "commit";

interface LogEntry {
  type: LogType;
  message: string;
  date: string;
  author?: string;
}

Behavior notes

  • Each entry looks up a logTypeConfig record keyed by its type to pick the icon (Sparkles, Bug, CheckCircle2, Rocket, or Code2), its icon color, and the matching pill color classes.
  • The pill text comes from getTypeLabel, which maps each type to the matching labels string with "Feature", "Fix", "Improvement", "Milestone", and "Commit" fallbacks.
  • The feed renders only when entries.length > 0; each row draws a bottom border-b divider except the last, computed from index !== entries.length - 1.
  • The author span renders only when an entry supplies one, sitting beside the type pill, while the date is pinned to the right of each row.
  • The badge, heading, and description each render only when their prop is present.
  • Every string is plain text with no inline markup parsing, so HTML passed in shows as escaped text; uses the shadcn Badge primitive for the eyebrow and lucide icons for the per-entry types.

More Coming Soon blocks

View all Coming Soon
FREE

comingsoon2

Development Progress Milestones

Coming soon section with a progress bar and milestone tracker showing development stages like Design, Backend, Frontend, and Testing. Perfect for keeping users informed about product development progress.

PRO

comingsoon7

Launch Roadmap Timeline

Coming soon section with a vertical timeline showing launch phases, dates, and status indicators. Perfect for communicating a clear release plan and keeping users informed about upcoming milestones.

PRO

comingsoon9

Bento Stats Dashboard

Coming soon section with a bento-grid of live build stats like commits, test coverage, uptime, and team size. Perfect for building in public with transparent engineering metrics.

PRO

comingsoon78

Public Roadmap Coming Soon

A pre-launch section that publishes remaining work instead of a date, with an image tile floating a live release tracker over hairline rows marked shipped, in testing, or queued.

FREE

comingsoon1

Countdown Timer Launch

Coming soon section with a live countdown timer showing days, hours, minutes, and seconds until launch. Perfect for product launches, event announcements, or building anticipation for new features.

PRO

comingsoon6

Waitlist with Avatars

Coming soon section with an email waitlist input, stacked subscriber avatars, and a live join count. Perfect for building early traction and social proof before launch.