Documentation

Content Management

Learn about the content management system and workflow in Dirstarter

Dirstarter provides a robust content management system that handles both user submissions and admin-created content. This guide explains the complete content workflow and available features.

Content Workflow

User Submissions

Users can submit new tools through the submission form. Each submission includes:

  • Tool details (name, description, URL)
  • Submitter details (name, email)

Submission Form

Admin Review Process

When a tool is submitted:

  • It appears in the admin dashboard under "Draft"
  • If marked as expedited, admins receive immediate notifications
  • Admins can review and accept or delete submissions

Admin Review

Content Scheduling

Once approved, admins can:

  • Schedule the content for future publication
  • Set publication date and time
  • Add final touches to the content
  • Preview how it will appear on the site
  • Notify the submitter by email with a publication date and a link to skip the queue.

Content Scheduling

Automated Processing

The system is capable of automatically processing submissions. Once a draft is created, you can generate a high-quality content and media for it.

  • High-quality AI generated content based on the scraped content
  • Screenshots generated using ScreenshotOne
  • Optimized favicons via Google Favicon API

Automated Processing

Automated Publication

At the scheduled time:

  • A cron job automatically publishes the content
  • Content becomes immediately visible on the site
  • Sitemap is updated and cache is invalidated
  • Email is sent to the submitter with a link to the published content.

Automated Publication

Manual Content Management

Admins can also create and manage content directly through the admin panel. You can structure everything hierarchically, make certain items stand out as featured, and create clear relationships between different pieces of content.

Our admin interface is packed with sophisticated data tables that make managing content feel like a walk in the park. You can filter and sort your way through content, take quick actions right from the table, and handle bulk operations without breaking a sweat. Even with tons of content, you'll stay in control with our intuitive design that makes everything just work.

Data Tables

Tool Statuses

Every tool has a status that determines where it shows publicly and which admin actions are available. There are six statuses across two groups.

Active — visible in the admin queue by default:

StatusIn public listingsPublic detail pageIn sitemap?
DraftNoVisible (preview, noindex)No
PendingNoVisible (preview, noindex)No
ScheduledNoVisible (preview, noindex)No
PublishedYesVisible (full page)Yes

Archived — hidden from the admin queue by default; admin toggles the status filter to surface:

StatusIn public listingsPublic detail pageIn sitemap?
RejectedNo404No
DeletedNoVisible (destructive notice, noindex)No

Rejected is for submissions that didn't meet the directory's criteria. The page returns 404, but the row is preserved so you can re-evaluate later or use the corpus to train submission filters.

Deleted is a soft-delete for previously-published tools. The detail page stays reachable so SEO equity isn't lost, but the tool drops from listings, sitemap, and related-tools queries.

Admin actions per status

When editing a tool, the admin form shows two buttons in the bottom-right:

  • A status button (left, with popover) — its label and contents depend on the current status. Clicking opens a popover with available transitions.
  • A submit button (right, "Update" / "Save Draft") — saves field edits without changing the status.

The transitions exposed by each status's popover:

Source statusTrigger labelPopover options (target status)
PendingReviewPublish now → Published / Schedule for later → Scheduled / Reject submission → Rejected
DraftPublishPublish now → Published / Schedule for later → Scheduled
ScheduledScheduledRevert to draft → Draft / Schedule for later → Scheduled (reschedule) / Publish now → Published
PublishedPublishedUnpublish → Draft / Published (no-op)
RejectedRejectedMove back to review → Pending / Convert to draft → Draft
DeletedDeletedRestore as draft → Draft / Restore to published → Published

Soft vs hard delete

The "Delete" action in the admin tool table — both the row action and the bulk-delete confirmation — picks the right behavior automatically based on each row's current status:

  • A Published row is soft-deleted: status flips to Deleted, the row stays, S3 assets are retained, and the public URL stays reachable. SEO equity is preserved.
  • Any other status (Draft, Pending, Scheduled, Rejected, Deleted) is hard-deleted: the row is removed from the database and S3 assets are cleaned up.

Clicking Delete on a Deleted tool a second time is the escape hatch to fully remove it.

Notify submitter

When transitioning into Published, Scheduled, or Rejected, the popover shows a "Notify submitter via email" checkbox (default checked). Each transition sends a different email template. Uncheck the box to silently transition — useful for spam rejections.

If the rejected tool was on a paid tier (Standard/Premium), the rejection email automatically includes a paragraph telling the submitter we'll process a refund. The refund itself is manual via the Stripe dashboard.

Mental model

Draft     ──▶ Published
          ──▶ Scheduled

Pending   ──▶ Published
          ──▶ Scheduled
          ──▶ Rejected

Scheduled ──▶ Draft (unschedule)
          ──▶ Scheduled (reschedule)
          ──▶ Published

Published ──▶ Draft (unpublish)

Rejected  ──▶ Pending
          ──▶ Draft

Deleted   ──▶ Draft
          ──▶ Published

A few notes worth holding onto:

  • Published → Deleted is not in the in-form popover. Soft-deletion happens via the row/bulk Delete action in the admin table — single source of truth for "delete a tool".
  • Every state has a path back to Draft, so admins can always recover a tool to a clean editing state.
  • Rejected and Deleted tools cannot be upgraded. The /submit/[slug] page 404s, the dashboard Upgrade button is hidden, and the Stripe webhook refuses tier updates as defense-in-depth.
  • Resubmitting a Rejected or Deleted tool's URL via the public submission form flips the status back to Pending and re-triggers the standard "thanks" email so the admin sees it in the queue again.
  • The status filter in the admin tool table defaults to the four active statuses. Tick Rejected or Deleted in the filter dropdown to surface archived tools.

Last updated on

On this page

Join hundreds of directory builders

Build your directory, launch, earn

Don't waste time on Stripe subscriptions or designing a pricing section. Get started today with our battle-tested stack and built-in monetization features.

Get Lifetime Access