{"users":[{"id":6,"username":"rohitpaulk","name":"rohitpaulk","avatar_template":"/user_avatar/forum.codecrafters.io/rohitpaulk/{size}/6_2.png","admin":true,"trust_level":2},{"id":7,"username":"andy1li","name":"andy1li","avatar_template":"/user_avatar/forum.codecrafters.io/andy1li/{size}/10_2.png","admin":true,"trust_level":3},{"id":20589,"username":"constantinopleeaves","name":"constantinopleeaves","avatar_template":"/user_avatar/forum.codecrafters.io/constantinopleeaves/{size}/25615_2.png","trust_level":1},{"id":2536,"username":"learning-dev","name":"learning-dev","avatar_template":"/user_avatar/forum.codecrafters.io/learning-dev/{size}/3708_2.png","trust_level":1},{"id":21101,"username":"FrankLouw","name":"FrankLouw","avatar_template":"/user_avatar/forum.codecrafters.io/franklouw/{size}/26201_2.png","trust_level":1},{"id":19905,"username":"crstead","name":"crstead","avatar_template":"/user_avatar/forum.codecrafters.io/crstead/{size}/24770_2.png","trust_level":1},{"id":16011,"username":"Zone-Infinity","name":"Zone-Infinity","avatar_template":"/user_avatar/forum.codecrafters.io/zone-infinity/{size}/20234_2.png","trust_level":0},{"id":1807,"username":"goose-977","name":"goose-977","avatar_template":"/user_avatar/forum.codecrafters.io/goose-977/{size}/32_2.png","trust_level":1},{"id":1375,"username":"shide1989","name":"shide1989","avatar_template":"/user_avatar/forum.codecrafters.io/shide1989/{size}/2042_2.png","trust_level":1},{"id":16216,"username":"IMElTgp","name":"IMElTgp","avatar_template":"/user_avatar/forum.codecrafters.io/imeltgp/{size}/20476_2.png","trust_level":0},{"id":19165,"username":"yinchi","name":"yinchi","avatar_template":"/user_avatar/forum.codecrafters.io/yinchi/{size}/23920_2.png","trust_level":2},{"id":2965,"username":"smith558","name":"smith558","avatar_template":"/user_avatar/forum.codecrafters.io/smith558/{size}/4327_2.png","trust_level":1},{"id":17415,"username":"user-0xcafe","name":"user-0xcafe","avatar_template":"/user_avatar/forum.codecrafters.io/user-0xcafe/{size}/21858_2.png","trust_level":1},{"id":18127,"username":"thisisran","name":"thisisran","avatar_template":"/user_avatar/forum.codecrafters.io/thisisran/{size}/22726_2.png","trust_level":0}],"primary_groups":[],"flair_groups":[],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/announcements/10?page=1","per_page":30,"top_tags":[{"id":9,"name":"challenge:shell","slug":"challenge-shell"},{"id":1,"name":"challenge:redis","slug":"challenge-redis"},{"id":8,"name":"challenge:grep","slug":"challenge-grep"},{"id":11,"name":"challenge:kafka","slug":"challenge-kafka"},{"id":6,"name":"challenge:dns-server","slug":"challenge-dns-server"},{"id":3,"name":"challenge:git","slug":"challenge-git"},{"id":5,"name":"challenge:http-server","slug":"challenge-http-server"},{"id":10,"name":"challenge:interpreter","slug":"challenge-interpreter"},{"id":7,"name":"challenge:bittorrent","slug":"challenge-bittorrent"},{"id":12,"name":"challenge:claude-code","slug":"challenge-claude-code"}],"topics":[{"fancy_title":"About the Announcements category","id":151,"title":"About the Announcements category","slug":"about-the-announcements-category","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2024-04-18T23:49:11.341Z","last_posted_at":null,"bumped":true,"bumped_at":"2024-04-18T23:49:56.224Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"Announcements from CodeCrafters staff","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":327,"like_count":0,"has_summary":false,"last_poster_username":"rohitpaulk","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":6,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Rust 1.96 is now available!","id":16179,"title":"Rust 1.96 is now available!","slug":"rust-1-96-is-now-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-06-23T21:53:15.886Z","last_posted_at":"2026-06-23T21:53:15.951Z","bumped":true,"bumped_at":"2026-06-23T21:53:15.951Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":129,"like_count":1,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"We&rsquo;re pausing new challenges","id":16129,"title":"We're pausing new challenges","slug":"were-pausing-new-challenges","posts_count":16,"reply_count":6,"highest_post_number":18,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/c/c/ccf2040504085afcf462ecec15d3a4e836f54ca8_2_1024x546.jpeg","created_at":"2026-05-23T08:16:27.276Z","last_posted_at":"2026-06-06T16:00:31.281Z","bumped":true,"bumped_at":"2026-06-06T16:00:31.281Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":1554,"like_count":44,"has_summary":false,"last_poster_username":"FrankLouw","category_id":10,"op_like_count":14,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":20589,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":2536,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":21101,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"May 2026 Roadmap","id":16048,"title":"May 2026 Roadmap","slug":"may-2026-roadmap","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/f/e/fe15994a9b7086d4d92b77206f65fde976c4856d_2_1024x318.png","created_at":"2026-05-06T07:10:26.100Z","last_posted_at":"2026-05-19T19:06:57.831Z","bumped":true,"bumped_at":"2026-05-19T19:06:57.831Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":462,"like_count":4,"has_summary":false,"last_poster_username":"crstead","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":7,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":20589,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":19905,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Dart track now supports Redis","id":16114,"title":"Dart track now supports Redis","slug":"dart-track-now-supports-redis","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-05-18T04:49:44.468Z","last_posted_at":"2026-05-18T04:49:44.532Z","bumped":true,"bumped_at":"2026-05-18T04:49:44.532Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":1,"name":"challenge:redis","slug":"challenge-redis"}],"tags_descriptions":{},"views":66,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New in Gleam Track: Git Challenge + v1.16 Support","id":16107,"title":"New in Gleam Track: Git Challenge + v1.16 Support","slug":"new-in-gleam-track-git-challenge-v1-16-support","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/c/f/cf6184b880df41c7f0b91013d61a62a5c555a88e_2_1024x637.png","created_at":"2026-05-14T08:25:45.436Z","last_posted_at":"2026-05-14T08:25:45.500Z","bumped":true,"bumped_at":"2026-05-14T08:25:45.500Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":40,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"PHP track now supports SQLite","id":16103,"title":"PHP track now supports SQLite","slug":"php-track-now-supports-sqlite","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-05-12T02:53:54.307Z","last_posted_at":"2026-05-12T02:53:54.366Z","bumped":true,"bumped_at":"2026-05-12T02:53:54.366Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":18,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New extension: Parameter Expansion (Shell)","id":16030,"title":"New extension: Parameter Expansion (Shell)","slug":"new-extension-parameter-expansion-shell","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/a/0/a0fd211899e04b5389b0b9cbf085e5932a1ca61e_2_1024x537.jpeg","created_at":"2026-05-07T19:02:14.551Z","last_posted_at":"2026-05-07T19:02:14.551Z","bumped":false,"bumped_at":"2026-05-07T19:02:14.551Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":51,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Elixir track now supports Git","id":16094,"title":"Elixir track now supports Git","slug":"elixir-track-now-supports-git","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-05-07T16:43:59.443Z","last_posted_at":"2026-05-07T16:43:59.511Z","bumped":true,"bumped_at":"2026-05-07T16:43:59.511Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":3,"name":"challenge:git","slug":"challenge-git"}],"tags_descriptions":{},"views":26,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Say hi to Andy!","id":1639,"title":"Say hi to Andy!","slug":"say-hi-to-andy","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2024-09-06T12:17:23.004Z","last_posted_at":"2026-05-06T14:24:42.816Z","bumped":true,"bumped_at":"2026-05-06T14:24:42.816Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":177,"like_count":8,"has_summary":false,"last_poster_username":"Zone-Infinity","category_id":10,"op_like_count":6,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":16011,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New extension: Programmable Completion (Shell)","id":16019,"title":"New extension: Programmable Completion (Shell)","slug":"new-extension-programmable-completion-shell","posts_count":6,"reply_count":4,"highest_post_number":6,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/7/1/71854dd1b929d51c099f3a7ebb886e82b0d6b334_2_1024x537.jpeg","created_at":"2026-05-04T14:26:35.522Z","last_posted_at":"2026-05-05T06:34:15.911Z","bumped":true,"bumped_at":"2026-05-05T06:34:15.911Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":9,"name":"challenge:shell","slug":"challenge-shell"}],"tags_descriptions":{},"views":118,"like_count":2,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":1807,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"PHP track now supports DNS server","id":16071,"title":"PHP track now supports DNS server","slug":"php-track-now-supports-dns-server","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-28T00:38:20.869Z","last_posted_at":"2026-04-28T00:38:20.869Z","bumped":false,"bumped_at":"2026-04-28T00:38:20.869Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":6,"name":"challenge:dns-server","slug":"challenge-dns-server"}],"tags_descriptions":{},"views":26,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Odin dev-2026-04 is now available!","id":16066,"title":"Odin dev-2026-04 is now available!","slug":"odin-dev-2026-04-is-now-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/8/3/83b549c244b5b3b6eba2d1ddc716998b02b59651_2_1024x461.png","created_at":"2026-04-24T05:00:54.886Z","last_posted_at":"2026-04-24T05:00:54.960Z","bumped":true,"bumped_at":"2026-04-24T05:00:54.960Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":95,"like_count":1,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New Feature: Custom commit messages","id":16062,"title":"New Feature: Custom commit messages","slug":"new-feature-custom-commit-messages","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/0/9/0906300356ff9b75406e381b5773dc869072cc73_2_1024x399.png","created_at":"2026-04-23T05:27:49.086Z","last_posted_at":"2026-04-23T05:27:49.086Z","bumped":false,"bumped_at":"2026-04-23T05:27:49.086Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":75,"like_count":7,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":7,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Ruby 4.0 is now available!","id":16058,"title":"Ruby 4.0 is now available!","slug":"ruby-4-0-is-now-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-20T06:32:02.396Z","last_posted_at":"2026-04-20T06:32:02.457Z","bumped":true,"bumped_at":"2026-04-20T06:32:02.457Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":43,"like_count":1,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Rust 1.95 is now available!","id":16057,"title":"Rust 1.95 is now available!","slug":"rust-1-95-is-now-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-20T05:22:59.930Z","last_posted_at":"2026-04-20T05:22:59.994Z","bumped":true,"bumped_at":"2026-04-20T05:22:59.994Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":43,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New extension: AOF Persistence (Redis)","id":16029,"title":"New extension: AOF Persistence (Redis)","slug":"new-extension-aof-persistence-redis","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/1/9/19f51ca2c805077c910a4622b788a792dfb1f9df_2_1024x537.jpeg","created_at":"2026-04-17T17:56:57.377Z","last_posted_at":"2026-04-17T17:56:57.377Z","bumped":false,"bumped_at":"2026-04-17T17:56:57.377Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":1,"name":"challenge:redis","slug":"challenge-redis"}],"tags_descriptions":{},"views":383,"like_count":4,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"OCaml track now supports Git","id":16052,"title":"OCaml track now supports Git","slug":"ocaml-track-now-supports-git","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-16T19:54:43.857Z","last_posted_at":"2026-04-16T19:54:43.926Z","bumped":true,"bumped_at":"2026-04-16T19:54:43.926Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":3,"name":"challenge:git","slug":"challenge-git"}],"tags_descriptions":{},"views":31,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Kotlin 2.3 is now available","id":16047,"title":"Kotlin 2.3 is now available","slug":"kotlin-2-3-is-now-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-13T00:29:23.034Z","last_posted_at":"2026-04-13T00:29:23.116Z","bumped":true,"bumped_at":"2026-04-13T00:29:23.116Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":33,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New extension: Optimistic Locking (Redis)","id":16015,"title":"New extension: Optimistic Locking (Redis)","slug":"new-extension-optimistic-locking-redis","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/0/4/041bd789337bbfe758ccccee68442523cce25f8f_2_1024x537.jpeg","created_at":"2026-04-08T10:57:04.801Z","last_posted_at":"2026-04-08T10:57:04.801Z","bumped":false,"bumped_at":"2026-04-08T10:57:04.801Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":1,"name":"challenge:redis","slug":"challenge-redis"}],"tags_descriptions":{},"views":271,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New in Scala track: BitTorrent challenge + v3.8 Support","id":16034,"title":"New in Scala track: BitTorrent challenge + v3.8 Support","slug":"new-in-scala-track-bittorrent-challenge-v3-8-support","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-06T22:38:37.155Z","last_posted_at":"2026-04-06T22:38:37.155Z","bumped":false,"bumped_at":"2026-04-06T22:38:37.155Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":7,"name":"challenge:bittorrent","slug":"challenge-bittorrent"}],"tags_descriptions":{},"views":28,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Rust 1.94 is now available!","id":16020,"title":"Rust 1.94 is now available!","slug":"rust-1-94-is-now-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-01T19:59:42.165Z","last_posted_at":"2026-04-01T19:59:42.242Z","bumped":true,"bumped_at":"2026-04-01T19:59:42.242Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":49,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"April 2026 Roadmap","id":16016,"title":"April 2026 Roadmap","slug":"april-2026-roadmap","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/1/9/19aeb8c45e49523af7856dbed50d691cb1e9c87e_2_1024x290.png","created_at":"2026-04-01T17:04:01.534Z","last_posted_at":"2026-04-01T17:04:01.534Z","bumped":false,"bumped_at":"2026-04-01T17:04:01.534Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":232,"like_count":2,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New extension: Background Jobs (Shell)","id":15957,"title":"New extension: Background Jobs (Shell)","slug":"new-extension-background-jobs-shell","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/b/2/b2b58a447f34d14cc0482e7e0cd5b075df9eab47_2_1024x537.jpeg","created_at":"2026-04-01T05:33:16.206Z","last_posted_at":"2026-04-01T05:33:16.206Z","bumped":false,"bumped_at":"2026-04-01T05:33:16.206Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":9,"name":"challenge:shell","slug":"challenge-shell"}],"tags_descriptions":{},"views":262,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Docker challenge is deprecated","id":626,"title":"Docker challenge is deprecated","slug":"docker-challenge-is-deprecated","posts_count":8,"reply_count":2,"highest_post_number":8,"image_url":null,"created_at":"2024-06-17T20:37:07.610Z","last_posted_at":"2026-03-18T14:17:06.004Z","bumped":true,"bumped_at":"2026-03-18T14:17:06.004Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":1426,"like_count":21,"has_summary":false,"last_poster_username":"smith558","category_id":10,"op_like_count":3,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":6,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1375,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":16216,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":19165,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2965,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"March 2026 Roadmap","id":15954,"title":"March 2026 Roadmap","slug":"march-2026-roadmap","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/3/1/31a868632e767dc8219c72baad92d8efa8edfec4_2_1024x290.png","created_at":"2026-03-09T22:46:58.805Z","last_posted_at":"2026-03-09T22:46:58.805Z","bumped":false,"bumped_at":"2026-03-09T22:46:58.805Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":9,"name":"challenge:shell","slug":"challenge-shell"}],"tags_descriptions":{},"views":319,"like_count":4,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":4,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"New extension: Filename Completion (Shell)","id":15935,"title":"New extension: Filename Completion (Shell)","slug":"new-extension-filename-completion-shell","posts_count":4,"reply_count":0,"highest_post_number":4,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/7/c/7cbd54eebcb5eb8eecdb81b5aec6623443cc8619_2_1024x537.jpeg","created_at":"2026-02-26T00:32:17.592Z","last_posted_at":"2026-03-09T15:53:02.707Z","bumped":true,"bumped_at":"2026-03-09T15:53:02.707Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":9,"name":"challenge:shell","slug":"challenge-shell"}],"tags_descriptions":{},"views":429,"like_count":3,"has_summary":false,"last_poster_username":"user-0xcafe","category_id":10,"op_like_count":1,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":7,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Recent Poster","user_id":6,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":17415,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Language Support: Build your own Claude Code","id":15929,"title":"Language Support: Build your own Claude Code","slug":"language-support-build-your-own-claude-code","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://canada1.discourse-cdn.com/flex003/uploads/codecrafters/optimized/3X/f/2/f2bc1a68c512c5152b084c63a88f6e2ddbd29e50_2_1024x537.jpeg","created_at":"2026-02-23T11:28:47.040Z","last_posted_at":"2026-02-23T11:28:47.040Z","bumped":false,"bumped_at":"2026-02-23T11:28:47.040Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":109,"like_count":2,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Rust 1.93 is now available!","id":15909,"title":"Rust 1.93 is now available!","slug":"rust-1-93-is-now-available","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-02-16T10:24:52.321Z","last_posted_at":"2026-02-16T10:24:52.321Z","bumped":false,"bumped_at":"2026-02-16T10:24:52.321Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":62,"like_count":0,"has_summary":false,"last_poster_username":"andy1li","category_id":10,"op_like_count":0,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":7,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Scala track now supports Interpreter","id":15601,"title":"Scala track now supports Interpreter","slug":"scala-track-now-supports-interpreter","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2025-12-03T18:39:21.593Z","last_posted_at":"2026-02-13T01:37:58.952Z","bumped":true,"bumped_at":"2026-02-13T01:37:58.952Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[],"tags_descriptions":{},"views":64,"like_count":3,"has_summary":false,"last_poster_username":"thisisran","category_id":10,"op_like_count":2,"pinned_globally":false,"featured_link":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":7,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":18127,"primary_group_id":null,"flair_group_id":null}]}]}}