{"users":[{"id":782,"username":"saleyn","name":"Serge Aleynikov","avatar_template":"/user_avatar/erlangforums.com/saleyn/{size}/1188_2.png","trust_level":2},{"id":220,"username":"eproxus","name":"Adam Lindberg","avatar_template":"/user_avatar/erlangforums.com/eproxus/{size}/452_2.png","primary_group_name":"grisp_core_team","flair_name":"grisp_core_team","flair_url":"/uploads/default/original/1X/eba7af3de594419366c10692c1f61ed389e2a0e4.png","flair_bg_color":"D1E7EF","flair_group_id":61,"trust_level":2},{"id":1038,"username":"zabrane","name":"","avatar_template":"/letter_avatar_proxy/v4/letter/z/7ba0ec/{size}.png","trust_level":2},{"id":21,"username":"benoitc","name":"benoitc","avatar_template":"/user_avatar/erlangforums.com/benoitc/{size}/211_2.png","primary_group_name":"eef_working_groups","flair_name":"eef_working_groups","flair_url":"/uploads/default/original/1X/7693138f264240e5317bab1b22aeda6986c436e4.png","flair_bg_color":"fff","flair_group_id":70,"trust_level":2},{"id":132,"username":"danilagamma","name":"Danila Fediashchin","avatar_template":"/user_avatar/erlangforums.com/danilagamma/{size}/342_2.png","trust_level":2},{"id":80,"username":"Taure","name":"Daniel Widgren","avatar_template":"/user_avatar/erlangforums.com/taure/{size}/846_2.png","primary_group_name":"nova_core_team","flair_name":"nova_core_team","flair_url":"/uploads/default/original/1X/56dbb944a1f0a510a99cc39cdfd0756fc916ca5d.png","flair_bg_color":"0","flair_group_id":59,"trust_level":2},{"id":784,"username":"leeyis","name":"leeyi","avatar_template":"/user_avatar/erlangforums.com/leeyis/{size}/1191_2.png","trust_level":2},{"id":1488,"username":"wangcw","name":"存伟","avatar_template":"/user_avatar/erlangforums.com/wangcw/{size}/2065_2.png","trust_level":1},{"id":75,"username":"uwiger","name":"Ulf Wiger","avatar_template":"/user_avatar/erlangforums.com/uwiger/{size}/274_2.png","trust_level":2},{"id":2536,"username":"sherry","name":"Sherry","avatar_template":"/letter_avatar_proxy/v4/letter/s/7cd45c/{size}.png","trust_level":0},{"id":239,"username":"williamthome","name":"William Fank Thomé","avatar_template":"/user_avatar/erlangforums.com/williamthome/{size}/471_2.png","trust_level":2},{"id":29,"username":"lpil","name":"Louis Pilfold","avatar_template":"/user_avatar/erlangforums.com/lpil/{size}/222_2.png","primary_group_name":"gleam_core_team","flair_name":"gleam_core_team","flair_url":"/uploads/default/original/2X/0/0ae3fd85fbdc4b48dd41ab73696aea0400768811.png","flair_bg_color":"fffbe8","flair_group_id":49,"trust_level":2},{"id":566,"username":"etnt","name":"Torbjörn Törnkvist","avatar_template":"/user_avatar/erlangforums.com/etnt/{size}/892_2.png","trust_level":2},{"id":426,"username":"ausimian","name":"","avatar_template":"/user_avatar/erlangforums.com/ausimian/{size}/697_2.png","trust_level":2},{"id":339,"username":"crownedgrouse","name":"Eric Pailleau","avatar_template":"/user_avatar/erlangforums.com/crownedgrouse/{size}/591_2.png","trust_level":2},{"id":18,"username":"OvermindDL1","name":"OvermindDL1","avatar_template":"/user_avatar/erlangforums.com/overminddl1/{size}/398_2.png","trust_level":2},{"id":94,"username":"afa","name":"André Fatton","avatar_template":"/user_avatar/erlangforums.com/afa/{size}/298_2.png","primary_group_name":"vernemq_core_team","flair_name":"vernemq_core_team","flair_url":"/uploads/default/original/1X/28f61c3865beb41a091309a858221ff26b15d7e2.png","flair_bg_color":"EDEDED","flair_group_id":74,"trust_level":2},{"id":1100,"username":"Led","name":"Led","avatar_template":"/user_avatar/erlangforums.com/led/{size}/1594_2.png","trust_level":2},{"id":51,"username":"elbrujohalcon","name":"Brujo Benavides Rodriguez","avatar_template":"/user_avatar/erlangforums.com/elbrujohalcon/{size}/241_2.png","primary_group_name":"eef_working_groups","flair_name":"eef_working_groups","flair_url":"/uploads/default/original/1X/7693138f264240e5317bab1b22aeda6986c436e4.png","flair_bg_color":"fff","flair_group_id":70,"trust_level":2},{"id":727,"username":"paulo-f-oliveira","name":"Paulo F. Oliveira","avatar_template":"/user_avatar/erlangforums.com/paulo-f-oliveira/{size}/1103_2.png","trust_level":2},{"id":458,"username":"phild","name":"Phil D","avatar_template":"/user_avatar/erlangforums.com/phild/{size}/742_2.png","trust_level":2},{"id":794,"username":"NelsonVides","name":"Nelson Vides","avatar_template":"/user_avatar/erlangforums.com/nelsonvides/{size}/1205_2.png","trust_level":2},{"id":71,"username":"mworrell","name":"Marc Worrell","avatar_template":"/user_avatar/erlangforums.com/mworrell/{size}/267_2.png","primary_group_name":"zotonic_core_team","flair_name":"zotonic_core_team","flair_url":"/uploads/default/original/1X/4f92f41eac419746aff9bff370be8ccc4def58ec.png","flair_bg_color":"0","flair_group_id":60,"trust_level":2},{"id":1956,"username":"Whaileee","name":"Konrad Pietrzak","avatar_template":"/user_avatar/erlangforums.com/whaileee/{size}/3057_2.png","primary_group_name":"erlang_core_team","flair_name":"erlang_core_team","flair_url":"/uploads/default/original/1X/4694a3b038d8929b0db8bdb8c654c9b3131b125b.png","flair_bg_color":"F3DBE2","flair_group_id":41,"admin":true,"trust_level":2},{"id":1986,"username":"ieQu1","name":"","avatar_template":"/user_avatar/erlangforums.com/iequ1/{size}/2633_2.png","trust_level":2},{"id":1746,"username":"patricio3661","name":"","avatar_template":"/letter_avatar_proxy/v4/letter/p/c67d28/{size}.png","trust_level":1},{"id":193,"username":"tsloughter","name":"Tristan Sloughter","avatar_template":"/user_avatar/erlangforums.com/tsloughter/{size}/418_2.png","primary_group_name":"eef_working_groups","flair_name":"rebar3_core_team","flair_url":"/uploads/default/original/1X/a55945c8b5feabc67501b258a63649dbf92e7d56.png","flair_bg_color":"fff","flair_group_id":63,"trust_level":2},{"id":175,"username":"seriyps","name":"Sergey Prokhorov","avatar_template":"/user_avatar/erlangforums.com/seriyps/{size}/387_2.png","primary_group_name":"klarna_devs","flair_name":"klarna_devs","flair_url":"/uploads/default/original/2X/7/75d42e3921188278883d0fd11ea47325f34c0e5d.png","flair_bg_color":"FFB3C7","flair_group_id":78,"trust_level":2},{"id":1654,"username":"Kozaky","name":"Julio Gómez Campanario","avatar_template":"/user_avatar/erlangforums.com/kozaky/{size}/2253_2.png","trust_level":1},{"id":327,"username":"nickva","name":"Nick Vatamaniuc","avatar_template":"/user_avatar/erlangforums.com/nickva/{size}/578_2.png","trust_level":2},{"id":816,"username":"Benjamin-Philip","name":"Benjamin Philip","avatar_template":"/user_avatar/erlangforums.com/benjamin-philip/{size}/2387_2.png","trust_level":2},{"id":2519,"username":"deniz","name":"Deniz","avatar_template":"/user_avatar/erlangforums.com/deniz/{size}/3165_2.png","trust_level":1},{"id":225,"username":"rlipscombe","name":"Roger Lipscombe","avatar_template":"/user_avatar/erlangforums.com/rlipscombe/{size}/459_2.png","trust_level":2},{"id":13,"username":"dgud","name":"Dan Gudmundsson","avatar_template":"/user_avatar/erlangforums.com/dgud/{size}/191_2.png","primary_group_name":"erlang_core_team","flair_name":"erlang_core_team","flair_url":"/uploads/default/original/1X/4694a3b038d8929b0db8bdb8c654c9b3131b125b.png","flair_bg_color":"F3DBE2","flair_group_id":41,"admin":true,"trust_level":2},{"id":433,"username":"vances","name":"Vance Shipley","avatar_template":"/user_avatar/erlangforums.com/vances/{size}/710_2.png","trust_level":2},{"id":7,"username":"garazdawi","name":"Lukas Backström (FKA Larsson)","avatar_template":"/user_avatar/erlangforums.com/garazdawi/{size}/175_2.png","primary_group_name":"erlang_core_team","flair_name":"erlang_core_team","flair_url":"/uploads/default/original/1X/4694a3b038d8929b0db8bdb8c654c9b3131b125b.png","flair_bg_color":"F3DBE2","flair_group_id":41,"admin":true,"trust_level":2},{"id":59,"username":"hauleth","name":"Łukasz Jan Niemier","avatar_template":"/user_avatar/erlangforums.com/hauleth/{size}/251_2.png","primary_group_name":"eef_working_groups","flair_name":"eef_working_groups","flair_url":"/uploads/default/original/1X/7693138f264240e5317bab1b22aeda6986c436e4.png","flair_bg_color":"fff","flair_group_id":70,"trust_level":2},{"id":1470,"username":"chiroptical","name":"Barry","avatar_template":"/user_avatar/erlangforums.com/chiroptical/{size}/2044_2.png","trust_level":2},{"id":199,"username":"g-andrade","name":"Guilherme Andrade","avatar_template":"/user_avatar/erlangforums.com/g-andrade/{size}/426_2.png","trust_level":1},{"id":2443,"username":"andreashasse","name":"Andreas Hasselberg","avatar_template":"/user_avatar/erlangforums.com/andreashasse/{size}/3101_2.png","trust_level":1},{"id":829,"username":"robertoaloi","name":"Roberto Aloi","avatar_template":"/user_avatar/erlangforums.com/robertoaloi/{size}/1250_2.png","trust_level":2},{"id":2484,"username":"russor","name":"","avatar_template":"/letter_avatar_proxy/v4/letter/r/a698b9/{size}.png","trust_level":2},{"id":924,"username":"nzok","name":"Richard A. O'Keefe","avatar_template":"/letter_avatar_proxy/v4/letter/n/4af34b/{size}.png","trust_level":1},{"id":2329,"username":"WadeMealing","name":"Wade","avatar_template":"/user_avatar/erlangforums.com/wademealing/{size}/2981_2.png","trust_level":2}],"primary_groups":[{"id":61,"name":"grisp_core_team"},{"id":70,"name":"eef_working_groups"},{"id":59,"name":"nova_core_team"},{"id":49,"name":"gleam_core_team"},{"id":74,"name":"vernemq_core_team"},{"id":60,"name":"zotonic_core_team"},{"id":41,"name":"erlang_core_team"},{"id":78,"name":"klarna_devs"}],"flair_groups":[{"id":61,"name":"grisp_core_team","flair_url":"/uploads/default/original/1X/eba7af3de594419366c10692c1f61ed389e2a0e4.png","flair_bg_color":"D1E7EF","flair_color":""},{"id":70,"name":"eef_working_groups","flair_url":"/uploads/default/original/1X/7693138f264240e5317bab1b22aeda6986c436e4.png","flair_bg_color":"fff","flair_color":""},{"id":59,"name":"nova_core_team","flair_url":"/uploads/default/original/1X/56dbb944a1f0a510a99cc39cdfd0756fc916ca5d.png","flair_bg_color":"0","flair_color":""},{"id":49,"name":"gleam_core_team","flair_url":"/uploads/default/original/2X/0/0ae3fd85fbdc4b48dd41ab73696aea0400768811.png","flair_bg_color":"fffbe8","flair_color":""},{"id":74,"name":"vernemq_core_team","flair_url":"/uploads/default/original/1X/28f61c3865beb41a091309a858221ff26b15d7e2.png","flair_bg_color":"EDEDED","flair_color":""},{"id":60,"name":"zotonic_core_team","flair_url":"/uploads/default/original/1X/4f92f41eac419746aff9bff370be8ccc4def58ec.png","flair_bg_color":"0","flair_color":""},{"id":41,"name":"erlang_core_team","flair_url":"/uploads/default/original/1X/4694a3b038d8929b0db8bdb8c654c9b3131b125b.png","flair_bg_color":"F3DBE2","flair_color":""},{"id":63,"name":"rebar3_core_team","flair_url":"/uploads/default/original/1X/a55945c8b5feabc67501b258a63649dbf92e7d56.png","flair_bg_color":"fff","flair_color":""},{"id":78,"name":"klarna_devs","flair_url":"/uploads/default/original/2X/7/75d42e3921188278883d0fd11ea47325f34c0e5d.png","flair_bg_color":"FFB3C7","flair_color":""}],"topic_list":{"can_create_topic":false,"more_topics_url":"/c/your-libraries-os-mentoring/erlang-libraries/23?page=1","per_page":30,"top_tags":[{"id":278,"name":"erlang","slug":"erlang"},{"id":208,"name":"rebar3","slug":"rebar3"},{"id":317,"name":"json","slug":"json"},{"id":645,"name":"library","slug":"library"},{"id":126,"name":"community","slug":"community"},{"id":302,"name":"erlang-otp","slug":"erlang-otp"},{"id":415,"name":"database","slug":"database"},{"id":22,"name":"elixir","slug":"elixir"},{"id":280,"name":"nif","slug":"nif"},{"id":598,"name":"ai","slug":"ai"},{"id":133,"name":"beam","slug":"beam"},{"id":802,"name":"code","slug":"code"},{"id":292,"name":"code-formatters","slug":"code-formatters"},{"id":252,"name":"http","slug":"http"},{"id":383,"name":"plug-in","slug":"plug-in"},{"id":501,"name":"postgresql","slug":"postgresql"},{"id":949,"name":"python","slug":"python"},{"id":257,"name":"tools","slug":"tools"},{"id":311,"name":"blas","slug":"blas"},{"id":401,"name":"common_test","slug":"common-test"},{"id":236,"name":"configuration","slug":"configuration"},{"id":253,"name":"cowboy","slug":"cowboy"},{"id":238,"name":"databases","slug":"databases"},{"id":336,"name":"distributed-erlang","slug":"distributed-erlang"},{"id":524,"name":"docker","slug":"docker"},{"id":224,"name":"eef","slug":"eef"},{"id":532,"name":"elli","slug":"elli"},{"id":450,"name":"eunit","slug":"eunit"},{"id":935,"name":"event-sourcing","slug":"event-sourcing"},{"id":447,"name":"game","slug":"game"},{"id":683,"name":"http2","slug":"http2"}],"topics":[{"fancy_title":"Glazer - the Swiss Army knife of parsing JSON/YAML/CSV","id":5714,"title":"Glazer - the Swiss Army knife of parsing JSON/YAML/CSV","slug":"glazer-the-swiss-army-knife-of-parsing-json-yaml-csv","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2026-06-11T23:22:51.327Z","last_posted_at":"2026-06-12T10:42:23.794Z","bumped":true,"bumped_at":"2026-06-12T10:42:23.794Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":1014,"name":"csv","slug":"csv"},{"id":278,"name":"erlang","slug":"erlang"},{"id":317,"name":"json","slug":"json"},{"id":928,"name":"parsing","slug":"parsing"},{"id":1013,"name":"yaml","slug":"yaml"}],"tags_descriptions":{},"views":41,"like_count":2,"has_summary":false,"last_poster_username":"saleyn","category_id":23,"op_like_count":2,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":782,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":220,"primary_group_id":61,"flair_group_id":61}]},{"fancy_title":"Glazejson - fast JSON encoder/decoder for Erlang or Elixir","id":5701,"title":"Glazejson - fast JSON encoder/decoder for Erlang or Elixir","slug":"glazejson-fast-json-encoder-decoder-for-erlang-or-elixir","posts_count":9,"reply_count":5,"highest_post_number":9,"image_url":null,"created_at":"2026-06-08T05:32:00.267Z","last_posted_at":"2026-06-09T15:15:54.478Z","bumped":true,"bumped_at":"2026-06-09T15:15:54.478Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":278,"name":"erlang","slug":"erlang"},{"id":317,"name":"json","slug":"json"},{"id":907,"name":"to-catch-all","slug":"to-catch-all"}],"tags_descriptions":{},"views":235,"like_count":9,"has_summary":false,"last_poster_username":"danilagamma","category_id":23,"op_like_count":6,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":782,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1038,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":21,"primary_group_id":70,"flair_group_id":70},{"extras":"latest","description":"Most Recent Poster","user_id":132,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Livery - high-performance HTTP/1.1, HTTP/2, HTTP/3 server for Erlang/OTP 27+","id":5693,"title":"Livery - high-performance HTTP/1.1, HTTP/2, HTTP/3 server for Erlang/OTP 27+","slug":"livery-high-performance-http-1-1-http-2-http-3-server-for-erlang-otp-27","posts_count":6,"reply_count":3,"highest_post_number":6,"image_url":null,"created_at":"2026-06-04T17:43:02.398Z","last_posted_at":"2026-06-06T07:32:56.414Z","bumped":true,"bumped_at":"2026-06-06T07:32:56.414Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":252,"name":"http","slug":"http"},{"id":683,"name":"http2","slug":"http2"},{"id":933,"name":"http3","slug":"http3"},{"id":469,"name":"quic","slug":"quic"},{"id":626,"name":"web","slug":"web"},{"id":821,"name":"web-framework","slug":"web-framework"},{"id":733,"name":"websocket","slug":"websocket"},{"id":984,"name":"webtransport","slug":"webtransport"}],"tags_descriptions":{},"views":225,"like_count":7,"has_summary":false,"last_poster_username":"benoitc","category_id":23,"op_like_count":7,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":21,"primary_group_id":70,"flair_group_id":70},{"extras":null,"description":"Frequent Poster","user_id":782,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Gakudan - Multi-agent collaboration primitives for the BEAM (eco-system)","id":5695,"title":"Gakudan - Multi-agent collaboration primitives for the BEAM (eco-system)","slug":"gakudan-multi-agent-collaboration-primitives-for-the-beam-eco-system","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-06-05T11:12:41.632Z","last_posted_at":"2026-06-05T11:12:41.696Z","bumped":true,"bumped_at":"2026-06-05T11:12:41.696Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":278,"name":"erlang","slug":"erlang"}],"tags_descriptions":{},"views":67,"like_count":1,"has_summary":false,"last_poster_username":"Taure","category_id":23,"op_like_count":1,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":80,"primary_group_id":59,"flair_group_id":59}]},{"fancy_title":"Erlang_migrate - a golang-migrate-inspired database migration library for Erlang/OTP","id":5662,"title":"Erlang_migrate - a golang-migrate-inspired database migration library for Erlang/OTP","slug":"erlang-migrate-a-golang-migrate-inspired-database-migration-library-for-erlang-otp","posts_count":2,"reply_count":0,"highest_post_number":2,"image_url":null,"created_at":"2026-05-28T03:26:54.212Z","last_posted_at":"2026-06-05T09:12:10.809Z","bumped":true,"bumped_at":"2026-06-05T09:12:10.809Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":802,"name":"code","slug":"code"},{"id":126,"name":"community","slug":"community"},{"id":278,"name":"erlang","slug":"erlang"},{"id":302,"name":"erlang-otp","slug":"erlang-otp"},{"id":208,"name":"rebar3","slug":"rebar3"},{"id":257,"name":"tools","slug":"tools"}],"tags_descriptions":{},"views":112,"like_count":7,"has_summary":false,"last_poster_username":"wangcw","category_id":23,"op_like_count":7,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":784,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":1488,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Gm_ctflow - A helper application for complex Common Test suites","id":5690,"title":"Gm_ctflow - A helper application for complex Common Test suites","slug":"gm-ctflow-a-helper-application-for-complex-common-test-suites","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-06-04T06:57:54.185Z","last_posted_at":"2026-06-04T06:57:54.257Z","bumped":true,"bumped_at":"2026-06-04T06:57:54.257Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":401,"name":"common_test","slug":"common-test"},{"id":278,"name":"erlang","slug":"erlang"},{"id":259,"name":"testing","slug":"testing"}],"tags_descriptions":{},"views":39,"like_count":2,"has_summary":false,"last_poster_username":"uwiger","category_id":23,"op_like_count":2,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":75,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"BeamTrail - an OTP-native durable step runner using PostgreSQL event logs","id":5687,"title":"BeamTrail - an OTP-native durable step runner using PostgreSQL event logs","slug":"beamtrail-an-otp-native-durable-step-runner-using-postgresql-event-logs","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-06-03T16:51:00.738Z","last_posted_at":"2026-06-03T16:51:00.809Z","bumped":true,"bumped_at":"2026-06-03T16:51:00.809Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":302,"name":"erlang-otp","slug":"erlang-otp"},{"id":935,"name":"event-sourcing","slug":"event-sourcing"},{"id":193,"name":"otp","slug":"otp"},{"id":501,"name":"postgresql","slug":"postgresql"},{"id":588,"name":"workflow","slug":"workflow"}],"tags_descriptions":{},"views":62,"like_count":2,"has_summary":false,"last_poster_username":"sherry","category_id":23,"op_like_count":2,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2536,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Roadrunner - Pure-Erlang HTTP and WebSocket server","id":5623,"title":"Roadrunner - Pure-Erlang HTTP and WebSocket server","slug":"roadrunner-pure-erlang-http-and-websocket-server","posts_count":23,"reply_count":16,"highest_post_number":23,"image_url":null,"created_at":"2026-05-06T23:32:21.016Z","last_posted_at":"2026-06-03T13:17:45.798Z","bumped":true,"bumped_at":"2026-06-03T13:17:45.798Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":820,"name":"arizona","slug":"arizona"},{"id":253,"name":"cowboy","slug":"cowboy"},{"id":532,"name":"elli","slug":"elli"},{"id":252,"name":"http","slug":"http"},{"id":683,"name":"http2","slug":"http2"},{"id":645,"name":"library","slug":"library"},{"id":1003,"name":"roadrunner","slug":"roadrunner"},{"id":707,"name":"web-server","slug":"web-server"},{"id":733,"name":"websocket","slug":"websocket"}],"tags_descriptions":{},"views":753,"like_count":54,"has_summary":false,"last_poster_username":"williamthome","category_id":23,"op_like_count":14,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":239,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":29,"primary_group_id":49,"flair_group_id":49},{"extras":null,"description":"Frequent Poster","user_id":566,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1038,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":426,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Geas - a tool detecting the runnable official Erlang release window for your project","id":296,"title":"Geas - a tool detecting the runnable official Erlang release window for your project","slug":"geas-a-tool-detecting-the-runnable-official-erlang-release-window-for-your-project","posts_count":30,"reply_count":3,"highest_post_number":30,"image_url":null,"created_at":"2021-10-27T18:06:27.509Z","last_posted_at":"2026-05-31T16:31:32.940Z","bumped":true,"bumped_at":"2026-05-31T16:31:32.940Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":126,"name":"community","slug":"community"}],"tags_descriptions":{},"views":2270,"like_count":68,"has_summary":false,"last_poster_username":"crownedgrouse","category_id":23,"op_like_count":8,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":339,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":18,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":94,"primary_group_id":74,"flair_group_id":74},{"extras":null,"description":"Frequent Poster","user_id":29,"primary_group_id":49,"flair_group_id":49},{"extras":null,"description":"Frequent Poster","user_id":1100,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Elvis - an Erlang linter","id":4813,"title":"Elvis - an Erlang linter","slug":"elvis-an-erlang-linter","posts_count":10,"reply_count":3,"highest_post_number":10,"image_url":null,"created_at":"2025-06-06T06:58:24.022Z","last_posted_at":"2026-05-29T06:59:37.353Z","bumped":true,"bumped_at":"2026-05-29T06:59:37.353Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":278,"name":"erlang","slug":"erlang"},{"id":862,"name":"linter","slug":"linter"}],"tags_descriptions":{},"views":500,"like_count":36,"has_summary":false,"last_poster_username":"elbrujohalcon","category_id":23,"op_like_count":8,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":51,"primary_group_id":70,"flair_group_id":70},{"extras":null,"description":"Frequent Poster","user_id":727,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":458,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":794,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Httpd_router - A routing module for OTP&rsquo;s built-in httpd web server","id":5645,"title":"Httpd_router - A routing module for OTP's built-in httpd web server","slug":"httpd-router-a-routing-module-for-otps-built-in-httpd-web-server","posts_count":8,"reply_count":3,"highest_post_number":9,"image_url":null,"created_at":"2026-05-22T13:41:22.195Z","last_posted_at":"2026-05-26T13:55:44.067Z","bumped":true,"bumped_at":"2026-05-26T13:55:44.067Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":260,"name":"httpd","slug":"httpd"}],"tags_descriptions":{},"views":189,"like_count":11,"has_summary":false,"last_poster_username":"etnt","category_id":23,"op_like_count":8,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":566,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":71,"primary_group_id":60,"flair_group_id":60},{"extras":null,"description":"Frequent Poster","user_id":29,"primary_group_id":49,"flair_group_id":49},{"extras":null,"description":"Frequent Poster","user_id":1956,"primary_group_id":41,"flair_group_id":41}]},{"fancy_title":"ANVL - a general-purpose parallel task execution tool","id":5109,"title":"ANVL - a general-purpose parallel task execution tool","slug":"anvl-a-general-purpose-parallel-task-execution-tool","posts_count":6,"reply_count":1,"highest_post_number":6,"image_url":null,"created_at":"2025-10-02T19:46:39.615Z","last_posted_at":"2026-05-20T09:33:47.535Z","bumped":true,"bumped_at":"2026-05-20T09:33:47.535Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":154,"name":"build-tool","slug":"build-tool"},{"id":278,"name":"erlang","slug":"erlang"}],"tags_descriptions":{},"views":503,"like_count":10,"has_summary":false,"last_poster_username":"ieQu1","category_id":23,"op_like_count":4,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":1986,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1746,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Edbg - tracer, debugger and supervisor tree browser","id":2179,"title":"Edbg - tracer, debugger and supervisor tree browser","slug":"edbg-tracer-debugger-and-supervisor-tree-browser","posts_count":7,"reply_count":1,"highest_post_number":7,"image_url":null,"created_at":"2022-12-16T15:21:25.699Z","last_posted_at":"2026-05-17T13:51:10.062Z","bumped":true,"bumped_at":"2026-05-17T13:51:10.062Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":557,"name":"edbg","slug":"edbg"}],"tags_descriptions":{},"views":913,"like_count":31,"has_summary":false,"last_poster_username":"etnt","category_id":23,"op_like_count":13,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":566,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"gmconfig - JSON-Schema validator and config lookup API","id":5631,"title":"gmconfig - JSON-Schema validator and config lookup API","slug":"gmconfig-json-schema-validator-and-config-lookup-api","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2026-05-14T17:01:56.550Z","last_posted_at":"2026-05-16T13:25:45.827Z","bumped":true,"bumped_at":"2026-05-16T13:25:45.827Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":236,"name":"configuration","slug":"configuration"},{"id":317,"name":"json","slug":"json"},{"id":149,"name":"openapi","slug":"openapi"}],"tags_descriptions":{},"views":96,"like_count":2,"has_summary":false,"last_poster_username":"uwiger","category_id":23,"op_like_count":2,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":75,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":193,"primary_group_id":70,"flair_group_id":63}]},{"fancy_title":"Pooler - the most advanced Erlang worker pool library","id":2571,"title":"Pooler - the most advanced Erlang worker pool library","slug":"pooler-the-most-advanced-erlang-worker-pool-library","posts_count":14,"reply_count":7,"highest_post_number":14,"image_url":null,"created_at":"2023-04-26T16:13:55.717Z","last_posted_at":"2026-05-15T14:52:53.920Z","bumped":true,"bumped_at":"2026-05-15T14:52:53.920Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":610,"name":"pooler","slug":"pooler"}],"tags_descriptions":{},"views":2351,"like_count":47,"has_summary":false,"last_poster_username":"seriyps","category_id":23,"op_like_count":24,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":175,"primary_group_id":78,"flair_group_id":78},{"extras":null,"description":"Frequent Poster","user_id":220,"primary_group_id":61,"flair_group_id":61},{"extras":null,"description":"Frequent Poster","user_id":784,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":193,"primary_group_id":70,"flair_group_id":63},{"extras":null,"description":"Frequent Poster","user_id":1654,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Kura - Ecto-inspired database layer for Erlang","id":5453,"title":"Kura - Ecto-inspired database layer for Erlang","slug":"kura-ecto-inspired-database-layer-for-erlang","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2026-02-23T21:01:50.536Z","last_posted_at":"2026-05-08T18:45:50.887Z","bumped":true,"bumped_at":"2026-05-08T18:45:50.887Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":278,"name":"erlang","slug":"erlang"}],"tags_descriptions":{},"views":310,"like_count":20,"has_summary":false,"last_poster_username":"Taure","category_id":23,"op_like_count":15,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":80,"primary_group_id":59,"flair_group_id":59}]},{"fancy_title":"Shigoto - Background job processing","id":5512,"title":"Shigoto - Background job processing","slug":"shigoto-background-job-processing","posts_count":4,"reply_count":2,"highest_post_number":4,"image_url":null,"created_at":"2026-03-27T07:06:03.543Z","last_posted_at":"2026-05-08T11:24:24.902Z","bumped":true,"bumped_at":"2026-05-08T11:24:24.902Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":415,"name":"database","slug":"database"},{"id":278,"name":"erlang","slug":"erlang"}],"tags_descriptions":{},"views":252,"like_count":14,"has_summary":false,"last_poster_username":"Taure","category_id":23,"op_like_count":8,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":80,"primary_group_id":59,"flair_group_id":59},{"extras":null,"description":"Frequent Poster","user_id":1038,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Jiffy - JSON NIF for Erlang","id":5621,"title":"Jiffy - JSON NIF for Erlang","slug":"jiffy-json-nif-for-erlang","posts_count":3,"reply_count":1,"highest_post_number":3,"image_url":null,"created_at":"2026-05-05T03:21:34.857Z","last_posted_at":"2026-05-05T11:02:31.759Z","bumped":true,"bumped_at":"2026-05-05T11:02:31.759Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":372,"name":"jiffy","slug":"jiffy"}],"tags_descriptions":{},"views":170,"like_count":4,"has_summary":false,"last_poster_username":"Benjamin-Philip","category_id":23,"op_like_count":3,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":327,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":816,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"zz - composable schema validation for Erlang, inspired by Zod","id":5618,"title":"zz - composable schema validation for Erlang, inspired by Zod","slug":"zz-composable-schema-validation-for-erlang-inspired-by-zod","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-05-02T22:08:19.057Z","last_posted_at":"2026-05-02T22:08:19.121Z","bumped":true,"bumped_at":"2026-05-02T22:08:19.121Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":996,"name":"zz","slug":"zz"}],"tags_descriptions":{},"views":97,"like_count":3,"has_summary":false,"last_poster_username":"deniz","category_id":23,"op_like_count":3,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2519,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"ErlAlign - a column-aligning code formatter for Erlang","id":5585,"title":"ErlAlign - a column-aligning code formatter for Erlang","slug":"erlalign-a-column-aligning-code-formatter-for-erlang","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-28T02:57:14.057Z","last_posted_at":"2026-04-28T02:57:14.120Z","bumped":true,"bumped_at":"2026-04-28T02:57:14.120Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":802,"name":"code","slug":"code"},{"id":292,"name":"code-formatters","slug":"code-formatters"}],"tags_descriptions":{},"views":87,"like_count":5,"has_summary":false,"last_poster_username":"saleyn","category_id":23,"op_like_count":5,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":782,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Rebar3_uncovered - Plug-in to show uncovered lines","id":5550,"title":"Rebar3_uncovered - Plug-in to show uncovered lines","slug":"rebar3-uncovered-plug-in-to-show-uncovered-lines","posts_count":9,"reply_count":6,"highest_post_number":9,"image_url":"https://erlangforums.com/uploads/default/optimized/2X/e/e8398952af1a6d20b28f53fcace98ad4e094af80_2_1024x585.jpeg","created_at":"2026-04-10T22:35:10.307Z","last_posted_at":"2026-04-20T08:31:03.635Z","bumped":true,"bumped_at":"2026-04-20T08:31:03.635Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":561,"name":"common-test","slug":"561-tag"},{"id":401,"name":"common_test","slug":"common-test"},{"id":977,"name":"cover","slug":"cover"},{"id":450,"name":"eunit","slug":"eunit"},{"id":383,"name":"plug-in","slug":"plug-in"},{"id":790,"name":"plugins","slug":"plugins"},{"id":208,"name":"rebar3","slug":"rebar3"},{"id":976,"name":"rebar3_uncovered","slug":"rebar3-uncovered"},{"id":1,"name":"test","slug":"test"}],"tags_descriptions":{},"views":197,"like_count":15,"has_summary":false,"last_poster_username":"phild","category_id":23,"op_like_count":8,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":220,"primary_group_id":61,"flair_group_id":61},{"extras":null,"description":"Frequent Poster","user_id":225,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":458,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Mnesia_rocksdb - fast and scalable mnesia backend","id":4834,"title":"Mnesia_rocksdb - fast and scalable mnesia backend","slug":"mnesia-rocksdb-fast-and-scalable-mnesia-backend","posts_count":15,"reply_count":6,"highest_post_number":15,"image_url":null,"created_at":"2025-06-16T12:54:25.285Z","last_posted_at":"2026-04-17T15:40:27.520Z","bumped":true,"bumped_at":"2026-04-17T15:40:27.520Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":415,"name":"database","slug":"database"},{"id":240,"name":"mnesia","slug":"mnesia"},{"id":638,"name":"rocksdb","slug":"rocksdb"}],"tags_descriptions":{},"views":661,"like_count":30,"has_summary":false,"last_poster_username":"uwiger","category_id":23,"op_like_count":14,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":75,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":1038,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":13,"primary_group_id":41,"flair_group_id":41},{"extras":null,"description":"Frequent Poster","user_id":21,"primary_group_id":70,"flair_group_id":70}]},{"fancy_title":"Erlang_quic - QUIC Distribution for Erlang Clusters","id":5547,"title":"Erlang_quic - QUIC Distribution for Erlang Clusters","slug":"erlang-quic-quic-distribution-for-erlang-clusters","posts_count":8,"reply_count":5,"highest_post_number":8,"image_url":null,"created_at":"2026-04-09T19:41:57.797Z","last_posted_at":"2026-04-12T15:11:14.950Z","bumped":true,"bumped_at":"2026-04-12T15:11:14.950Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":278,"name":"erlang","slug":"erlang"},{"id":469,"name":"quic","slug":"quic"},{"id":464,"name":"quic_dist","slug":"quic-dist"}],"tags_descriptions":{},"views":375,"like_count":22,"has_summary":false,"last_poster_username":"benoitc","category_id":23,"op_like_count":18,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":21,"primary_group_id":70,"flair_group_id":70},{"extras":null,"description":"Frequent Poster","user_id":433,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":7,"primary_group_id":41,"flair_group_id":41},{"extras":null,"description":"Frequent Poster","user_id":59,"primary_group_id":70,"flair_group_id":70}]},{"fancy_title":"Keysmith - a library for generating unique IDs","id":5521,"title":"Keysmith - a library for generating unique IDs","slug":"keysmith-a-library-for-generating-unique-ids","posts_count":4,"reply_count":1,"highest_post_number":4,"image_url":null,"created_at":"2026-04-01T08:38:38.656Z","last_posted_at":"2026-04-09T13:39:48.977Z","bumped":true,"bumped_at":"2026-04-09T13:39:48.977Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":972,"name":"keysmith","slug":"keysmith"},{"id":645,"name":"library","slug":"library"},{"id":785,"name":"typeid","slug":"typeid"},{"id":784,"name":"uuid","slug":"uuid"}],"tags_descriptions":{},"views":229,"like_count":17,"has_summary":false,"last_poster_username":"eproxus","category_id":23,"op_like_count":15,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":220,"primary_group_id":61,"flair_group_id":61},{"extras":null,"description":"Frequent Poster","user_id":80,"primary_group_id":59,"flair_group_id":59},{"extras":null,"description":"Frequent Poster","user_id":1470,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Xb5 - B-tree ordered maps / sets / multisets","id":5540,"title":"Xb5 - B-tree ordered maps / sets / multisets","slug":"xb5-b-tree-ordered-maps-sets-multisets","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":"https://erlangforums.com/uploads/default/optimized/2X/d/d68d4cee6a8d3f7ef5c2ecf7e984f35f1596f620_2_1024x734.jpeg","created_at":"2026-04-08T21:42:20.795Z","last_posted_at":"2026-04-08T21:42:20.859Z","bumped":true,"bumped_at":"2026-04-08T21:42:20.859Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":802,"name":"code","slug":"code"}],"tags_descriptions":{},"views":99,"like_count":8,"has_summary":false,"last_poster_username":"g-andrade","category_id":23,"op_like_count":8,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":199,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Spectra - Type-driven JSON encoding/decoding, validation, and OpenAPI generation","id":5530,"title":"Spectra - Type-driven JSON encoding/decoding, validation, and OpenAPI generation","slug":"spectra-type-driven-json-encoding-decoding-validation-and-openapi-generation","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-04-06T14:38:02.079Z","last_posted_at":"2026-04-06T14:38:02.146Z","bumped":true,"bumped_at":"2026-04-06T14:38:02.146Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":317,"name":"json","slug":"json"}],"tags_descriptions":{},"views":84,"like_count":4,"has_summary":false,"last_poster_username":"andreashasse","category_id":23,"op_like_count":4,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":2443,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Asobi - Open source game backend built on OTP","id":5515,"title":"Asobi - Open source game backend built on OTP","slug":"asobi-open-source-game-backend-built-on-otp","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-03-31T19:53:16.244Z","last_posted_at":"2026-03-31T19:53:16.313Z","bumped":true,"bumped_at":"2026-03-31T19:53:16.313Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":278,"name":"erlang","slug":"erlang"},{"id":447,"name":"game","slug":"game"}],"tags_descriptions":{},"views":148,"like_count":12,"has_summary":false,"last_poster_username":"Taure","category_id":23,"op_like_count":12,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":80,"primary_group_id":59,"flair_group_id":59}]},{"fancy_title":"Erlang-ci - Standardized GitHub Actions CI for Erlang/OTP projects","id":5492,"title":"Erlang-ci - Standardized GitHub Actions CI for Erlang/OTP projects","slug":"erlang-ci-standardized-github-actions-ci-for-erlang-otp-projects","posts_count":10,"reply_count":6,"highest_post_number":10,"image_url":null,"created_at":"2026-03-14T06:06:15.978Z","last_posted_at":"2026-03-25T20:03:09.417Z","bumped":true,"bumped_at":"2026-03-25T20:03:09.417Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":964,"name":"ci","slug":"ci"},{"id":278,"name":"erlang","slug":"erlang"}],"tags_descriptions":{},"views":282,"like_count":14,"has_summary":false,"last_poster_username":"Taure","category_id":23,"op_like_count":11,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest","description":"Original Poster, Most Recent Poster","user_id":80,"primary_group_id":59,"flair_group_id":59},{"extras":null,"description":"Frequent Poster","user_id":829,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Lee - a schema-based O&amp;M framework for Erlang","id":5504,"title":"Lee - a schema-based O&M framework for Erlang","slug":"lee-a-schema-based-o-m-framework-for-erlang","posts_count":1,"reply_count":0,"highest_post_number":1,"image_url":null,"created_at":"2026-03-20T22:47:09.475Z","last_posted_at":"2026-03-20T22:47:09.524Z","bumped":true,"bumped_at":"2026-03-20T22:47:09.524Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":236,"name":"configuration","slug":"configuration"},{"id":970,"name":"oam","slug":"oam"}],"tags_descriptions":{},"views":150,"like_count":4,"has_summary":false,"last_poster_username":"ieQu1","category_id":23,"op_like_count":4,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":"latest single","description":"Original Poster, Most Recent Poster","user_id":1986,"primary_group_id":null,"flair_group_id":null}]},{"fancy_title":"Crazierl - an Erlang Operating System","id":5500,"title":"Crazierl - an Erlang Operating System","slug":"crazierl-an-erlang-operating-system","posts_count":4,"reply_count":3,"highest_post_number":4,"image_url":null,"created_at":"2026-03-19T02:21:27.404Z","last_posted_at":"2026-03-20T09:28:46.071Z","bumped":true,"bumped_at":"2026-03-20T09:28:46.071Z","archetype":"regular","unseen":false,"pinned":false,"unpinned":null,"visible":true,"closed":false,"archived":false,"bookmarked":null,"liked":null,"tags":[{"id":967,"name":"crazierl","slug":"crazierl"},{"id":743,"name":"operating-systems","slug":"operating-systems"}],"tags_descriptions":{},"views":294,"like_count":16,"has_summary":false,"last_poster_username":"WadeMealing","category_id":23,"op_like_count":11,"pinned_globally":false,"has_accepted_answer":false,"can_vote":false,"posters":[{"extras":null,"description":"Original Poster","user_id":2484,"primary_group_id":null,"flair_group_id":null},{"extras":null,"description":"Frequent Poster","user_id":924,"primary_group_id":null,"flair_group_id":null},{"extras":"latest","description":"Most Recent Poster","user_id":2329,"primary_group_id":null,"flair_group_id":null}]}]}}