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)

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

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.

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 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.

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.

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:
| Status | In public listings | Public detail page | In sitemap? |
|---|---|---|---|
Draft | No | Visible (preview, noindex) | No |
Pending | No | Visible (preview, noindex) | No |
Scheduled | No | Visible (preview, noindex) | No |
Published | Yes | Visible (full page) | Yes |
Archived — hidden from the admin queue by default; admin toggles the status filter to surface:
| Status | In public listings | Public detail page | In sitemap? |
|---|---|---|---|
Rejected | No | 404 | No |
Deleted | No | Visible (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 status | Trigger label | Popover options (target status) |
|---|---|---|
Pending | Review | Publish now → Published / Schedule for later → Scheduled / Reject submission → Rejected |
Draft | Publish | Publish now → Published / Schedule for later → Scheduled |
Scheduled | Scheduled | Revert to draft → Draft / Schedule for later → Scheduled (reschedule) / Publish now → Published |
Published | Published | Unpublish → Draft / Published (no-op) |
Rejected | Rejected | Move back to review → Pending / Convert to draft → Draft |
Deleted | Deleted | Restore 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
Publishedrow is soft-deleted: status flips toDeleted, 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
──▶ PublishedA few notes worth holding onto:
Published → Deletedis 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. RejectedandDeletedtools 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
RejectedorDeletedtool's URL via the public submission form flips the status back toPendingand 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
RejectedorDeletedin the filter dropdown to surface archived tools.
Last updated on