{"users":[{"id":32,"username":"codinghorror","name":"Jeff Atwood","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/codinghorror/{size}/110067_2.png","admin":true,"trust_level":2},{"id":95552,"username":"Moin","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/moin/{size}/554653_2.png","trust_level":3},{"id":115923,"username":"Discourse","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/discourse/{size}/148734_2.png","admin":true,"trust_level":4},{"id":82960,"username":"manuel","name":"Manuel Kostka","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/manuel/{size}/468169_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":4},{"id":119375,"username":"elmuerte","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/elmuerte/{size}/456517_2.png","trust_level":2},{"id":23968,"username":"david","name":"David Taylor","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/david/{size}/157490_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":187793,"username":"AkarinLiu","name":"AkarinLiu","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/akarinliu/{size}/539577_2.png","trust_level":1},{"id":406,"username":"RGJ","name":"Richard - Communiteq","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/rgj/{size}/523185_2.png","flair_name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":94920,"username":"cocococosti","name":"Constanza Abarca","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/cocococosti/{size}/231474_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":150621,"username":"尔德_王","name":"尔德 王","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/尔德_王/{size}/423343_2.png","trust_level":2},{"id":21029,"username":"pmusaraj","name":"Penar Musaraj","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pmusaraj/{size}/119489_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":173987,"username":"cuo_wu","name":"James","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/cuo_wu/{size}/498442_2.png","trust_level":2},{"id":111125,"username":"typed-sigterm","name":"Typed SIGTERM","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/typed-sigterm/{size}/504463_2.png","trust_level":2},{"id":190268,"username":"sk-or-v1-contents","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/sk-or-v1-contents/{size}/547175_2.png","trust_level":2},{"id":27384,"username":"merefield","name":"Robert","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/merefield/{size}/176214_2.png","trust_level":3},{"id":2770,"username":"awesomerobot","name":"Kris","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/awesomerobot/{size}/142900_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":71988,"username":"pmcpa","name":"pmcpa","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/p/8797f3/{size}.png","trust_level":0},{"id":83716,"username":"stuwest","name":"Stu West","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/stuwest/{size}/192400_2.png","trust_level":2},{"id":127856,"username":"Lilly","name":"Lillian ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/lilly/{size}/555832_2.png","trust_level":3},{"id":185831,"username":"sniper756","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/sniper756/{size}/545002_2.png","trust_level":3},{"id":13426,"username":"mcmcclur","name":"Mark McClure","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/mcmcclur/{size}/115456_2.png","trust_level":2},{"id":22295,"username":"Silvanus","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/silvanus/{size}/62831_2.png","trust_level":2},{"id":119529,"username":"kyle315a","name":"","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/k/a587f6/{size}.png","trust_level":0},{"id":174704,"username":"Diego_Rivera_Buendia","name":"Diego Rivera Buendia","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/diego_rivera_buendia/{size}/500083_2.png","trust_level":0},{"id":189191,"username":"nitinkg","name":"Nitin Gupta","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/n/eb8c5e/{size}.png","trust_level":1},{"id":20734,"username":"jamesarobbo","name":"James Robinson","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jamesarobbo/{size}/121843_2.png","trust_level":1},{"id":1995,"username":"zogstrip","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/zogstrip/{size}/512781_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":98059,"username":"marcosbc","name":"Marcos Bjoerkelund","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/marcosbc/{size}/222119_2.png","trust_level":1},{"id":24424,"username":"Eric_Keller","name":"Eric Keller","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/eric_keller/{size}/517693_2.png","trust_level":2},{"id":98939,"username":"isaac","name":"Isaac Janzen","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/isaac/{size}/235758_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":2},{"id":-1,"username":"system","name":"system","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/system/{size}/443519_2.png","admin":true,"moderator":true,"trust_level":4},{"id":160471,"username":"Ethsim2","name":"Ethan ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/ethsim2/{size}/522255_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":1},{"id":117390,"username":"dmke","name":"Dominik Menke","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/dmke/{size}/264041_2.png","trust_level":1},{"id":135392,"username":"NateDhaliwal","name":"Nate Dhaliwal","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/natedhaliwal/{size}/313494_2.png","flair_name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111","flair_group_id":73,"trust_level":3},{"id":35474,"username":"Canapin","name":"Coin-coin le Canapin","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/canapin/{size}/119591_2.png","trust_level":3},{"id":60726,"username":"jrgong","name":"jrgong","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/j/c57346/{size}.png","trust_level":2},{"id":161351,"username":"BrianC","name":"Brian","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/brianc/{size}/487568_2.png","trust_level":2},{"id":15442,"username":"jericson","name":"Jon Ericson","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/jericson/{size}/116215_2.png","flair_name":"support-explorers","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/1/b/d1ba0acf09b9d01f87f9e05bbee1dc5b0e316d5f.png","flair_bg_color":"dddddd","flair_color":"111111","flair_group_id":118,"trust_level":2},{"id":113000,"username":"chapoi","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/chapoi/{size}/537252_2.png","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":113325,"username":"piffy","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/piffy/{size}/254198_2.png","trust_level":2},{"id":22917,"username":"klappradla","name":"Max","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/klappradla/{size}/531604_2.png","trust_level":2},{"id":15209,"username":"pfaffman","name":"Jay Pfaffman","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/pfaffman/{size}/120154_2.png","flair_name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":173218,"username":"gilles","name":null,"avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gilles/{size}/549022_2.png","trust_level":3},{"id":13378,"username":"angus","name":"Angus McLeod","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/angus/{size}/341715_2.png","flair_name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_group_id":142,"trust_level":4},{"id":5795,"username":"mattdm","name":"Matthew Miller","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/mattdm/{size}/216484_2.png","trust_level":2},{"id":113094,"username":"agungor","name":"","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/agungor/{size}/260344_2.png","trust_level":2},{"id":154549,"username":"irregular","name":"sac","avatar_template":"https://avatars.discourse-cdn.com/v4/letter/i/f9ae1b/{size}.png","trust_level":2},{"id":191326,"username":"Mohamed_Ahmed2","name":"Mohamed Ahmed","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/mohamed_ahmed2/{size}/485262_2.png","trust_level":0},{"id":114728,"username":"darkpixlz","name":"Pyx ","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/darkpixlz/{size}/549896_2.png","primary_group_name":"VolunteerMods","flair_name":"VolunteerMods","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_group_id":276,"trust_level":4},{"id":31176,"username":"Bar_Smith","name":"Bar Smith","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/bar_smith/{size}/92338_2.png","trust_level":1},{"id":83597,"username":"Gandharv_Bakshi","name":"Gandharv Bakshi","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/gandharv_bakshi/{size}/192102_2.png","trust_level":1},{"id":189822,"username":"remidm","name":"Rémi Delaporte-Mathurin","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/remidm/{size}/546042_2.png","trust_level":1},{"id":3,"username":"supermathie","name":"Michael Brown","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/supermathie/{size}/507518_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":26605,"username":"LeoDavidson","name":"Leo Davidson","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/leodavidson/{size}/119574_2.png","trust_level":2},{"id":191275,"username":"hanoith2022","name":"Hanoiopt","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/hanoith2022/{size}/549908_2.png","trust_level":1},{"id":1,"username":"sam","name":"Sam Saffron","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/sam/{size}/102149_2.png","primary_group_name":"team","flair_name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_color":"111","flair_group_id":47,"admin":true,"trust_level":3},{"id":181081,"username":"stephtara","name":"Stephanie Booth","avatar_template":"/user_avatar/meta-redesign-2026.discourse.group/stephtara/{size}/517827_2.png","trust_level":3}],"primary_groups":[{"id":47,"name":"team"},{"id":276,"name":"VolunteerMods"}],"flair_groups":[{"id":47,"name":"team","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/b/ebee30bd98aef20357e4a177a5a1e45b877ce088.svg","flair_bg_color":"","flair_color":"111"},{"id":142,"name":"support-experts","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/e/2/e250ec403580530d19e6a9ed42d0d525a51a9dbe.svg","flair_bg_color":"FFFFFF","flair_color":""},{"id":73,"name":"theme_authors","flair_url":"paintbrush","flair_bg_color":"ddd","flair_color":"111"},{"id":118,"name":"support-explorers","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/1/b/d1ba0acf09b9d01f87f9e05bbee1dc5b0e316d5f.png","flair_bg_color":"dddddd","flair_color":"111111"},{"id":276,"name":"VolunteerMods","flair_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/2/7/d/27de051915b8a604d176484cd260d10cfc956d42.svg","flair_bg_color":"","flair_color":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/dev/7?page=1","per_page":30,"top_tags":[{"id":330,"name":"rest-api","slug":"rest-api"},{"id":436,"name":"css","slug":"css"},{"id":973,"name":"dev-news","slug":"dev-news"},{"id":328,"name":"plugin-api","slug":"plugin-api"},{"id":543,"name":"ai","slug":"ai"},{"id":317,"name":"chat","slug":"chat"},{"id":556,"name":"brand-header","slug":"brand-header"},{"id":483,"name":"sidebar","slug":"sidebar"},{"id":150,"name":"dev-install","slug":"dev-install"},{"id":35,"name":"mobile","slug":"mobile"},{"id":466,"name":"rails-console","slug":"rails-console"},{"id":5,"name":"unsupported-install","slug":"unsupported-install"},{"id":107,"name":"webhooks","slug":"webhooks"},{"id":660,"name":"click-counter","slug":"click-counter"},{"id":22,"name":"composer","slug":"composer"},{"id":70,"name":"ember","slug":"ember"},{"id":478,"name":"how-to","slug":"how-to"},{"id":198,"name":"subscriptions","slug":"subscriptions"},{"id":529,"name":"tags","slug":"tags"},{"id":563,"name":"welcome-link-banner","slug":"welcome-link-banner"},{"id":551,"name":"custom-header-links","slug":"custom-header-links"},{"id":278,"name":"development","slug":"development"},{"id":24,"name":"docker","slug":"docker"},{"id":39,"name":"email","slug":"email"},{"id":618,"name":"user-custom-fields","slug":"user-custom-fields"},{"id":2,"name":"badges","slug":"badges"},{"id":241,"name":"calendar-and-events","slug":"calendar-and-events"},{"id":126,"name":"data-explorer","slug":"data-explorer"},{"id":31,"name":"onebox","slug":"onebox"},{"id":87,"name":"advertising","slug":"advertising"},{"id":43,"name":"embedding","slug":"embedding"}],"topics":[{"fancy_title":"Discourse GitHub commit prefix convention","fancy_title_localized":false,"locale":"en","id":19392,"title":"Discourse GitHub commit prefix convention","slug":"discourse-github-commit-prefix-convention","posts_count":2,"reply_count":1,"highest_post_number":11,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05.png","created_at":"2014-08-28T21:32:16.635Z","last_posted_at":"2026-01-10T21:37:02.376Z","bumped":true,"bumped_at":"2026-01-10T21:37:02.376Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"For those who want to bring changes to Discourse’s code, we require that each GitHub commit have one of the following prefixes: \n\n\n\n\nPrefix\nDefinition\n\n\n\n\nFIX\nA bug fix [1]\n\n\nPERF\nA performance improvement\n\n\nUX\nA user in&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":773,"height":204,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05.png"},{"max_width":600,"max_height":600,"width":600,"height":158,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_600x158.png"},{"max_width":400,"max_height":400,"width":400,"height":105,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_400x105.png"},{"max_width":300,"max_height":300,"width":300,"height":79,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_300x79.png"},{"max_width":200,"max_height":200,"width":200,"height":52,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/3/c/3c2d6fdd842384af41da5ba3a1e5bae39ab88f05_2_200x52.png"}],"tags":[],"tags_descriptions":{},"views":13221,"like_count":56,"has_summary":false,"last_poster_username":"Moin","category_id":7,"op_like_count":53,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user inquired whether 'I18N' should be added to Discourse’s required commit prefix list, following the initial announcement of standardized prefixes for code contributions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":32,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":95552,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"About the Development category","fancy_title_localized":false,"locale":"en","id":1026,"title":"About the Development category","slug":"about-the-development-category","posts_count":1,"reply_count":1,"highest_post_number":1,"image_url":null,"created_at":"2013-02-06T08:43:41.559Z","last_posted_at":"2013-02-06T08:43:41.601Z","bumped":true,"bumped_at":"2023-08-09T13:19:55.222Z","archetype":"regular","unseen":false,"pinned":true,"unpinned":null,"excerpt":"The category for all things Discourse Development. Building a customization for yourself or the community? Then this is the category for you! Learn more…","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":10716,"like_count":5,"has_summary":false,"last_poster_username":"Discourse","category_id":7,"op_like_count":5,"pinned_globally":false,"featured_link":null,"ai_topic_gist":null,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":115923,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Open-Source Hangout","fancy_title_localized":false,"locale":"en","id":404923,"title":"Open-Source Hangout","slug":"open-source-hangout","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://us1.discourse-cdn.com/meta2026bsbx/original/4X/7/b/b/7bb52d39294c76ced4cd2c8b847508361173bdda.jpeg","created_at":"2026-06-16T12:11:33.622Z","last_posted_at":"2026-06-16T12:11:33.722Z","bumped":true,"bumped_at":"2026-06-16T12:11:33.722Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":640,"height":428,"url":"https://us1.discourse-cdn.com/meta2026bsbx/original/4X/7/b/b/7bb52d39294c76ced4cd2c8b847508361173bdda.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":401,"url":"https://us1.discourse-cdn.com/meta2026bsbx/optimized/4X/7/b/b/7bb52d39294c76ced4cd2c8b847508361173bdda_2_600x401.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":267,"url":"https://us1.discourse-cdn.com/meta2026bsbx/optimized/4X/7/b/b/7bb52d39294c76ced4cd2c8b847508361173bdda_2_400x267.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":200,"url":"https://us1.discourse-cdn.com/meta2026bsbx/optimized/4X/7/b/b/7bb52d39294c76ced4cd2c8b847508361173bdda_2_300x200.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":133,"url":"https://us1.discourse-cdn.com/meta2026bsbx/optimized/4X/7/b/b/7bb52d39294c76ced4cd2c8b847508361173bdda_2_200x133.jpeg"}],"tags":[],"tags_descriptions":{},"views":3,"like_count":0,"has_summary":false,"last_poster_username":"manuel","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The developer hangout event is scheduled for June 16, 2026, from 17:00 to 18:00 Atlantic/Canary time, held via Google Meet, recurring every four weeks with a 15-minute notification reminder.","event_starts_at":"2026-07-14T16:00:00.000Z","event_ends_at":"2026-07-14T17:00:00.000Z","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":82960,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Github actions failing &ldquo;Check SKIP_DB_AND_REDIS bootability&rdquo; step","fancy_title_localized":false,"locale":"en","id":404152,"title":"Github actions failing \"Check SKIP_DB_AND_REDIS bootability\" step","slug":"github-actions-failing-check-skip-db-and-redis-bootability-step","posts_count":6,"reply_count":4,"highest_post_number":9,"image_url":null,"created_at":"2026-05-31T11:10:59.628Z","last_posted_at":"2026-06-09T20:26:54.493Z","bumped":true,"bumped_at":"2026-06-09T20:26:54.493Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I had an issue where the recently added “Check SKIP_DB_AND_REDIS bootability” step failed for one of my plugins. \n\nSKIP_DB_AND_REDIS boot failed. Make sure the database is not being accessed during the Rails boot process&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":77,"like_count":8,"has_summary":false,"last_poster_username":"elmuerte","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The user discovered that local reproduction of the bootability failure requires explicitly referencing the plugin controller class, indicating that the local environment does not fully load plugin code during the boot check as GitHub Actions does.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":119375,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Refactoring Flarum import script using AI LLM to migrate to Discourse","fancy_title_localized":true,"locale":"zh_CN","id":404732,"title":"利用 AI LLM 重构 Flarum 导入脚本以迁移至 Discourse","slug":"ai-llm-flarum-discourse","posts_count":2,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2026-06-08T07:12:28.673Z","last_posted_at":"2026-06-08T20:07:55.382Z","bumped":true,"bumped_at":"2026-06-09T05:10:35.517Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"To ensure a smooth migration to Discourse, I integrated the DeepSeek official API into Visual Studio Code and refactored the Flarum import script using an AI LLM. It has been tested and is ready to use.\nGist link: https://gist.github.com/AkarinLiu/4dae346b2f100dff2bc197d95579826b","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":95,"like_count":5,"has_summary":false,"last_poster_username":"cocococosti","category_id":7,"op_like_count":2,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"AkarinLiu shared a Discourse import script for Flarum, refactored using DeepSeek's API, which has been tested and confirmed to work. Cocococosti thanked the contributor and expressed interest in learning more about the migration process.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":187793,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":406,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Most Recent Poster","user_id":94920,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Connect Discourse to WeChat Mini Program","fancy_title_localized":false,"locale":"en","id":312085,"title":"Connect Discourse to WeChat Mini Program","slug":"connect-discourse-to-wechat-mini-program","posts_count":13,"reply_count":8,"highest_post_number":16,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22_2_1024x554.jpeg","created_at":"2024-06-14T11:32:00.997Z","last_posted_at":"2026-06-06T15:16:08.841Z","bumped":true,"bumped_at":"2026-06-06T15:16:08.841Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"There is an instant messaging tool in China called WeChat. It has a function called (Mini Program), which is actually a built-in browser. If Discourse can be added to the Mini Program, it will be a great opportunity for &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1920,"height":1040,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22.jpeg"},{"max_width":1024,"max_height":1024,"width":1024,"height":554,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22_2_1024x554.jpeg"},{"max_width":800,"max_height":800,"width":800,"height":433,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22_2_800x433.jpeg"},{"max_width":600,"max_height":600,"width":600,"height":325,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22_2_600x325.jpeg"},{"max_width":400,"max_height":400,"width":400,"height":216,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22_2_400x216.jpeg"},{"max_width":300,"max_height":300,"width":300,"height":162,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22_2_300x162.jpeg"},{"max_width":200,"max_height":200,"width":200,"height":108,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/9/e/b/9eb7d432582f413d027b3296e9307e591abe1c22_2_200x108.jpeg"}],"tags":[],"tags_descriptions":{},"views":447,"like_count":14,"has_summary":false,"last_poster_username":"sk-or-v1-contents","category_id":7,"op_like_count":4,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Participants discuss technical hurdles for integrating Discourse into WeChat Mini Programs, highlighting content moderation API requirements, login complications, and the strategic value of embedding the forum within the app for Chinese users.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":150621,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":21029,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":173987,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":111125,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":190268,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Introducing a new JS build system for Discourse core","fancy_title_localized":false,"locale":"en","id":403908,"title":"Introducing a new JS build system for Discourse core","slug":"introducing-a-new-js-build-system-for-discourse-core","posts_count":2,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2026-05-29T10:12:41.174Z","last_posted_at":"2026-05-29T10:22:26.385Z","bumped":true,"bumped_at":"2026-05-29T10:22:26.385Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Following successful modernization of the theme and plugin build systems over the last year, we’re now ready to move forward with making a similar upgrade in Discourse core. \nDespite being a complete overhaul of the core&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"dev-news","slug":"dev-news"}],"tags_descriptions":{},"views":154,"like_count":37,"has_summary":false,"last_poster_username":"merefield","category_id":7,"op_like_count":33,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse is migrating its core JavaScript build system from ember-cli/webpack to rolldown, promising 80% faster development builds and native ES Modules while maintaining full backward compatibility for production installations.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Improving automatic switching of mobile/desktop modes","fancy_title_localized":false,"locale":"en","id":384280,"title":"Improving automatic switching of mobile/desktop modes","slug":"improving-automatic-switching-of-mobile-desktop-modes","posts_count":12,"reply_count":6,"highest_post_number":12,"image_url":null,"created_at":"2025-09-29T18:49:12.662Z","last_posted_at":"2026-05-26T08:23:52.245Z","bumped":true,"bumped_at":"2026-05-26T08:23:52.245Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Historically, Discourse has had two distinct views for mobile and desktop. Over the years, these have tended to converge towards more modern viewport-width-based design. Those modern patterns are documented here. \nIn the&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"dev-news","slug":"dev-news"}],"tags_descriptions":{},"views":444,"like_count":36,"has_summary":false,"last_poster_username":"david","category_id":7,"op_like_count":13,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse has permanently removed the legacy mobile mode setting, enforcing viewport-width-based detection to improve tablet and folding phone experiences, while addressing specific theme issues without reverting the change.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":71988,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":83716,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":127856,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Optimizing the homepage display of the Foundation theme","fancy_title_localized":true,"locale":"zh_CN","id":403802,"title":"优化Foundation theme首页显示效果","slug":"foundation-theme","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22_2_1024x478.png","created_at":"2026-05-26T07:35:31.363Z","last_posted_at":"2026-05-26T07:35:31.564Z","bumped":true,"bumped_at":"2026-05-26T07:35:31.564Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Solve the issue in this post\nAfter the rebuild update just now, the font on the homepage became very small - Contributions / User Experience - Discourse Meta\nOptimize homepage display via custom components:\nBefore optimization:\n  \nAfter optimization:\n  \nCustom component CSS code:\n/* ========== Ensure consistent top and bottom margins for category rows ========== */\n.category-list tbody tr td {\n  padding-top: 10px !important;\n  padding-…","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1114,"height":521,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":478,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22_2_1024x478.png"},{"max_width":800,"max_height":800,"width":800,"height":374,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22_2_800x374.png"},{"max_width":600,"max_height":600,"width":600,"height":280,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22_2_600x280.png"},{"max_width":400,"max_height":400,"width":400,"height":187,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22_2_400x187.png"},{"max_width":300,"max_height":300,"width":300,"height":140,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22_2_300x140.png"},{"max_width":200,"max_height":200,"width":200,"height":93,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/f/6/9/f69a16a718c81806ee281d5e76db648054e15d22_2_200x93.png"}],"tags":[],"tags_descriptions":{},"views":75,"like_count":1,"has_summary":false,"last_poster_username":"sniper756","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user shared CSS code to optimize the Foundation theme homepage display, achieving improved spacing, font sizes, and alignment for category lists and featured topics.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":185831,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"A basic Discourse archival tool","fancy_title_localized":false,"locale":"en","id":62614,"title":"A basic Discourse archival tool","slug":"a-basic-discourse-archival-tool","posts_count":25,"reply_count":41,"highest_post_number":58,"image_url":null,"created_at":"2017-05-12T20:20:12.074Z","last_posted_at":"2025-04-30T02:30:28.021Z","bumped":true,"bumped_at":"2026-05-22T01:36:29.629Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Archival tool updated with Codex May 2026 \nIt seems that it’s pretty tricky to save an entire discourse site to a static version. According to this post by Jeff Atwood, it’s “much harder than you’d think”. It doesn’t app&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":14479,"like_count":167,"has_summary":false,"last_poster_username":"Diego_Rivera_Buendia","category_id":7,"op_like_count":44,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse archival tool generates static HTML versions of sites using the API, with limitations, and is available on GitHub for potential expansion or inspiration.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":13426,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":22295,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":32,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":119529,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":174704,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Notification are grouped for the more than 1 reply on the same post","fancy_title_localized":false,"locale":"en","id":403440,"title":"Notification are grouped for the more than 1 reply on the same post","slug":"notification-are-grouped-for-the-more-than-1-reply-on-the-same-post","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-05-20T15:00:39.307Z","last_posted_at":"2026-05-20T15:00:39.482Z","bumped":true,"bumped_at":"2026-05-20T15:00:39.482Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"We are using the Discourse notifications APIs/Data Explorer queries and are observing notification consolidation/grouping behavior for: \n\n\nreply/comment notifications (notification_type = 2) \n\n\nreaction notifications (no&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":58,"like_count":0,"has_summary":false,"last_poster_username":"nitinkg","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The user inquires about Discourse's notification consolidation behavior, asking if settings control database-level grouping, whether rows are updated before thresholds, and if disabling consolidation or identifying reacting users is supported.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":189191,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"PG::UndefinedTable: ERROR: relation &ldquo;translation_overrides&rdquo; does not exist","fancy_title_localized":false,"locale":null,"id":42599,"title":"PG::UndefinedTable: ERROR: relation \"translation_overrides\" does not exist","slug":"pg-undefinedtable-error-relation-translation-overrides-does-not-exist","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2016-04-15T09:46:09.119Z","last_posted_at":"2026-05-20T10:17:55.951Z","bumped":true,"bumped_at":"2026-05-20T10:17:55.951Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I have cloned master and in trying to run migrations i get this error: \nActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation “translation_overrides” does not exist \nI see that a topic was created for this&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"unicode_title":"PG::UndefinedTable: ERROR: relation \"translation_overrides\" does not exist","thumbnails":null,"tags":[],"tags_descriptions":{},"views":4039,"like_count":2,"has_summary":false,"last_poster_username":"Eric_Keller","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The missing 'translation_overrides' table error during migrations stems from a version mismatch between the restored backup and container code, resolved by rebuilding the schema before restoring the backup.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":20734,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1995,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":98059,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":24424,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Discourse-patch-triage bot","fancy_title_localized":false,"locale":"en","id":402898,"title":"Discourse-patch-triage bot","slug":"discourse-patch-triage-bot","posts_count":7,"reply_count":4,"highest_post_number":9,"image_url":null,"created_at":"2026-05-13T18:49:14.058Z","last_posted_at":"2026-05-19T22:19:58.957Z","bumped":true,"bumped_at":"2026-05-19T22:19:58.957Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"trying to figure out how to work with the new discourse-patch-triage bot when doing PRs from our own fork, and it’s a bit confusing, especially in a 3-way conversation with it and a team reviewer. is there a proper way t&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":148,"like_count":10,"has_summary":false,"last_poster_username":"Lilly","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"While the patch-triage bot now supports review and commit actions on forks, a user reported that using the 'fix all' command inadvertently modified code outside the intended scope.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":127856,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":98939,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Dev environment: recommended way to bootstrap the first admin account without email?","fancy_title_localized":false,"locale":"en","id":399187,"title":"Dev environment: recommended way to bootstrap the first admin account without email?","slug":"dev-environment-recommended-way-to-bootstrap-the-first-admin-account-without-email","posts_count":7,"reply_count":4,"highest_post_number":7,"image_url":null,"created_at":"2026-03-24T22:06:30.037Z","last_posted_at":"2026-05-16T16:26:02.739Z","bumped":true,"bumped_at":"2026-05-16T16:26:02.739Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"I’ve been experimenting with the discourse/discourse_dev Docker image (on Windows 11 laptop) and noticed a small friction point in the developer workflow. \nWhen running Discourse in development mode without outbound emai&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":278,"name":"development","slug":"development"}],"tags_descriptions":{},"views":126,"like_count":9,"has_summary":false,"last_poster_username":"Moin","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Ethsim2 clarified that the standard `d/boot_dev --init` command handles admin account creation, while MailHog facilitates local email testing. Additionally, Moin explained that the vertical toolbar icons are developer controls for toggling safe mode, localization, and plugin outlets.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":160471,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"Frequent Poster","user_id":2770,"primary_group_id":47,"flair_group_id":47},{"extras":"latest","description":"Most Recent Poster","user_id":95552,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"PR: Fix MiniScheduler::Web integration with Sidekiq 8","fancy_title_localized":false,"locale":"en","id":400645,"title":"PR: Fix MiniScheduler::Web integration with Sidekiq 8","slug":"pr-fix-minischeduler-web-integration-with-sidekiq-8","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2026-04-14T22:24:55.226Z","last_posted_at":"2026-05-13T11:14:35.559Z","bumped":true,"bumped_at":"2026-05-13T11:14:35.559Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In my last PR, I broke the MiniScheduler::Web integration by accident: \nThe current release (v0.19.0) throws errors the moment you call require “mini_scheduler/web”. Root cause is a change in the API that Sidekiq::Web pr&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":81,"like_count":3,"has_summary":false,"last_poster_username":"david","category_id":7,"op_like_count":3,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The PR fixing the broken MiniScheduler::Web integration with Sidekiq 8 has been merged and released.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":117390,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Skills for authoring themes and blocks","fancy_title_localized":false,"locale":"en","id":401629,"title":"Skills for authoring themes and blocks","slug":"skills-for-authoring-themes-and-blocks","posts_count":8,"reply_count":3,"highest_post_number":10,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_1023x1009.png","created_at":"2026-04-27T17:39:44.880Z","last_posted_at":"2026-05-11T09:36:54.700Z","bumped":true,"bumped_at":"2026-05-11T09:36:54.700Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"A repository of Claude Code skills for building Discourse themes and block components: \nhttps://github.com/discourse/discourse-theme-skills \n:toolbox: What’s included\nTheme Authoring Skill — covers a comprehensive scope &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1523,"height":1501,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d.png"},{"max_width":1024,"max_height":1024,"width":1023,"height":1009,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_1023x1009.png"},{"max_width":800,"max_height":800,"width":800,"height":788,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_800x788.png"},{"max_width":600,"max_height":600,"width":600,"height":591,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_600x591.png"},{"max_width":400,"max_height":400,"width":400,"height":394,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_400x394.png"},{"max_width":300,"max_height":300,"width":300,"height":295,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_300x295.png"},{"max_width":200,"max_height":200,"width":200,"height":197,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/e/3/8/e38d83686e5e13f1e0f06a0e81d9fe7f8a7a254d_2_200x197.png"}],"tags":[{"id":820,"name":"theme-guides","slug":"theme-guides"},{"id":1160,"name":"skills","slug":"skills"},{"id":1159,"name":"blocks","slug":"blocks"}],"tags_descriptions":{},"views":332,"like_count":42,"has_summary":false,"last_poster_username":"manuel","category_id":7,"op_like_count":18,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Manuel clarified that the Discourse theme skills remain synchronized with API updates, while the example theme serves as a reference; he advised users to fork freely and consult the skills documentation for maintaining compatibility with evolving Discourse versions.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":82960,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":135392,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"Frequent Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":60726,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":161351,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Case study of an amateur plugin author","fancy_title_localized":false,"locale":"en","id":402084,"title":"Case study of an amateur plugin author","slug":"case-study-of-an-amateur-plugin-author","posts_count":12,"reply_count":8,"highest_post_number":12,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992_2_1024x195.png","created_at":"2026-05-03T03:41:19.217Z","last_posted_at":"2026-05-04T18:56:52.183Z","bumped":true,"bumped_at":"2026-05-04T18:56:52.183Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In 2024 I was looking for work. I decided to offer my services as a community consultant. Mostly, though, people were interested in technical help getting their Discourse sites fixed or updated. One potential client aske&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1233,"height":236,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992.png"},{"max_width":1024,"max_height":1024,"width":1024,"height":195,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992_2_1024x195.png"},{"max_width":800,"max_height":800,"width":799,"height":153,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992_2_799x153.png"},{"max_width":600,"max_height":600,"width":600,"height":114,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992_2_600x114.png"},{"max_width":400,"max_height":400,"width":399,"height":76,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992_2_399x76.png"},{"max_width":300,"max_height":300,"width":300,"height":57,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992_2_300x57.png"},{"max_width":200,"max_height":200,"width":199,"height":38,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/b/7/1/b71c3be885137979eb87a4ac97ad37a9b958f992_2_199x38.png"}],"tags":[],"tags_descriptions":{},"views":294,"like_count":36,"has_summary":false,"last_poster_username":"jericson","category_id":7,"op_like_count":7,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse developers clarified the `.hbs` deprecation timeline and updated documentation, while users discussed the impact of AI coding tools on plugin maintenance and the need for clearer migration guidance for non-expert authors.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":15442,"primary_group_id":null,"flair_group_id":118},{"extras":null,"description":"Frequent Poster","user_id":113000,"primary_group_id":null,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":113325,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Update to bin/lint breaks linting flow for non-bundled plugins","fancy_title_localized":false,"locale":"en","id":402126,"title":"Update to bin/lint breaks linting flow for non-bundled plugins","slug":"update-to-bin-lint-breaks-linting-flow-for-non-bundled-plugins","posts_count":10,"reply_count":8,"highest_post_number":10,"image_url":null,"created_at":"2026-05-04T09:56:56.296Z","last_posted_at":"2026-05-04T18:27:02.131Z","bumped":true,"bumped_at":"2026-05-04T18:27:02.131Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"A recent change on Discourse main branch (https://github.com/discourse/discourse/commit/e84d7c9f26ed) broke our way of linting the custom plugins we’re working on. \nThe PR/commit subject was \n\nDEV: Update bin/lint to wor&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":143,"like_count":10,"has_summary":false,"last_poster_username":"david","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A recent Discourse update broke linting for non-bundled plugins, but after iterative debugging and fixes regarding file detection and the --fix flag, the issue was resolved and the pull request was merged.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":22917,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Automatically updating themes and plugins to .gjs file format","fancy_title_localized":false,"locale":"en","id":368051,"title":"Automatically updating themes and plugins to .gjs file format","slug":"automatically-updating-themes-and-plugins-to-gjs-file-format","posts_count":10,"reply_count":6,"highest_post_number":11,"image_url":null,"created_at":"2025-05-29T10:56:25.320Z","last_posted_at":"2026-05-02T19:42:35.188Z","bumped":true,"bumped_at":"2026-05-02T19:42:35.188Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In the latest version of Discourse’s standard linting config, we’ve enabled the require-strict-mode ember-template-lint rule. This will raise a linting error for any .hbs files. \nTo resolve the warnings, you should conve&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"dev-news","slug":"dev-news"}],"tags_descriptions":{},"views":430,"like_count":29,"has_summary":false,"last_poster_username":"jericson","category_id":7,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse introduced a linting rule requiring .hbs files to be converted to .gjs format, with a codemod provided for automation, while users noted that older skeletons may also require updated eslint configuration files.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":173218,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":15442,"primary_group_id":null,"flair_group_id":118}]},{"fancy_title":"Managing group membership via authentication","fancy_title_localized":false,"locale":"en","id":175950,"title":"Managing group membership via authentication","slug":"managing-group-membership-via-authentication","posts_count":33,"reply_count":19,"highest_post_number":34,"image_url":null,"created_at":"2021-01-13T06:50:24.340Z","last_posted_at":"2026-04-29T11:00:52.096Z","bumped":true,"bumped_at":"2026-04-29T11:00:52.096Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"@david Continuing the discussion from \nhttps://github.com/discourse/discourse-openid-connect/pull/7#issuecomment-758082333 \nAs you probably can guess, I’m also keen to see a stable solution to this problem, which is not &hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":5491,"like_count":126,"has_summary":false,"last_poster_username":"david","category_id":7,"op_like_count":11,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse v2026.4.0 introduced group sync for OIDC, allowing automatic membership updates based on token claims, which resolves earlier discussions about managing external versus manual group assignments.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":13378,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":5795,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":113094,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":154549,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Minio installer breaks CI","fancy_title_localized":false,"locale":"en","id":401370,"title":"Minio installer breaks CI","slug":"minio-installer-breaks-ci","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2026-04-23T15:20:15.014Z","last_posted_at":"2026-04-29T00:38:21.091Z","bumped":true,"bumped_at":"2026-04-29T00:38:21.091Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"The minio_runner’s install script is broken, because of a redirect that’s not being followed. That breaks the shared GitHub action workflows from the .github repository. \nFor our plugins, this means, we cannot run Rails &hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":278,"name":"development","slug":"development"},{"id":1056,"name":"bug","slug":"bug"}],"tags_descriptions":{},"views":132,"like_count":8,"has_summary":false,"last_poster_username":"Lilly","category_id":7,"op_like_count":1,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The Minio installer issue breaking CI workflows due to an unhandled redirect has been resolved by a fix merged in the minio_runner repository.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":22917,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster, Accepted Answer","user_id":127856,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Improving Discourse API documentation for building fully custom frontend community","fancy_title_localized":false,"locale":"en","id":401236,"title":"Improving Discourse API documentation for building fully custom frontend community","slug":"improving-discourse-api-documentation-for-building-fully-custom-frontend-community","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2026-04-22T11:48:13.415Z","last_posted_at":"2026-04-22T13:15:05.826Z","bumped":true,"bumped_at":"2026-04-22T13:15:05.826Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi everyone :waving_hand: \nI’ve been building a custom frontend using Discourse as a headless backend (Next.js-based architecture), and I’d like to share some practical gaps I’ve encountered in the current API design fro&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":330,"name":"rest-api","slug":"rest-api"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse"},"views":77,"like_count":6,"has_summary":false,"last_poster_username":"darkpixlz","category_id":7,"op_like_count":6,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A developer outlines API documentation and structural gaps hindering headless Discourse frontends, while a responder adds that inconsistent form-encoded endpoints further complicate modern JSON-based integrations.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":191326,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":114728,"primary_group_id":276,"flair_group_id":276}]},{"fancy_title":"Delete Draft post from the API - getting not_found error","fancy_title_localized":false,"locale":"en","id":401220,"title":"Delete Draft post from the API - getting not_found error","slug":"delete-draft-post-from-the-api-getting-not-found-error","posts_count":2,"reply_count":0,"highest_post_number":3,"image_url":null,"created_at":"2026-04-22T08:38:25.157Z","last_posted_at":"2026-04-22T10:32:31.402Z","bumped":true,"bumped_at":"2026-04-22T10:32:31.402Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi, \nI’m trying to delete a draft using the API: \nDELETE /drafts/{draft_key}.json\n\nThe draft exists (verified via GET /drafts.json) and I’m using the correct draft_key and sequence. \nAPI Request (Postman / backend)\nDELET&hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":330,"name":"rest-api","slug":"rest-api"}],"tags_descriptions":{"rest-api":"Topics about making an external request to Discourse"},"views":58,"like_count":1,"has_summary":false,"last_poster_username":"zogstrip","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user's API draft deletion error was identified as an inconsistency in fallback authentication, which is being resolved by a pending pull request that adds support for the username query parameter.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":189191,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1995,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Interact with discourse from Python?","fancy_title_localized":false,"locale":"en","id":87543,"title":"Interact with discourse from Python?","slug":"interact-with-discourse-from-python","posts_count":32,"reply_count":25,"highest_post_number":33,"image_url":null,"created_at":"2018-05-15T16:34:39.786Z","last_posted_at":"2026-04-20T15:11:15.147Z","bumped":true,"bumped_at":"2026-04-20T15:11:15.147Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi everyone! Love discourse, it’s the backbone of our community. \nWe are an open source project with a strong presence on Github. We have a robot written in Python which manages our Github repositories and does things li&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":5315,"like_count":88,"has_summary":false,"last_poster_username":"supermathie","category_id":7,"op_like_count":3,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"After concerns about Terms of Service violations regarding automated forum access, the Discourse team clarified that tools accessing public endpoints are acceptable provided users avoid bulk scraping and respect rate limits, prompting the tool creator to add a compliance disclaimer.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":31176,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":83597,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":15209,"primary_group_id":null,"flair_group_id":142},{"extras":null,"description":"Frequent Poster","user_id":189822,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":3,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Category-toggled one-touch move post","fancy_title_localized":false,"locale":"en","id":400983,"title":"Category-toggled one-touch move post","slug":"category-toggled-one-touch-move-post","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-19T06:34:58.520Z","last_posted_at":"2026-04-19T06:34:59.112Z","bumped":true,"bumped_at":"2026-04-19T06:34:59.112Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hello, \nin my email category, i would like to be able to enable a button - that appears on every post in this category. \nThis would automatically select the post and open the dialogue; for splitting that post to an exist&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":61,"like_count":0,"has_summary":false,"last_poster_username":"Ethsim2","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A user inquires about the implementation complexity of adding a one-touch button to automatically select posts and open the split dialogue within a specific email category.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":160471,"primary_group_id":null,"flair_group_id":73}]},{"fancy_title":"Disable initial page that re-directs to /login","fancy_title_localized":false,"locale":"en","id":400773,"title":"Disable initial page that re-directs to /login","slug":"disable-initial-page-that-re-directs-to-login","posts_count":6,"reply_count":5,"highest_post_number":6,"image_url":null,"created_at":"2026-04-16T08:40:01.531Z","last_posted_at":"2026-04-17T19:05:23.863Z","bumped":true,"bumped_at":"2026-04-17T19:05:23.863Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hello, \ni’m currently achieving a slow re-direct, to avoid need to press the only Login button on the inital page \nimport { apiInitializer } from &quot;discourse/lib/api&quot;;\n\nexport default apiInitializer(&quot;1.0&quot;, (api) =&gt; {\n  ap&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":740,"name":"login","slug":"login"}],"tags_descriptions":{},"views":128,"like_count":5,"has_summary":false,"last_poster_username":"Ethsim2","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The user resolved the slow redirect issue by discovering the 'skip landing screen' setting was already enabled and subsequently disabled local logins because their login and sign-up pages are identical.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":160471,"primary_group_id":null,"flair_group_id":73},{"extras":null,"description":"Frequent Poster","user_id":95552,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1995,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":21029,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Deprecating .hbs file extension in themes and plugins","fancy_title_localized":false,"locale":"en","id":398896,"title":"Deprecating .hbs file extension in themes and plugins","slug":"deprecating-hbs-file-extension-in-themes-and-plugins","posts_count":19,"reply_count":11,"highest_post_number":19,"image_url":null,"created_at":"2026-03-20T16:48:11.841Z","last_posted_at":"2026-04-13T13:09:24.980Z","bumped":true,"bumped_at":"2026-04-13T13:09:24.980Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"In the latest version of Discourse, using .hbs files in themes and plugins is deprecated. Support for this file format will be removed after the next ESR release. \nHandlebars templates should be replaced with the more mo&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"dev-news","slug":"dev-news"}],"tags_descriptions":{},"views":611,"like_count":43,"has_summary":false,"last_poster_username":"manuel","category_id":7,"op_like_count":7,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"A plugin developer expresses frustration over the deprecation of .hbs files, arguing that frequent breaking changes undermine stability, while the Discourse team defends the transition as a necessary evolution supported by automated migration tools and a clear deprecation timeline.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":173218,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":26605,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":406,"primary_group_id":null,"flair_group_id":142},{"extras":"latest","description":"Most Recent Poster","user_id":82960,"primary_group_id":47,"flair_group_id":47}]},{"fancy_title":"Best Ways to Generate or Obtain Test Data for Discourse?","fancy_title_localized":false,"locale":"en","id":400205,"title":"Best Ways to Generate or Obtain Test Data for Discourse?","slug":"best-ways-to-generate-or-obtain-test-data-for-discourse","posts_count":5,"reply_count":3,"highest_post_number":5,"image_url":null,"created_at":"2026-04-08T08:06:21.251Z","last_posted_at":"2026-04-08T08:19:02.937Z","bumped":true,"bumped_at":"2026-04-08T08:19:02.937Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Hi everyone :waving_hand: \nI’m currently working with Discourse and trying to better understand how to test features and workflows effectively. One challenge I’m facing is how to get realistic and useful test data for a &hellip;","visible":true,"closed":true,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[],"tags_descriptions":{},"views":79,"like_count":7,"has_summary":false,"last_poster_username":"hanoith2022","category_id":7,"op_like_count":0,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"The user clarified their need for diverse media test files like MP3s beyond standard topic seeding, receiving suggestions to use a webcam for video and generative AI for audio.","has_accepted_answer":true,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":191275,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster, Accepted Answer","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":-1,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Using dv (Discourse Vibe) to configure Discourse AI in development","fancy_title_localized":false,"locale":"en","id":388622,"title":"Using dv (Discourse Vibe) to configure Discourse AI in development","slug":"using-dv-discourse-vibe-to-configure-discourse-ai-in-development","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3_2_741x1024.png","created_at":"2025-11-17T03:44:03.670Z","last_posted_at":"2026-04-07T21:58:57.795Z","bumped":true,"bumped_at":"2026-04-07T21:58:57.795Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"dv - Discourse Vibe - https://github.com/samsaffron/dv is a tool I have been building that lets you easily work on multiple pre-configured Discourse dev containers. \nI built it to make it easier to work with AI agents, b&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":[{"max_width":null,"max_height":null,"width":1344,"height":1857,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3.png"},{"max_width":1024,"max_height":1024,"width":741,"height":1024,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3_2_741x1024.png"},{"max_width":800,"max_height":800,"width":578,"height":800,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3_2_578x800.png"},{"max_width":600,"max_height":600,"width":434,"height":600,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3_2_434x600.png"},{"max_width":400,"max_height":400,"width":289,"height":400,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3_2_289x400.png"},{"max_width":300,"max_height":300,"width":217,"height":300,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3_2_217x300.png"},{"max_width":200,"max_height":200,"width":144,"height":200,"url":"//cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/4X/4/9/b/49beab442301ca30e69def73c24cf3fa9c88c5c3_2_144x200.png"}],"tags":[],"tags_descriptions":{},"views":275,"like_count":23,"has_summary":false,"last_poster_username":"sam","category_id":7,"op_like_count":17,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Sam clarifies that dv is a technical tool primarily for developers to manage multiple isolated Discourse development environments, noting it simplifies even single-instance setups but is not designed for non-technical hobbyists.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":161351,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":181081,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Deprecating .js.es6 file extensions in themes and plugins","fancy_title_localized":false,"locale":"en","id":398894,"title":"Deprecating .js.es6 file extensions in themes and plugins","slug":"deprecating-js-es6-file-extensions-in-themes-and-plugins","posts_count":9,"reply_count":7,"highest_post_number":9,"image_url":null,"created_at":"2026-03-20T16:03:38.678Z","last_posted_at":"2026-04-07T14:34:36.664Z","bumped":true,"bumped_at":"2026-04-07T14:34:36.664Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"excerpt":"Back in 2020, Discourse switched from the .js.es6 extension to .js. Over the years, the vast majority of themes and plugins have switched to the new extension, which provides much better compatibility with modern JavaScr&hellip;","visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"thumbnails":null,"tags":[{"id":973,"name":"dev-news","slug":"dev-news"}],"tags_descriptions":{},"views":259,"like_count":26,"has_summary":false,"last_poster_username":"awesomerobot","category_id":7,"op_like_count":10,"pinned_globally":false,"featured_link":null,"ai_topic_gist":"Discourse is removing support for .js.es6 extensions to resolve developer confusion and improve tooling, despite plugin author LeoDavidson's objection that the change breaks backward compatibility and demonstrates poor prioritization.","has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":23968,"primary_group_id":47,"flair_group_id":47},{"extras":null,"description":"Frequent Poster","user_id":27384,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":35474,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":114728,"primary_group_id":276,"flair_group_id":276},{"extras":"latest","description":"Most Recent Poster","user_id":2770,"primary_group_id":47,"flair_group_id":47}]}]}}