     |> Task.async_stream(&process_post(&1, proj))
     |> Enum.map(&elem(&1, 1))
     |> Result.aggregate_values(:file_processor)
+    |> case do
+      {:ok, posts} -> {:ok, Enum.sort(posts, &(&1.raw_date > &2.raw_date))}
+      {:error, _} = error -> error
+    end
   end
 
   @spec process_post(Serum.File.t(), Proj.t()) :: Result.t(Post.t())

      {tag, posts}
    end
  end
end

    |> Task.async_stream(&process_page(&1, proj))
    |> Enum.map(&elem(&1, 1))
    |> Result.aggregate_values(:file_processor)
    |> case do
      {:ok, pages} -> {:ok, Enum.sort(pages, &(&1.order < &2.order))}
      {:error, _} = error -> error
    end
  end

  @spec process_page(Serum.File.t(), Proj.t()) :: Result.t(Page.t())
