56,966 blogs · [ { "id": "01a0d89d-a343-7176-b92a-efda942d01a6", "title": "Evolving programming languages in the AI era", "url": "https://dashbit.co/blog/evolving-ai-era", "published_at": "2026-09-24T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59502ada34", "title": "WebSockets vs. SSE should be about ordering and correctness", "url": "https://dashbit.co/blog/websockets-vs-sse", "published_at": "2026-08-25T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5950881a5e", "title": "Distributed Python dataframes and machine learning with Livebook and Elixir", "url": "https://dashbit.co/blog/distributed-python-livebook", "published_at": "2026-03-11T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5950bfd618", "title": "Type systems are leaky abstractions: the case of Map.take!/2", "url": "https://dashbit.co/blog/type-systems-are-leaky-abstractions-map-take", "published_at": "2026-03-03T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5950f9b23c", "title": "Why Elixir is the best language for AI", "url": "https://dashbit.co/blog/why-elixir-best-language-for-ai", "published_at": "2026-02-05T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59510c05d9", "title": "Zero Trust Auth for Plug/Phoenix apps is here", "url": "https://dashbit.co/blog/zero-trust-for-plug-phoenix", "published_at": "2025-12-16T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5951f83101", "title": "The path to Tidewave: beyond code intelligence", "url": "https://dashbit.co/blog/the-path-to-tidewave", "published_at": "2025-06-06T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5952b061cb", "title": "Embedding Python in Elixir, it's Fine", "url": "https://dashbit.co/blog/running-python-in-elixir-its-fine", "published_at": "2025-02-21T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5952eb3488", "title": "Dashbit plans for 2025", "url": "https://dashbit.co/blog/dashbit-plans-2025", "published_at": "2025-02-19T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5953cd1637", "title": "Data evolution with set-theoretic types", "url": "https://dashbit.co/blog/data-evolution-with-set-theoretic-types", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595453ad42", "title": "Remix's concurrent submissions are fundamentally flawed (without causal ordering)", "url": "https://dashbit.co/blog/remix-concurrent-submissions-flawed", "published_at": "2024-09-12T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59548754d4", "title": "Soft deletes with Ecto and PostgreSQL", "url": "https://dashbit.co/blog/soft-deletes-with-ecto", "published_at": "2024-08-13T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59549b364b", "title": "SDKs with Req: S3", "url": "https://dashbit.co/blog/sdks-with-req-s3", "published_at": "2024-07-18T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59557e3c60", "title": "SDKs with Req: Stripe", "url": "https://dashbit.co/blog/sdks-with-req-stripe", "published_at": "2024-06-25T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5956103143", "title": "Announcing Phoenix Playground", "url": "https://dashbit.co/blog/announcing-phoenix-playground", "published_at": "2024-06-18T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59562278d2", "title": "Web apps have client and server state (plus realtime and LiveView)", "url": "https://dashbit.co/blog/web-apps-have-client-and-server-state", "published_at": "2024-06-07T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59570ab946", "title": "Elixir and Machine Learning in 2024 so far: MLIR, Apache Arrow, structured LLM, and more", "url": "https://dashbit.co/blog/elixir-ml-s1-2024-mlir-arrow-instructor", "published_at": "2024-05-29T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5957242a51", "title": "Req v0.5 released", "url": "https://dashbit.co/blog/req-v0.5", "published_at": "2024-05-28T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595766de27", "title": "Req API Client Testing", "url": "https://dashbit.co/blog/req-api-client-testing", "published_at": "2024-04-02T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595832e346", "title": "Supercharge your app: latency and rendering optimizations in Phoenix LiveView", "url": "https://dashbit.co/blog/latency-rendering-liveview", "published_at": "2023-10-17T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59590a1d54", "title": "Elixir and Machine Learning: Q3 2023 roundup", "url": "https://dashbit.co/blog/elixir-and-machine-learning-q3-roundup", "published_at": "2023-10-03T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5959cc41c4", "title": "Why the dot (when calling anonymous functions)?", "url": "https://dashbit.co/blog/why-the-dot", "published_at": "2023-08-14T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5959f80344", "title": "Livebook as an educational tool", "url": "https://dashbit.co/blog/livebook-as-an-educational-tool", "published_at": "2022-07-26T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595a62fa2f", "title": "Elixir and Machine Learning: Nx v0.1 released!", "url": "https://dashbit.co/blog/elixir-and-machine-learning-nx-v0.1", "published_at": "2022-01-06T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595acdc9fc", "title": "Surface and Phoenix LiveView - what comes next?", "url": "https://dashbit.co/blog/surface-liveview", "published_at": "2021-05-18T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595adeeebc", "title": "Announcing Livebook", "url": "https://dashbit.co/blog/announcing-livebook", "published_at": "2021-04-13T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595b850d05", "title": "Goth redesign", "url": "https://dashbit.co/blog/goth-redesign", "published_at": "2021-03-09T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595b90035d", "title": "Nx (Numerical Elixir) is now publicly available", "url": "https://dashbit.co/blog/nx-numerical-elixir-is-now-publicly-available", "published_at": "2021-02-18T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595bffe8ca", "title": "Building custom Hex repositories", "url": "https://dashbit.co/blog/mix-hex-registry-build", "published_at": "2021-01-19T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595c5b1493", "title": "10 years(-ish) of Elixir", "url": "https://dashbit.co/blog/ten-years-ish-of-elixir", "published_at": "2021-01-11T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595ce9ce9c", "title": "How to debug Elixir/Erlang compiler performance", "url": "https://dashbit.co/blog/how-to-debug-elixir-erlang-compiler-performance", "published_at": "2020-12-15T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595d14cef7", "title": "Warnings as errors and tests", "url": "https://dashbit.co/blog/tests-with-warnings-as-errors", "published_at": "2020-11-24T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595d1fb1b3", "title": "You may not need Redis with Elixir", "url": "https://dashbit.co/blog/you-may-not-need-redis-with-elixir", "published_at": "2020-11-11T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595d2ccc73", "title": "Automatic and manual Ecto migrations", "url": "https://dashbit.co/blog/automatic-and-manual-ecto-migrations", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595d9b4adf", "title": "Introducing NimbleTOTP", "url": "https://dashbit.co/blog/introducing-nimble-totp", "published_at": "2020-08-01T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595dfc65b1", "title": "Homemade analytics with Ecto and Elixir", "url": "https://dashbit.co/blog/homemade-analytics-with-ecto-and-elixir", "published_at": "2020-07-16T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595e64e9f6", "title": "Using Bootstrap Native with Phoenix LiveView", "url": "https://dashbit.co/blog/using-bootstrap-native-with-live-view", "published_at": "2020-06-16T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa595f59eeef", "title": "Rewriting imports to aliases with compilation tracers", "url": "https://dashbit.co/blog/rewriting-imports-to-aliases-with-compilation-tracers", "published_at": "2020-04-07T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596021ebc5", "title": "An upcoming authentication solution for Phoenix", "url": "https://dashbit.co/blog/a-new-authentication-solution-for-phoenix", "published_at": "2020-03-26T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59604e74f0", "title": "Welcome to our blog: how it was made!", "url": "https://dashbit.co/blog/welcome-to-our-blog-how-it-was-made", "published_at": "2020-02-03T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5960b9847a", "title": "Kubernetes and the Erlang VM: orchestration on the large and the small", "url": "https://dashbit.co/blog/kubernetes-and-the-erlang-vm-orchestration-on-the-large-and-the-small", "published_at": "2019-10-01T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5960f0aba7", "title": "Using Broadway at Hexdocs.pm", "url": "https://dashbit.co/blog/using-broadway-at-hexdocs-pm", "published_at": "2019-09-17T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59613ccb67", "title": "Announcing MiniRepo, a minimal Hex server", "url": "https://dashbit.co/blog/announcing-minirepo-a-minimal-hex-server", "published_at": "2019-07-30T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5961cd6314", "title": "Updating Hex.pm to use Elixir releases", "url": "https://dashbit.co/blog/updating-hex-pm-to-use-elixir-releases", "published_at": "2019-05-29T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596241de3a", "title": "ExDoc v0.20: Keyboard shortcuts, autocompletion, full-text search, and more!", "url": "https://dashbit.co/blog/exdoc-v0-20-keyboard-shortcuts-autocompletion-full-text-search-and-more", "published_at": "2019-04-05T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5963396258", "title": "Announcing Broadway", "url": "https://dashbit.co/blog/announcing-broadway", "published_at": "2019-02-25T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5963cf4a08", "title": "Building a new MySQL adapter for Ecto Part IV: Ecto Integration", "url": "https://dashbit.co/blog/building-a-new-mysql-adapter-for-ecto-part-iv-ecto-integration", "published_at": "2019-01-04T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59649bbf2a", "title": "Building a new MySQL adapter for Ecto, Part III: DBConnection Integration", "url": "https://dashbit.co/blog/building-a-new-mysql-adapter-for-ecto-part-iii-dbconnection-integration", "published_at": "2018-12-21T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5964a11f04", "title": "Building a new MySQL adapter for Ecto, Part II: Encoding/Decoding", "url": "https://dashbit.co/blog/building-a-new-mysql-adapter-for-ecto-part-ii-encoding-decoding", "published_at": "2018-12-03T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5965632107", "title": "Building a new MySQL adapter for Ecto, Part I: Hello World", "url": "https://dashbit.co/blog/building-a-new-mysql-adapter-for-ecto-part-i-hello-world", "published_at": "2018-11-14T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5965c5bdab", "title": "Updating Hex.pm to Ecto 3.0", "url": "https://dashbit.co/blog/updating-hexpm-to-ecto-3-0", "published_at": "2018-10-25T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5966c1c19a", "title": "A sneak peek at Ecto 3.0: performance, migrations and more", "url": "https://dashbit.co/blog/a-sneak-peek-at-ecto-3-0-performance-migrations-and-more", "published_at": "2018-10-22T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59674bd38f", "title": "A sneak peek at Ecto 3.0: query improvements (part 2)", "url": "https://dashbit.co/blog/a-sneak-peek-at-ecto-3-0-query-improvements-part-2", "published_at": "2018-10-11T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5967ef7117", "title": "A sneak peek at Ecto 3.0: query improvements (part 1)", "url": "https://dashbit.co/blog/a-sneak-peek-at-ecto-3-0-query-improvements-part-1", "published_at": "2018-10-05T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5968740135", "title": "A sneak peek at Ecto 3.0: breaking changes", "url": "https://dashbit.co/blog/a-sneak-peek-at-ecto-3-0-breaking-changes", "published_at": "2018-10-01T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5968bfcce4", "title": "What's new in Flow v0.14", "url": "https://dashbit.co/blog/whatsnew-in-flow-v0.14", "published_at": "2018-07-18T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596903a8e5", "title": "The fallacies of web application performance", "url": "https://dashbit.co/blog/the-fallacies-of-web-application-performance", "published_at": "2017-06-26T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa59698bb18b", "title": "Replacing GenEvent by a Supervisor + GenServer", "url": "https://dashbit.co/blog/replacing-genevent-by-a-supervisor-plus-genserver", "published_at": "2016-11-12T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5969b71e66", "title": "Dynamic forms with Phoenix", "url": "https://dashbit.co/blog/dynamic-forms-with-phoenix", "published_at": "2016-09-29T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa5969dedca9", "title": "Beyond functional programming with Elixir and Erlang", "url": "https://dashbit.co/blog/beyond-functional-programming-with-elixir-and-erlang", "published_at": "2016-05-25T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596a86af6f", "title": "How to quit the Elixir shell (IEx)?", "url": "https://dashbit.co/blog/how-to-quit-the-elixir-shell", "published_at": "2016-03-03T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596b6b03d2", "title": "Stateless vs stateful web apps", "url": "https://dashbit.co/blog/stateless-vs-stateful-web-apps", "published_at": "2016-02-04T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596b85506b", "title": "Comparing Elixir and Erlang variables", "url": "https://dashbit.co/blog/comparing-elixir-and-erlang-variables", "published_at": "2016-01-12T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596bfeaaaa", "title": "Mocks and explicit contracts", "url": "https://dashbit.co/blog/mocks-and-explicit-contracts", "published_at": "2015-10-14T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596c5e248a", "title": "Working with Ecto associations and embeds", "url": "https://dashbit.co/blog/working-with-ecto-associations-and-embeds", "published_at": "2015-08-12T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596d076fbe", "title": "Introducing reducees", "url": "https://dashbit.co/blog/introducing-reducees", "published_at": "2015-05-14T00:00:00+00:00" }, { "id": "01a0b5e6-234f-729f-8868-fa596def624d", "title": "Writing assertive code with Elixir", "url": "https://dashbit.co/blog/writing-assertive-code-with-elixir", "published_at": "2014-09-24T00:00:00+00:00" } ] posts Claim your blog
Back to dashbit.co
Blog · corpus.blog/blogs/dashbit.co/posts

dashbit.co

dashbit.co

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014