{"openapi":"3.1.0","info":{"title":"Lobsters API","version":"1.0.0","description":"A live feed of the Lobsters computing social-news community (lobste.rs) as an API. Pull the hottest (front-page) or newest stories with their score, comment count, tags and submitter; fetch a single story by its short id; list the stories filed under a tag; look a user's profile up (karma, join date, about); or list every tag. The Lobsters front page and community graph as clean JSON for social, news-aggregation, reading-list and dashboard apps. Live data, no key. Distinct from other social-news platforms.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/lobsters-api","description":"oanor gateway"}],"tags":[{"name":"Stories"},{"name":"Community"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/hottest":{"get":{"operationId":"get_v1_hottest","tags":["Stories"],"summary":"Hottest (front-page) stories","description":"","parameters":[{"name":"limit","in":"query","required":false,"description":"Max 1-100","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":25,"total":25,"stories":[{"url":"https://www.apple.com/apple-events/event-stream/","tags":["event","ios","mac","swift","video"],"score":56,"title":"WWDC 2026","short_id":"awlukh","submitter":"calvin","created_at":"2026-06-08T11:52:38.000-05:00","description":"You'd think I'd forget dubdub? (Title isn't WWDC because the site thinks I'M SCREAMING IN ALL CAPS.)","comments_url":"https://lobste.rs/s/awlukh/wwdc_2026","lobsters_url":"https://lobste.rs/s/awlukh","comment_count":13},{"url":"https://invlpg.com/posts/2025-06-19-premature-optimization.html","tags":["c","performance"],"score":78,"title":"Premature Optimization is Fun Sometimes (2025)","short_id":"109l2t","submitter":"invlpg","created_at":"2026-06-08T02:41:58.000-05:00","comments_url":"https://lobste.rs/s/109l2t/premature_optimization_is_fun_sometimes","lobsters_url":"https://lobste.rs/s/109l2t","comment_count":9},{"tags":["meta","vibecoding"],"score":112,"title":"Can we stop tagging every thing as vibecoding?","short_id":"qgy6ak","submitter":"LAC-Tech","created_at":"2026-06-08T10:12:16.000-05:00","description":"Any article that even slightly mentions that AI exists is tagged as vibecoding, even when they have nothing to do with it. It:s getting out of hand.\r\n\r\nEXAMPLE 1:\r\n\r\nhttps://lobste.rs/s/ly0vif/my_students\r\n\r\nTagged as vibecoding, article contains a *single* passing reference\r\n\r\n>  where people are racing to create intelligent machines, but only in order to make them slaves\r\n\r\nEXAMPLE 2 (my own article; biased)\r\n\r\nhttps://lobste.rs/s/vufbvv/user_doesn_t_care_you_should\r\n\r\nI quoted a *SINGLE* example of someone putting an agentic spin on an old trope:\r\n\r\n> \"Users don’t care whether the code was written by AI or by hand, or which framework you used. They care that the product works.\"\r\n\r\nEXAMPLE 3\r\n\r\nhttps://lobste.rs/s/gefcox/jolt_clojure_interpreter_on_janet\r\n\r\nThis is a code repo. There is no AGENTS.md, or CLAUDE.md, or any mention of AI in the readme...\r\n\r\nEXAMPLE 4:\r\n\r\nthis post, which someone will inevitably tag as \"vibecoding\"","comments_url":"https://lobste.rs/s/qgy6ak/can_we_stop_tagging_every_thing_as","lobsters_url":"https://lobste.rs/s/qgy6ak","comment_count":66},{"url":"https://github.com/luke8086/gentleos32","tags":["c","osdev","show"],"score":46,"title":"GentleOS - A pair of hobby OSes for vintage 32-bit and 16-bit PCs","short_id":"1umrbv","submitter":"luke8086","created_at":"2026-06-08T03:57:39.000-05:00","comments_url":"https://lobste.rs/s/1umrbv/gentleos_pair_hobby_oses_for_vintage_32","lobsters_url":"https://lobste.rs/s/1umrbv","comment_count":8},{"url":"https://hackers.pub/@hongminhee/2026/i-wish-deno-would-keep-doing-what-it-does-best","tags":["javascript"],"score":23,"title":"I wish Deno would keep doing what it does best","short_id":"cpyxnw","submitter":"hongminhee","created_at":"2026-06-08T08:33:45.000-05:00","comments_url":"https://lobste.rs/s/cpyxnw/i_wish_deno_would_keep_doing_what_it_does","lobsters_url":"https://lobste.rs/s/cpyxnw","comment_count":4},{"url":"https://dbushell.com/2024/04/16/htmx-and-modern-javascript/","tags":["javascript","web"],"score":33,"title":"HTMX Is So Cool I Rolled My Own (2024)","short_id":"8hiogg","submitter":"FedericoSchonborn","created_at":"2026-06-08T07:20:23.000-05:00","comments_url":"https://lobste.rs/s/8hiogg/htmx_is_so_cool_i_rolled_my_own_2024","lobsters_url":"https://lobste.rs/s/8hiogg","comment_count":15},{"url":"https://anil.recoil.org/notes/recoil-self-hosting-2026","tags":["ml","networking","security"],"score":14,"title":"Self-hosting email the hard way from your own routable IPv4 block up","short_id":"cw7vxa","submitter":"ryangibb","created_at":"2026-06-08T16:47:00.000-05:00","comments_url":"https://lobste.rs/s/cw7vxa/self_hosting_email_hard_way_from_your_own","lobsters_url":"https://lobste.rs/s/cw7vxa","comment_count":3},{"url":"https://www.chiply.dev/post-svg-line","tags":["emacs","vibecoding"],"score":19,"title":"svg-line: Better Status Bars for Emacs","short_id":"bqjxzj","submitter":"chiply","created_at":"2026-06-08T07:24:26.000-05:00","comments_url":"https://lobste.rs/s/bqjxzj/svg_line_better_status_bars_for_emacs","lobsters_url":"https://lobste.rs/s/bqjxzj","comment_count":4},{"url":"https://mijndertstuij.nl/posts/what-i-got-wrong-about-fast-terminals/","tags":["linux","performance"],"score":12,"title":"What I got wrong about fast terminals","short_id":"pf0tx3","submitter":"edwardloveall","created_at":"2026-06-08T17:39:29.000-05:00","comments_url":"https://lobste.rs/s/pf0tx3/what_i_got_wrong_about_fast_terminals","lobsters_url":"https://lobste.rs/s/pf0tx3","comment_count":0},{"url":"https://forgejo.org/2026-05-monthly-report/","tags":["vcs","web"],"score":16,"title":"Forgejo monthly report - May 2026","short_id":"ewaxh7","submitter":"FedericoSchonborn","created_at":"2026-06-08T13:41:21.000-05:00","comments_url":"https://lobste.rs/s/ewaxh7/forgejo_monthly_report_may_2026","lobsters_url":"https://lobste.rs/s/ewaxh7","comment_count":2},{"url":"https://astral.sh/blog/uv-audit","tags":["python","security"],"score":11,"title":"Vulnerability and malware checks in uv","short_id":"mct5rz","submitter":"yossarian","created_at":"2026-06-08T11:29:42.000-05:00","comments_url":"https://lobste.rs/s/mct5rz/vulnerability_malware_checks_uv","lobsters_url":"https://lobste.rs/s/mct5rz","comment_count":0},{"url":"https://www.redox-os.org/news/this-month-260531/","tags":["osdev","rust"],"score":16,"title":"This Month in Redox - May 2026 - Redox - Your Next(Gen) OS","short_id":"6ixkjy","submitter":"sp6370","created_at":"2026-06-08T12:02:35.000-05:00","comments_url":"https://lobste.rs/s/6ixkjy/this_month_redox_may_2026_redox_your_next","lobsters_url":"https://lobste.rs/s/6ixkjy","comment_count":2},{"url":"https://codedbearder.com/posts/nixidy-part-1-introduction/","tags":["devops","nix"],"score":7,"title":"Introduction to nixidy - Kubernetes GitOps with nix","short_id":"nwrobx","submitter":"granra","created_at":"2026-06-08T10:21:54.000-05:00","comments_url":"https://lobste.rs/s/nwrobx/introduction_nixidy_kubernetes_gitops","lobsters_url":"https://lobste.rs/s/nwrobx","comment_count":4},{"url":"https://opensource.posit.co/blog/2026-05-21_in-defense-of-yaml/","tags":["web"],"score":44,"title":"In Defense of YAML","short_id":"metnis","submitter":"nrposner","created_at":"2026-06-07T20:36:33.000-05:00","comments_url":"https://lobste.rs/s/metnis/defense_yaml","lobsters_url":"https://lobste.rs/s/metnis","comment_count":56},{"url":"http://ozark.hendrix.edu/~yorgey/forest/00FD/index.xml","tags":["education","vibecoding"],"score":280,"title":"To my students","short_id":"ly0vif","submitter":"kngl","created_at":"2026-06-07T02:27:26.000-05:00","comments_url":"https://lobste.rs/s/ly0vif/my_students","lobsters_url":"https://lobste.rs/s/ly0vif","comment_count":64},{"url":"https://joshcollinsworth.com/blog/productivity","tags":["vibecoding"],"score":27,"title":"LLMs and performative productivity","short_id":"huxou2","submitter":"gregnavis","created_at":"2026-06-08T03:30:44.000-05:00","comments_url":"https://lobste.rs/s/huxou2/llms_performative_productivity","lobsters_url":"https://lobste.rs/s/huxou2","comment_count":1},{"url":"https://lemire.me/blog/2026/06/06/how-much-do-amd64-microarchitecture-levels-help-in-go/","tags":["go","performance"],"score":27,"title":"How much do amd64 microarchitecture levels help in Go?","short_id":"cuh5an","submitter":"vbernat","created_at":"2026-06-08T01:02:27.000-05:00","comments_url":"https://lobste.rs/s/cuh5an/how_much_do_amd64_microarchitecture","lobsters_url":"https://lobste.rs/s/cuh5an","comment_count":7},{"url":"https://www.codingwithjesse.com/blog/rockstar-developers/","tags":["practices"],"score":2,"title":"Cleaning up after AI rockstar developers","short_id":"uvwcdo","submitter":"jesseskinner","created_at":"2026-06-08T21:32:38.000-05:00","comments_url":"https://lobste.rs/s/uvwcdo/cleaning_up_after_ai_rockstar_developers","lobsters_url":"https://lobste.rs/s/uvwcdo","comment_count":0},{"tags":["ask","programming"],"score":11,"title":"What are you doing this week?","short_id":"yiwcln","submitter":"caius","created_at":"2026-06-08T04:23:20.000-05:00","description":"What are you doing this week? Feel free to share!\r\n\r\nKeep in mind it’s OK to do nothing at all, too.","comments_url":"https://lobste.rs/s/yiwcln/what_are_you_doing_this_week","lobsters_url":"https://lobste.rs/s/yiwcln","comment_count":18},{"url":"https://thefoggiest.dev/2026/06/04/thunderbird-littering-my-home","tags":["email","systemd"],"score":5,"title":"Thunderbird littering my home","short_id":"qqq4sd","submitter":"abnercoimbre","created_at":"2026-06-08T11:00:18.000-05:00","comments_url":"https://lobste.rs/s/qqq4sd/thunderbird_littering_my_home","lobsters_url":"https://lobste.rs/s/qqq4sd","comment_count":4},{"url":"https://servo.org/blog/2026/05/31/april-in-servo/","tags":["browsers"],"score":70,"title":"April in Servo: new Android UI, focus, forms, security fixes, and more","short_id":"otyrox","submitter":"kreeft","created_at":"2026-06-07T16:24:55.000-05:00","comments_url":"https://lobste.rs/s/otyrox/april_servo_new_android_ui_focus_forms","lobsters_url":"https://lobste.rs/s/otyrox","comment_count":1},{"url":"https://github.com/pizlonator/fil-c/releases/tag/v0.679","tags":["c","release"],"score":13,"title":"Release Fil-C Linux/x86_64 version 0.679 · pizlonator/fil-c","short_id":"q3gqcs","submitter":"lollipopman","created_at":"2026-06-08T08:13:16.000-05:00","comments_url":"https://lobste.rs/s/q3gqcs/release_fil_c_linux_x86_64_version_0_679","lobsters_url":"https://lobste.rs/s/q3gqcs","comment_count":1},{"url":"https://github.com/DotFox/transit.c","tags":["c","clojure"],"score":9,"title":"A fast, zero-copy Transit-format reader and writer written in C","short_id":"i7moeh","submitter":"delaguardo","created_at":"2026-06-08T04:49:21.000-05:00","description":"## What is Transit?\r\n\r\n**[Transit](https://github.com/cognitect/transit-format)** is a format and a set of libraries for conveying values between applications written in different languages. It is layered on top of JSON and MessagePack, so you get their tooling and speed, but with a much richer type system and built-in payload compression. Think of it as \"JSON that round-trips real types\":\r\n\r\n- **Ground types from the host format**: maps, arrays, strings, numbers, booleans, null\r\n- **Extension types JSON lacks**: keywords `:foo`, symbols, instants (timestamps), UUIDs, URIs, big integers/decimals, characters, byte arrays, sets, and lists\r\n- **Built-in compression (caching)**: repeated map keys, keywords, symbols, and tags are written once and then referenced by a short `^N` code, so verbose, key-heavy payloads shrink dramatically\r\n- **Extensible via tagged values**: ship your own types over the wire with a tag plus a representation, and decode them with a custom handler — no more `{\"__type\": \"Date\", \"value\": \"...\"}` hacks\r\n- **Language-agnostic & self-describing**: originally from Cognitect/Clojure, with implementations across many languages\r\n\r\n**Learn more:** [Official Transit specification](https://github.com/cognitect/transit-format)","comments_url":"https://lobste.rs/s/i7moeh/fast_zero_copy_transit_format_reader","lobsters_url":"https://lobste.rs/s/i7moeh","comment_count":1},{"url":"https://blog.calif.io/p/oobdump-relocation-oriented-programming","tags":["security"],"score":4,"title":"Arbitrary code execution in objdump -g","short_id":"sbcasc","submitter":"albino","created_at":"2026-06-08T17:13:46.000-05:00","comments_url":"https://lobste.rs/s/sbcasc/arbitrary_code_execution_objdump_g","lobsters_url":"https://lobste.rs/s/sbcasc","comment_count":0},{"url":"https://tangled.org/devins.page/tinysub","tags":["show","web"],"score":16,"title":"tinysub: full-featured web player for Open Subsonic compatible music servers","short_id":"pfrdqs","submitter":"op","created_at":"2026-06-08T03:55:09.000-05:00","comments_url":"https://lobste.rs/s/pfrdqs/tinysub_full_featured_web_player_for_open","lobsters_url":"https://lobste.rs/s/pfrdqs","comment_count":1}]},"meta":{"timestamp":"2026-06-09T03:03:43.214Z","request_id":"6e92413c-8d93-4ef4-9fa4-866079573251"},"status":"ok","message":"Hottest stories retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/newest":{"get":{"operationId":"get_v1_newest","tags":["Stories"],"summary":"Newest stories","description":"","parameters":[{"name":"limit","in":"query","required":false,"description":"Max 1-100","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":25,"total":25,"stories":[{"url":"https://www.codingwithjesse.com/blog/rockstar-developers/","tags":["practices"],"score":2,"title":"Cleaning up after AI rockstar developers","short_id":"uvwcdo","submitter":"jesseskinner","created_at":"2026-06-08T21:32:38.000-05:00","comments_url":"https://lobste.rs/s/uvwcdo/cleaning_up_after_ai_rockstar_developers","lobsters_url":"https://lobste.rs/s/uvwcdo","comment_count":0},{"url":"https://arxiv.org/html/2409.05351","tags":["compsci","plt"],"score":0,"title":"𝜇⁢𝜆⁢ϵ⁢𝛿-Calculus: Self Optimizing Language that Seems to Exhibit Paradoxical Transfinite Cognitive Capabilities","short_id":"ta3ipk","submitter":"veqq","created_at":"2026-06-08T20:12:27.000-05:00","comments_url":"https://lobste.rs/s/ta3ipk/calculus_self_optimizing_language_seems","lobsters_url":"https://lobste.rs/s/ta3ipk","comment_count":1},{"url":"https://arstechnica.com/security/2026/06/for-the-2nd-time-in-weeks-microsoft-packages-laced-with-credential-stealer/","tags":["security"],"score":2,"title":"For the 2nd time in weeks, Microsoft packages laced with credential stealer","short_id":"ryxjww","submitter":"ashishb","created_at":"2026-06-08T20:10:41.000-05:00","comments_url":"https://lobste.rs/s/ryxjww/for_2nd_time_weeks_microsoft_packages","lobsters_url":"https://lobste.rs/s/ryxjww","comment_count":0},{"url":"https://www.youtube.com/watch?v=onKTVMmy-sA","tags":["games","retrocomputing","video"],"score":1,"title":"DOOM on Neo Geo progress","short_id":"yc2eai","submitter":"FedericoSchonborn","created_at":"2026-06-08T20:04:04.000-05:00","comments_url":"https://lobste.rs/s/yc2eai/doom_on_neo_geo_progress","lobsters_url":"https://lobste.rs/s/yc2eai","comment_count":0},{"url":"https://self-service.mirdin.com/software-design-in-the-age-of-ai","tags":["programming","vibecoding"],"score":-1,"title":"Software Design in the Age of AI","short_id":"vyvofv","submitter":"jkoppel","created_at":"2026-06-08T18:35:02.000-05:00","comments_url":"https://lobste.rs/s/vyvofv/software_design_age_ai","lobsters_url":"https://lobste.rs/s/vyvofv","comment_count":0},{"url":"https://vectrex.substack.com/p/cmoc-vs-vbcc-vs-gcc6809","tags":["compilers","performance","retrocomputing"],"score":1,"title":"CMOC vs VBCC vs GCC6809","short_id":"g5388n","submitter":"spc476","created_at":"2026-06-08T18:34:04.000-05:00","comments_url":"https://lobste.rs/s/g5388n/cmoc_vs_vbcc_vs_gcc6809","lobsters_url":"https://lobste.rs/s/g5388n","comment_count":0},{"url":"https://mijndertstuij.nl/posts/what-i-got-wrong-about-fast-terminals/","tags":["linux","performance"],"score":12,"title":"What I got wrong about fast terminals","short_id":"pf0tx3","submitter":"edwardloveall","created_at":"2026-06-08T17:39:29.000-05:00","comments_url":"https://lobste.rs/s/pf0tx3/what_i_got_wrong_about_fast_terminals","lobsters_url":"https://lobste.rs/s/pf0tx3","comment_count":0},{"url":"https://blog.calif.io/p/oobdump-relocation-oriented-programming","tags":["security"],"score":4,"title":"Arbitrary code execution in objdump -g","short_id":"sbcasc","submitter":"albino","created_at":"2026-06-08T17:13:46.000-05:00","comments_url":"https://lobste.rs/s/sbcasc/arbitrary_code_execution_objdump_g","lobsters_url":"https://lobste.rs/s/sbcasc","comment_count":0},{"url":"https://anil.recoil.org/notes/recoil-self-hosting-2026","tags":["ml","networking","security"],"score":14,"title":"Self-hosting email the hard way from your own routable IPv4 block up","short_id":"cw7vxa","submitter":"ryangibb","created_at":"2026-06-08T16:47:00.000-05:00","comments_url":"https://lobste.rs/s/cw7vxa/self_hosting_email_hard_way_from_your_own","lobsters_url":"https://lobste.rs/s/cw7vxa","comment_count":3},{"url":"https://security.apple.com/blog/expanding-pcc/","tags":["ai","privacy","security"],"score":3,"title":"Expanding Private Cloud Compute - Apple Security Research","short_id":"4xbzbk","submitter":"achivetta","created_at":"2026-06-08T15:57:56.000-05:00","comments_url":"https://lobste.rs/s/4xbzbk/expanding_private_cloud_compute_apple","lobsters_url":"https://lobste.rs/s/4xbzbk","comment_count":0},{"url":"https://www.gamedeveloper.com/design/more-dirty-coding-tricks-from-game-developers","tags":["games","historical"],"score":2,"title":"More dirty coding tricks from game developers (2015)","short_id":"oty27j","submitter":"meithecatte","created_at":"2026-06-08T15:57:28.000-05:00","comments_url":"https://lobste.rs/s/oty27j/more_dirty_coding_tricks_from_game","lobsters_url":"https://lobste.rs/s/oty27j","comment_count":0},{"url":"https://forgejo.org/2026-05-monthly-report/","tags":["vcs","web"],"score":16,"title":"Forgejo monthly report - May 2026","short_id":"ewaxh7","submitter":"FedericoSchonborn","created_at":"2026-06-08T13:41:21.000-05:00","comments_url":"https://lobste.rs/s/ewaxh7/forgejo_monthly_report_may_2026","lobsters_url":"https://lobste.rs/s/ewaxh7","comment_count":2},{"url":"https://crowdhailer.me/2026-06-08/a-programming-language-for-humans/","tags":["programming","vibecoding"],"score":0,"title":"A programming language for humans","short_id":"tvczml","submitter":"crowdhailer","created_at":"2026-06-08T12:11:36.000-05:00","comments_url":"https://lobste.rs/s/tvczml/programming_language_for_humans","lobsters_url":"https://lobste.rs/s/tvczml","comment_count":2},{"url":"https://www.redox-os.org/news/this-month-260531/","tags":["osdev","rust"],"score":16,"title":"This Month in Redox - May 2026 - Redox - Your Next(Gen) OS","short_id":"6ixkjy","submitter":"sp6370","created_at":"2026-06-08T12:02:35.000-05:00","comments_url":"https://lobste.rs/s/6ixkjy/this_month_redox_may_2026_redox_your_next","lobsters_url":"https://lobste.rs/s/6ixkjy","comment_count":2},{"url":"https://www.apple.com/apple-events/event-stream/","tags":["event","ios","mac","swift","video"],"score":56,"title":"WWDC 2026","short_id":"awlukh","submitter":"calvin","created_at":"2026-06-08T11:52:38.000-05:00","description":"You'd think I'd forget dubdub? (Title isn't WWDC because the site thinks I'M SCREAMING IN ALL CAPS.)","comments_url":"https://lobste.rs/s/awlukh/wwdc_2026","lobsters_url":"https://lobste.rs/s/awlukh","comment_count":13},{"url":"https://www.phoronix.com/news/Ubuntu-26.10-amd64v3-Packages","tags":["linux"],"score":2,"title":"Ubuntu 26.10 Experimenting x86-64-v3 Packages","short_id":"klowe2","submitter":"alemi","created_at":"2026-06-08T11:42:05.000-05:00","comments_url":"https://lobste.rs/s/klowe2/ubuntu_26_10_experimenting_x86_64_v3","lobsters_url":"https://lobste.rs/s/klowe2","comment_count":0},{"url":"https://astral.sh/blog/uv-audit","tags":["python","security"],"score":11,"title":"Vulnerability and malware checks in uv","short_id":"mct5rz","submitter":"yossarian","created_at":"2026-06-08T11:29:42.000-05:00","comments_url":"https://lobste.rs/s/mct5rz/vulnerability_malware_checks_uv","lobsters_url":"https://lobste.rs/s/mct5rz","comment_count":0},{"url":"https://performance.dev/how-is-linear-so-fast-a-technical-breakdown","tags":["javascript","performance"],"score":2,"title":"How's Linear so fast? A technical breakdown","short_id":"9isv8r","submitter":"carlana","created_at":"2026-06-08T11:10:48.000-05:00","comments_url":"https://lobste.rs/s/9isv8r/how_s_linear_so_fast_technical_breakdown","lobsters_url":"https://lobste.rs/s/9isv8r","comment_count":0},{"url":"https://thefoggiest.dev/2026/06/04/thunderbird-littering-my-home","tags":["email","systemd"],"score":5,"title":"Thunderbird littering my home","short_id":"qqq4sd","submitter":"abnercoimbre","created_at":"2026-06-08T11:00:18.000-05:00","comments_url":"https://lobste.rs/s/qqq4sd/thunderbird_littering_my_home","lobsters_url":"https://lobste.rs/s/qqq4sd","comment_count":4},{"url":"https://www.sciencedaily.com/releases/2026/06/260606015140.htm","tags":["graphics","science"],"score":4,"title":"Scientists finally complete Schrödinger’s 100-year-old color theory","short_id":"zsdjqm","submitter":"snej","created_at":"2026-06-08T10:50:25.000-05:00","comments_url":"https://lobste.rs/s/zsdjqm/scientists_finally_complete","lobsters_url":"https://lobste.rs/s/zsdjqm","comment_count":0},{"url":"https://codedbearder.com/posts/nixidy-part-1-introduction/","tags":["devops","nix"],"score":7,"title":"Introduction to nixidy - Kubernetes GitOps with nix","short_id":"nwrobx","submitter":"granra","created_at":"2026-06-08T10:21:54.000-05:00","comments_url":"https://lobste.rs/s/nwrobx/introduction_nixidy_kubernetes_gitops","lobsters_url":"https://lobste.rs/s/nwrobx","comment_count":4},{"url":"https://astral-os.org/posts/2026/05/31/audio_usb_nscde.html","tags":["osdev"],"score":3,"title":"AstralOS: Audio, USB, NsCDE and more","short_id":"elvclc","submitter":"mrunix","created_at":"2026-06-08T10:20:53.000-05:00","comments_url":"https://lobste.rs/s/elvclc/astralos_audio_usb_nscde_more","lobsters_url":"https://lobste.rs/s/elvclc","comment_count":0},{"tags":["meta","vibecoding"],"score":112,"title":"Can we stop tagging every thing as vibecoding?","short_id":"qgy6ak","submitter":"LAC-Tech","created_at":"2026-06-08T10:12:16.000-05:00","description":"Any article that even slightly mentions that AI exists is tagged as vibecoding, even when they have nothing to do with it. It:s getting out of hand.\r\n\r\nEXAMPLE 1:\r\n\r\nhttps://lobste.rs/s/ly0vif/my_students\r\n\r\nTagged as vibecoding, article contains a *single* passing reference\r\n\r\n>  where people are racing to create intelligent machines, but only in order to make them slaves\r\n\r\nEXAMPLE 2 (my own article; biased)\r\n\r\nhttps://lobste.rs/s/vufbvv/user_doesn_t_care_you_should\r\n\r\nI quoted a *SINGLE* example of someone putting an agentic spin on an old trope:\r\n\r\n> \"Users don’t care whether the code was written by AI or by hand, or which framework you used. They care that the product works.\"\r\n\r\nEXAMPLE 3\r\n\r\nhttps://lobste.rs/s/gefcox/jolt_clojure_interpreter_on_janet\r\n\r\nThis is a code repo. There is no AGENTS.md, or CLAUDE.md, or any mention of AI in the readme...\r\n\r\nEXAMPLE 4:\r\n\r\nthis post, which someone will inevitably tag as \"vibecoding\"","comments_url":"https://lobste.rs/s/qgy6ak/can_we_stop_tagging_every_thing_as","lobsters_url":"https://lobste.rs/s/qgy6ak","comment_count":66},{"url":"https://hackers.pub/@hongminhee/2026/i-wish-deno-would-keep-doing-what-it-does-best","tags":["javascript"],"score":23,"title":"I wish Deno would keep doing what it does best","short_id":"cpyxnw","submitter":"hongminhee","created_at":"2026-06-08T08:33:45.000-05:00","comments_url":"https://lobste.rs/s/cpyxnw/i_wish_deno_would_keep_doing_what_it_does","lobsters_url":"https://lobste.rs/s/cpyxnw","comment_count":4},{"url":"https://github.com/pizlonator/fil-c/releases/tag/v0.679","tags":["c","release"],"score":13,"title":"Release Fil-C Linux/x86_64 version 0.679 · pizlonator/fil-c","short_id":"q3gqcs","submitter":"lollipopman","created_at":"2026-06-08T08:13:16.000-05:00","comments_url":"https://lobste.rs/s/q3gqcs/release_fil_c_linux_x86_64_version_0_679","lobsters_url":"https://lobste.rs/s/q3gqcs","comment_count":1}]},"meta":{"timestamp":"2026-06-09T03:03:43.428Z","request_id":"3113f093-6dbb-4545-8bc0-117199d6a0a5"},"status":"ok","message":"Newest stories retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/story":{"get":{"operationId":"get_v1_story","tags":["Stories"],"summary":"Single story by short id","description":"","parameters":[{"name":"id","in":"query","required":true,"description":"Story short id","schema":{"type":"string"},"example":"109l2t"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"story":{"url":"https://invlpg.com/posts/2025-06-19-premature-optimization.html","tags":["c","performance"],"score":78,"title":"Premature Optimization is Fun Sometimes (2025)","comments":9,"short_id":"109l2t","submitter":"invlpg","created_at":"2026-06-08T02:41:58.000-05:00","comments_url":"https://lobste.rs/s/109l2t/premature_optimization_is_fun_sometimes","lobsters_url":"https://lobste.rs/s/109l2t","comment_count":9}},"meta":{"timestamp":"2026-06-09T03:03:43.631Z","request_id":"201906a2-a276-4b4a-b470-c25c6ddf2b11"},"status":"ok","message":"Story retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/tag":{"get":{"operationId":"get_v1_tag","tags":["Stories"],"summary":"Stories filed under a tag","description":"","parameters":[{"name":"tag","in":"query","required":true,"description":"Tag","schema":{"type":"string"},"example":"web"},{"name":"limit","in":"query","required":false,"description":"Max 1-100","schema":{"type":"string"},"example":"25"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"tag":"web","count":25,"total":25,"stories":[{"url":"https://forgejo.org/2026-05-monthly-report/","tags":["vcs","web"],"score":16,"title":"Forgejo monthly report - May 2026","short_id":"ewaxh7","submitter":"FedericoSchonborn","created_at":"2026-06-08T13:41:21.000-05:00","comments_url":"https://lobste.rs/s/ewaxh7/forgejo_monthly_report_may_2026","lobsters_url":"https://lobste.rs/s/ewaxh7","comment_count":2},{"url":"https://dbushell.com/2024/04/16/htmx-and-modern-javascript/","tags":["javascript","web"],"score":33,"title":"HTMX Is So Cool I Rolled My Own (2024)","short_id":"8hiogg","submitter":"FedericoSchonborn","created_at":"2026-06-08T07:20:23.000-05:00","comments_url":"https://lobste.rs/s/8hiogg/htmx_is_so_cool_i_rolled_my_own_2024","lobsters_url":"https://lobste.rs/s/8hiogg","comment_count":15},{"url":"https://tangled.org/devins.page/tinysub","tags":["show","web"],"score":16,"title":"tinysub: full-featured web player for Open Subsonic compatible music servers","short_id":"pfrdqs","submitter":"op","created_at":"2026-06-08T03:55:09.000-05:00","comments_url":"https://lobste.rs/s/pfrdqs/tinysub_full_featured_web_player_for_open","lobsters_url":"https://lobste.rs/s/pfrdqs","comment_count":1},{"url":"https://opensource.posit.co/blog/2026-05-21_in-defense-of-yaml/","tags":["web"],"score":44,"title":"In Defense of YAML","short_id":"metnis","submitter":"nrposner","created_at":"2026-06-07T20:36:33.000-05:00","comments_url":"https://lobste.rs/s/metnis/defense_yaml","lobsters_url":"https://lobste.rs/s/metnis","comment_count":56},{"url":"https://alexwlchan.net/2026/record-browser-video/","tags":["javascript","web"],"score":1,"title":"Using the Screen Capture API to record a browser window","short_id":"tvr60w","submitter":"sloanelybutsurely","created_at":"2026-06-07T08:24:17.000-05:00","comments_url":"https://lobste.rs/s/tvr60w/using_screen_capture_api_record_browser","lobsters_url":"https://lobste.rs/s/tvr60w","comment_count":0},{"url":"https://endler.dev/2026/how-other-link-checkers-recurse/","tags":["distributed","rust","web"],"score":5,"title":"How Other Link Checkers Do Recursion","short_id":"scnbr6","submitter":"quad","created_at":"2026-06-07T02:13:31.000-05:00","comments_url":"https://lobste.rs/s/scnbr6/how_other_link_checkers_do_recursion","lobsters_url":"https://lobste.rs/s/scnbr6","comment_count":1},{"url":"https://timothygu.me/urltester/","tags":["web"],"score":15,"title":"URL Parser Tester","short_id":"cdlumr","submitter":"kenballus","created_at":"2026-06-06T08:49:05.000-05:00","comments_url":"https://lobste.rs/s/cdlumr/url_parser_tester","lobsters_url":"https://lobste.rs/s/cdlumr","comment_count":2},{"url":"https://xeiaso.net/notes/2026/ipv6-zones-go-url/","tags":["devops","web"],"score":49,"title":"IPv6 zones in URLs are a mistake","short_id":"lcnc5e","submitter":"gmem","created_at":"2026-06-04T16:09:47.000-05:00","comments_url":"https://lobste.rs/s/lcnc5e/ipv6_zones_urls_are_mistake","lobsters_url":"https://lobste.rs/s/lcnc5e","comment_count":38},{"url":"https://motion.dev/magazine/collision-detection-in-hover-detection","tags":["games","web"],"score":3,"title":"Crashing cars and improving hover detection","short_id":"aufohg","submitter":"azhenley","created_at":"2026-06-04T15:20:21.000-05:00","comments_url":"https://lobste.rs/s/aufohg/crashing_cars_improving_hover_detection","lobsters_url":"https://lobste.rs/s/aufohg","comment_count":1},{"url":"https://www.adamsolove.com/ui/ducking/2026/06/03/better-podcast-ui.html","tags":["design","web"],"score":20,"title":"Designing a better podcast editor","short_id":"axxclh","submitter":"sloanelybutsurely","created_at":"2026-06-04T06:25:40.000-05:00","comments_url":"https://lobste.rs/s/axxclh/designing_better_podcast_editor","lobsters_url":"https://lobste.rs/s/axxclh","comment_count":2},{"url":"https://letsencrypt.org/2026/06/03/pq-certs.html","tags":["cryptography","security","web"],"score":39,"title":"A Post-Quantum Future for Let's Encrypt","short_id":"djguny","submitter":"fanf","created_at":"2026-06-03T14:07:13.000-05:00","comments_url":"https://lobste.rs/s/djguny/post_quantum_future_for_let_s_encrypt","lobsters_url":"https://lobste.rs/s/djguny","comment_count":0},{"url":"https://auth.pilcrowonpaper.com/","tags":["book","security","web"],"score":2,"title":"Pilcrow's auth book","short_id":"a9qqxl","submitter":"andrewchou","created_at":"2026-06-03T12:36:13.000-05:00","comments_url":"https://lobste.rs/s/a9qqxl/pilcrow_s_auth_book","lobsters_url":"https://lobste.rs/s/a9qqxl","comment_count":0},{"url":"https://sheep.horse/2026/6/parsing_xml_exif_from_.avif_files_(plus_a_rant).html","tags":["python","web"],"score":27,"title":"Parsing XML EXIF from .avif files (plus a rant)","short_id":"jx44nm","submitter":"AndrewStephens","created_at":"2026-06-03T10:22:33.000-05:00","comments_url":"https://lobste.rs/s/jx44nm/parsing_xml_exif_from_avif_files_plus_rant","lobsters_url":"https://lobste.rs/s/jx44nm","comment_count":5},{"url":"https://curatube-demo.vercel.app/","tags":["show","web"],"score":2,"title":"Curatube: a distraction free interface for YT playlists to focus on learning","short_id":"boq8pb","submitter":"metahost","created_at":"2026-06-03T08:33:22.000-05:00","description":"YouTube is an incredible resource for MOOCs but the platform itself is an absolute minefield of distractions.\r\n\r\nCuratube fixes this by transforming public playlists into focused, interactive courses entirely free from the feed. Take timestamped notes side by side with the video, navigate lectures effortlessly using interactive transcripts.\r\n\r\nBest of all, it's open source and designed to be easily self hosted! Looking forward to contributions, suggestions and general feedback. The demo above is read-only.\r\n\r\n:)","comments_url":"https://lobste.rs/s/boq8pb/curatube_distraction_free_interface_for","lobsters_url":"https://lobste.rs/s/boq8pb","comment_count":0},{"url":"https://www.dotfurry.org/","tags":["web"],"score":106,"title":".furry - A Top-Level Domain for furries","short_id":"1bie2j","submitter":"Aks","created_at":"2026-06-03T05:17:28.000-05:00","comments_url":"https://lobste.rs/s/1bie2j/furry_top_level_domain_for_furries","lobsters_url":"https://lobste.rs/s/1bie2j","comment_count":68},{"url":"https://blog.ammaraskar.com/github-token-stealing/","tags":["security","vscode","web"],"score":71,"title":"Full Disclosure: 1-Click GitHub Token Stealing via a VSCode Bug","short_id":"fysuyw","submitter":"ammar2","created_at":"2026-06-02T19:22:59.000-05:00","comments_url":"https://lobste.rs/s/fysuyw/full_disclosure_1_click_github_token","lobsters_url":"https://lobste.rs/s/fysuyw","comment_count":15},{"url":"https://www.tbray.org/ongoing/When/202x/2026/06/01/XML-and-JSON-in-2026","tags":["web"],"score":8,"title":"XML and JSON in 2026","short_id":"kdb2ed","submitter":"raymii","created_at":"2026-06-02T14:42:47.000-05:00","comments_url":"https://lobste.rs/s/kdb2ed/xml_json_2026","lobsters_url":"https://lobste.rs/s/kdb2ed","comment_count":0},{"url":"https://endler.dev/2026/lychee-recursion/","tags":["distributed","rust","web"],"score":16,"title":"Five Years of Trying to Add Recursion to lychee","short_id":"fsltyn","submitter":"vbernat","created_at":"2026-06-01T01:12:21.000-05:00","comments_url":"https://lobste.rs/s/fsltyn/five_years_trying_add_recursion_lychee","lobsters_url":"https://lobste.rs/s/fsltyn","comment_count":6},{"url":"https://csswizardry.com/2026/06/front-ends-missing-metric-the-tbt-window/","tags":["performance","web"],"score":2,"title":"Front-End’s Missing Metric: The TBT Window","short_id":"8eaumi","submitter":"nolan","created_at":"2026-05-31T10:18:10.000-05:00","comments_url":"https://lobste.rs/s/8eaumi/front_end_s_missing_metric_tbt_window","lobsters_url":"https://lobste.rs/s/8eaumi","comment_count":1},{"url":"https://specification.website/checklist/","tags":["vibecoding","web"],"score":5,"title":"Website checklist","short_id":"wgfasz","submitter":"runxiyu","created_at":"2026-05-31T03:33:10.000-05:00","comments_url":"https://lobste.rs/s/wgfasz/website_checklist","lobsters_url":"https://lobste.rs/s/wgfasz","comment_count":21},{"url":"https://pierre.computer/writing/on-rendering-diffs","tags":["performance","web"],"score":31,"title":"On Rendering Diffs","short_id":"e1kdrn","submitter":"jado","created_at":"2026-05-30T02:22:51.000-05:00","comments_url":"https://lobste.rs/s/e1kdrn/on_rendering_diffs","lobsters_url":"https://lobste.rs/s/e1kdrn","comment_count":5},{"url":"https://daringfireball.net/2026/05/what_is_a_dickover","tags":["design","web"],"score":147,"title":"What Is a Dickover?","short_id":"xsurh7","submitter":"carlana","created_at":"2026-05-29T20:09:37.000-05:00","comments_url":"https://lobste.rs/s/xsurh7/what_is_dickover","lobsters_url":"https://lobste.rs/s/xsurh7","comment_count":22},{"url":"https://github.com/justinfagnani/dom-templating-api-proposal/blob/main/EXPLAINER.md","tags":["browsers","web"],"score":3,"title":"DOM Templating API Proposal: Explainer","short_id":"cqcqsm","submitter":"yawaramin","created_at":"2026-05-29T15:32:57.000-05:00","comments_url":"https://lobste.rs/s/cqcqsm/dom_templating_api_proposal_explainer","lobsters_url":"https://lobste.rs/s/cqcqsm","comment_count":1},{"url":"https://waspdev.com/articles/2026-05-11/avoid-using-cdata-in-rss","tags":["web"],"score":14,"title":"Avoid using \"<![CDATA[ ... ]]>\" in RSS","short_id":"l9qosq","submitter":"matklad","created_at":"2026-05-29T05:03:21.000-05:00","comments_url":"https://lobste.rs/s/l9qosq/avoid_using_cdata_rss","lobsters_url":"https://lobste.rs/s/l9qosq","comment_count":17},{"url":"https://blog.tangled.org/ssh/","tags":["vcs","web"],"score":35,"title":"tail CI logs over SSH","short_id":"d9n2yd","submitter":"eti","created_at":"2026-05-28T19:07:10.000-05:00","comments_url":"https://lobste.rs/s/d9n2yd/tail_ci_logs_over_ssh","lobsters_url":"https://lobste.rs/s/d9n2yd","comment_count":7}]},"meta":{"timestamp":"2026-06-09T03:03:43.860Z","request_id":"f700dc9c-6066-40bf-9272-55d7e3e980e6"},"status":"ok","message":"Tag stories retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/tags":{"get":{"operationId":"get_v1_tags","tags":["Community"],"summary":"All tags","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"tags":[{"tag":"ruby","category":"languages","description":"Ruby programming"},{"tag":"event","category":"genre","description":"Events, conferences, and meetups"},{"tag":"person","category":"culture","description":"Stories about particular persons"},{"tag":"meta","category":"lobsters","description":"Lobsters-related bikeshedding - report bugs at https://github.com/lobsters/lobsters"},{"tag":"php","category":"languages","description":"PHP programming"},{"tag":"python","category":"languages","description":"Python programming"},{"tag":"news","category":"genre","description":"General news and current events"},{"tag":"design","category":"interaction","description":"Visual design"},{"tag":"science","category":"field","description":"It's \"Science\""},{"tag":"video","category":"format","description":"Link to a video"},{"tag":"pdf","category":"format","description":"Link to a PDF document"},{"tag":"lua","category":"languages","description":"Lua programming"},{"tag":"lisp","category":"languages","description":"Lisp and Scheme programming"},{"tag":"javascript","category":"languages","description":"Javascript programming"},{"tag":"vim","category":"tools","description":"Vim editor"},{"tag":"browsers","category":"platforms","description":"Web browsers"},{"tag":"security","category":"practices","description":"Netsec, appsec, and infosec"},{"tag":"openbsd","category":"os","description":"OpenBSD"},{"tag":"c","category":"languages","description":"C programming"},{"tag":"go","category":"languages","description":"Golang programming"},{"tag":"mobile","category":"platforms","description":"Mobile app/web development"},{"tag":"linux","category":"os","description":"Linux"},{"tag":"scaling","category":"practices","description":"Scaling and architecture"},{"tag":"unix","category":"os","description":"*nix"},{"tag":"android","category":"os","description":"Android"},{"tag":"ios","category":"os","description":"Apple iOS"},{"tag":"privacy","category":"practices","description":"Privacy"},{"tag":"ipv6","category":"platforms","description":"IPv6"},{"tag":"devops","category":"practices","description":"DevOps"},{"tag":"hardware","category":"field","description":"Hardware"},{"tag":"assembly","category":"languages","description":"Assembly programming"},{"tag":"compsci","category":"compsci","description":"Other computer science/programming"},{"tag":"book","category":"format","description":"Link to a book (not an ad or review)"},{"tag":"freebsd","category":"os","description":"FreeBSD"},{"tag":"reversing","category":"practices","description":"Reverse engineering"},{"tag":"networking","category":"compsci","description":"Networking"},{"tag":"release","category":"genre","description":"Software releases and announcements"},{"tag":"law","category":"culture","description":"Law, patents, and licensing"},{"tag":"databases","category":"tools","description":"Databases (SQL, NoSQL)"},{"tag":"virtualization","category":"practices","description":"Virtualization"},{"tag":"api","category":"practices","description":"API development/implementation"},{"tag":"web","category":"platforms","description":"Web development and news"},{"tag":"rant","category":"genre","description":"Rants and raves"},{"tag":"show","category":"format","description":"Show Lobsters / Projects"},{"tag":"math","category":"field","description":"Mathematics"},{"tag":"visualization","category":"interaction","description":"Data visualization"},{"tag":"mac","category":"os","description":"Apple macOS"},{"tag":"windows","category":"os","description":"Windows"},{"tag":"emacs","category":"tools","description":"Emacs editor"},{"tag":"philosophy","category":"culture","description":"Philosophy"},{"tag":"finance","category":"field","description":"Finance and economics"},{"tag":"announce","category":"lobsters","description":"Site anouncement"},{"tag":"scala","category":"languages","description":"Scala programming"},{"tag":"erlang","category":"languages","description":"Erlang development"},{"tag":"satire","category":"genre","description":"Satire, parody, and other humor"},{"tag":"cogsci","category":"field","description":"Cognitive Science"},{"tag":"java","category":"languages","description":"Java programming"},{"tag":"practices","category":"practices","description":"Development and team practices"},{"tag":"job","category":"genre","description":"Employment/Internship opportunities"},{"tag":"interview","category":"lobsters","description":"Lobsters interviews"},{"tag":"vcs","category":"tools","description":"Git, Mercurial, Perforce, Subversion, Jujutsu and other version control systems"},{"tag":"programming","category":"compsci","description":"Use when every tag or no specific tag applies"},{"tag":"games","category":"platforms","description":"Game design and study"},{"tag":"rust","category":"languages","description":"Rust programming"},{"tag":"slides","category":"format","description":"Slide deck"},{"tag":"merkle-trees","category":"platforms","description":"And related similar data structures. Not business/scam news."},{"tag":"dotnet","category":"languages","description":"C#, F#, .NET programming"},{"tag":"haskell","category":"languages","description":"Haskell programming"},{"tag":"ask","category":"format","description":"Ask Lobsters"},{"tag":"distributed","category":"compsci","description":"Distributed systems"},{"tag":"culture","category":"culture","description":"Technical communities and culture"},{"tag":"perl","category":"languages","description":"Perl programming"},{"tag":"art","category":"genre","description":"Art"},{"tag":"ml","category":"languages","description":"MetaLanguage, OCaml programming"},{"tag":"audio","category":"format","description":"Link to audio (podcast, interview)"},{"tag":"swift","category":"languages","description":"Swift programming"},{"tag":"compilers","category":"tools","description":"Compiler design"},{"tag":"elixir","category":"languages","description":"Elixir programming"},{"tag":"graphics","category":"compsci","description":"Graphics programming"},{"tag":"testing","category":"practices","description":"Software testing"},{"tag":"historical","category":"genre","description":"History and retrospectives (not for things that happen to be old)"},{"tag":"debugging","category":"practices","description":"Debugging techniques"},{"tag":"cryptography","category":"field","description":"Cryptography"},{"tag":"netbsd","category":"os","description":"NetBSD"},{"tag":"systemd","category":"tools","description":"Linux systemd"},{"tag":"nodejs","category":"languages","description":"Node.js programming"},{"tag":"css","category":"languages","description":"Cascading Style Sheets"},{"tag":"elm","category":"languages","description":"Elm programming"},{"tag":"education","category":"field","description":"Education"},{"tag":"formalmethods","category":"compsci","description":"Formal methods"},{"tag":"fortran","category":"languages","description":"Fortran programming"},{"tag":"c++","category":"languages","description":"C++ programming"},{"tag":"objectivec","category":"languages","description":"Objective-C programming"},{"tag":"performance","category":"practices","description":"Performance and optimization"},{"tag":"ai","category":"compsci","description":"Developing artificial intelligence, machine learning. Tag AI usage only with `vibecoding`."},{"tag":"dragonflybsd","category":"os","description":"DragonFly BSD"},{"tag":"clojure","category":"languages","description":"Clojure programming"},{"tag":"plt","category":"compsci","description":"Programming language theory, types, design"},{"tag":"illumos","category":"os","description":"illumos"},{"tag":"d","category":"languages","description":"D programming"},{"tag":"apl","category":"languages","description":"Array Programming Languages such as APL, J, and K"},{"tag":"transcript","category":"format","description":"Includes transcript of audio or video"},{"tag":"osdev","category":"compsci","description":"Operating system design and development when no specific OS tag exists"},{"tag":"wasm","category":"platforms","description":"webassembly"},{"tag":"a11y","category":"interaction","description":"accessibility, assistive technology, standards"},{"tag":"email","category":"platforms","description":"e-mail"},{"tag":"zig","category":"languages","description":"Zig programming"},{"tag":"nix","category":"os","description":"package manager, distribution, and related systems like guix"},{"tag":"kotlin","category":"languages","description":"Kotlin programming"},{"tag":"retrocomputing","category":"platforms","description":"Reproductions, emulators, and other revivals of historic technologies"},{"tag":"gleam","category":"languages","description":"Strongly-typed BEAM language"},{"tag":"editors","category":"tools","description":"Code editors and IDEs without a specific tag"},{"tag":"vscode","category":"tools","description":"Visual Studio Code editor"},{"tag":"vibecoding","category":"tools","description":"Using AI/LLM, coding tools. Don't also tag with `ai`."},{"tag":"concatenative","category":"languages","description":" stackbased languages like Forth, Factor, Joy"},{"tag":"logiclangs","category":"languages","description":"Prolog, Datalog, Z3, Picat, miniKanren, ASP etc. using clauses"}],"count":116},"meta":{"timestamp":"2026-06-09T03:03:44.093Z","request_id":"833bb2c7-f0f1-4153-9c59-51ea87a00f01"},"status":"ok","message":"Tags retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/user":{"get":{"operationId":"get_v1_user","tags":["Community"],"summary":"User profile","description":"","parameters":[{"name":"username","in":"query","required":true,"description":"Username","schema":{"type":"string"},"example":"jcs"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"user":{"about":"<p>hello, cyberpals</p>\n","karma":16853,"is_admin":false,"username":"jcs","avatar_url":"https://lobste.rs/avatars/jcs-100.png","created_at":"2012-06-30T16:39:19.000-05:00","is_moderator":false,"github_username":"jcs"}},"meta":{"timestamp":"2026-06-09T03:03:44.299Z","request_id":"16fe7d3f-8ae7-4627-8956-0bf790112cab"},"status":"ok","message":"User retrieved successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Service metadata","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"source":"lobste.rs public JSON (live)","service":"lobsters-api","endpoints":{"GET /v1/tag":"Stories filed under a tag (tag=, e.g. web, limit).","GET /v1/meta":"This document.","GET /v1/tags":"All tags with story counts.","GET /v1/user":"User profile (username=, e.g. jcs).","GET /v1/story":"Single story by short id (id=, e.g. ewaxh7).","GET /v1/newest":"Newest stories (limit).","GET /v1/hottest":"Hottest (front-page) stories (limit)."},"description":"Live feed of the Lobsters computing social-news community (lobste.rs): hottest and newest stories with score, comments, tags and submitter; single story by short id; stories by tag; user profiles (karma, join date, about); and the full tag list. Live, no key.","hottest_now":25},"meta":{"timestamp":"2026-06-09T03:03:44.488Z","request_id":"e43f568d-70ba-45cd-9f0d-4941157a861e"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":500,"rps_limit":5,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":800,"monthly_call_quota":15000,"rps_limit":15,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1900,"monthly_call_quota":70000,"rps_limit":30,"hard_limit":true},{"slug":"business","name":"Business","price_cents_month":4600,"monthly_call_quota":350000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/lobsters-api"}