I would solve that with a little code vs a plugin.
Modify a template (of a child theme preferably) it might be page.php or header.php, depends on your theme. Add a function to functions.php to query for # of posts since whatever time you want your window to be. If posts are returned output html to create the alert bar styled to your taste; you could display the post count if you want to.
EDIT:
I modified your code below. get_post_types accepts three parameters. You provided the first, the other two are optional. The third parameter $operator defaults to 'and'. You ware asking for a list of post types that are public AND are not built-in type; that will only return you CPTs. Adding the 2nd and 3rd param below asks for posts type that are public OR not built-in.
$args = array(
'public' => true,
'_builtin' => false
);
$output = 'names'; // default = 'names'
$operator = 'or'; // default = 'and'
$post_types = get_post_types( $args, $output, $operator );
foreach ( $post_types as $post_type ) {
echo '<p>' . $post_type . '</p>';
$args = array( 'numberposts' => '1', 'post_type' => $post_type); // replace n with the number of posts
$recent_posts = wp_get_recent_posts( $args );
foreach( $recent_posts as $recent ){
echo '<a href="' . get_permalink($recent["ID"]) . '" title="' . $recent["post_title"] . '" >' . $recent["post_title"] . '</a>';
}
}
The code above will return:
Array
(
[post] => post
[page] => page
[attachment] => attachment
[my-cpt] => my-cpt
)
Assuming you don't want to return pages or attachments, but just want the built-in 'post' and your custom post types you can skip the call to get_post_types and just create an array to suit your needs:
$post_types = array( 'post', 'my-cpt' );
If you don’t always know the name of CPTs (i.e. created by plugins), or you have many CPTs you can call get_post_types just as you were then add 'post' to the $post_types array.
$args = array(
'public' => true,
'_builtin' => false
);
$post_types = get_post_types( $args );
$post_types['post'] = 'post';