41554 blogs · [ { "id": "01a087de-4dae-734d-8d3b-eaf3ede49912", "title": "Caching Remix Assets and Locales with a Service Worker", "url": "https://sergiodxa.com/articles/using-service-workers-with-remix", "published_at": "2021-06-29T06:08:42+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3edf71c98", "title": "Localizing Remix apps with i18next", "url": "https://sergiodxa.com/articles/localizing-remix-apps-with-i18next", "published_at": "2021-06-29T05:53:24+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3ee57ea0a", "title": "Adding CSRF protection to Remix", "url": "https://sergiodxa.com/articles/adding-csrf-protection-to-remix", "published_at": "2021-06-28T20:49:49+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3ef2f107d", "title": "Load only the data you need in Remix", "url": "https://sergiodxa.com/tutorials/load-only-the-data-you-need-in-remix", "published_at": "2021-06-18T16:45:32+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f02e26dd", "title": "Implementing Auth0 Login in Remix without Express", "url": "https://sergiodxa.com/articles/server-side-authentication-with-auth0-in-remix", "published_at": "2021-06-17T23:12:21+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f0c738fa", "title": "Using TailwindCSS with Remix", "url": "https://sergiodxa.com/articles/using-tailwindcss-with-remix", "published_at": "2021-06-17T22:13:00+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f12db66a", "title": "Use ETags in Remix", "url": "https://sergiodxa.com/tutorials/use-etags-in-remix", "published_at": "2021-06-16T16:32:36+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f1bceec5", "title": "Jest Matchers for Remix responses", "url": "https://sergiodxa.com/articles/jest-matchers-for-remix-responses", "published_at": "2021-06-01T22:44:26+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f2698193", "title": "Using Form Objects inside Remix actions", "url": "https://sergiodxa.com/articles/using-form-objects-inside-remix-actions", "published_at": "2021-06-01T05:51:41+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f2ac6a4c", "title": "Route protection in Remix with Policies", "url": "https://sergiodxa.com/articles/route-protection-in-remix-with-policies", "published_at": "2021-05-27T16:12:11+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f38e320f", "title": "Redirect to the original URL inside a Remix action", "url": "https://sergiodxa.com/tutorials/redirect-to-the-original-url-inside-a-remix-action", "published_at": "2021-05-20T21:29:16+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f468e077", "title": "Read search params with JS", "url": "https://sergiodxa.com/tutorials/read-search-params-with-js", "published_at": "2021-05-18T16:31:40+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f4971370", "title": "Use ActiveModel::Serializer with non ActiveRecord object", "url": "https://sergiodxa.com/tutorials/use-activemodel-serializer-with-non-activerecord-object", "published_at": "2021-05-17T20:15:30+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f4a0b6f0", "title": "Serialize list of items with ActiveModel::Serializer", "url": "https://sergiodxa.com/tutorials/serialize-list-of-items-with-activemodel-serializer", "published_at": "2021-05-17T18:42:02+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f4f291d3", "title": "Use serializers with JSON.stringify and JSON.parse", "url": "https://sergiodxa.com/tutorials/use-serializers-with-json-stringify-and-json-parse", "published_at": "2021-05-12T23:19:48+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f5f031e0", "title": "Force a locale in Rails I18n from the params", "url": "https://sergiodxa.com/tutorials/force-a-locale-in-rails-i18n-from-the-params", "published_at": "2021-05-11T05:02:35+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f6b9da03", "title": "Que es un bundler de JS", "url": "https://sergiodxa.com/articles/que-es-un-bundler-de-js", "published_at": "2021-05-07T03:53:50+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f6d6932c", "title": "Remix vs Next.js Comparison", "url": "https://sergiodxa.com/articles/remix-vs-next-js-comparison", "published_at": "2021-04-26T05:38:21+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f78b3ea0", "title": "Imagining native skip links", "url": "https://kittygiraudel.com/2021/03/07/imagining-native-skip-links/", "published_at": "2021-03-24T03:23:23+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f825f506", "title": "Add missing `created_at` and `updated_at` columns in Rails", "url": "https://sergiodxa.com/tutorials/add-missing-created_at-and-updated_at-columns-in-rails", "published_at": "2021-03-23T22:53:31+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f8379633", "title": "Rails design patterns - The big picture", "url": "https://longliveruby.com/articles/rails-design-patterns-the-big-picture", "published_at": "2021-03-03T20:39:25+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f916ae79", "title": "How to rename a column in a Rails migration", "url": "https://sergiodxa.com/articles/how-to-rename-a-column-in-a-rails-migration", "published_at": "2021-03-03T16:54:48+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f95b22f9", "title": "Before You memo()", "url": "https://overreacted.io/before-you-memo/", "published_at": "2021-02-23T05:55:44+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f96ff7be", "title": "Usar variables de entorno en Next.js", "url": "https://sergiodxa.com/articles/usar-variables-de-entorno-en-next-js", "published_at": "2021-02-23T05:24:25+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3f9d148b3", "title": "Implement a Skip Link for Navigation-Heavy Sites", "url": "https://www.benmyers.dev/blog/skip-links/", "published_at": "2021-02-16T07:36:56+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fa14cc20", "title": "Meaningful Motion with Action-Driven Animation", "url": "https://tobiasahlin.com/blog/meaningful-motion-w-action-driven-animation/", "published_at": "2021-02-10T04:11:33+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fa6acfac", "title": "An Interactive Guide to CSS Transitions", "url": "https://www.joshwcomeau.com/animation/css-transitions/", "published_at": "2021-02-09T16:32:13+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fa7325f4", "title": "Build your own RSS Reader", "url": "https://sergiodxa.com/tutorials/build-your-own-rss-reader", "published_at": "2021-02-01T05:53:03+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3faac3020", "title": "Keep Heading Levels Consistent with React Context", "url": "https://sergiodxa.com/tutorials/keep-heading-levels-consistent-with-react-context", "published_at": "2021-01-31T22:37:23+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fab35450", "title": "Preload: What Is It Good For?", "url": "https://www.smashingmagazine.com/2016/02/preload-what-is-it-good-for/", "published_at": "2021-01-28T05:38:53+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fbab4ab3", "title": "The unreasonable effectiveness of simple HTML", "url": "https://shkspr.mobi/blog/2021/01/the-unreasonable-effectiveness-of-simple-html/", "published_at": "2021-01-27T21:51:58+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fbdc47e1", "title": "Open Peeps", "url": "https://www.openpeeps.com/", "published_at": "2021-01-23T02:39:12+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fc1406ea", "title": "System Design 101", "url": "https://stanete.com/system-design-101", "published_at": "2021-01-17T21:04:42+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fc4b1f48", "title": "A primer on investing for designers and developers", "url": "https://brianlovin.com/overthought/investing-for-designers-and-developers", "published_at": "2021-01-14T08:42:05+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fc5bf067", "title": "About", "url": "https://sergiodxa.com/articles/about", "published_at": "2021-01-14T06:04:53+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fcf41def", "title": "In Critical Defense of Frontend Develop", "url": "https://meiert.com/en/blog/critical-frontend-development/", "published_at": "2021-01-14T01:57:17+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fdadd88a", "title": "Be Wary of Nesting Roles", "url": "https://adrianroselli.com/2016/12/be-wary-of-nesting-roles.html", "published_at": "2021-01-03T20:20:31+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3fe91ae95", "title": "Accessible SVGs", "url": "https://css-tricks.com/accessible-svgs/", "published_at": "2020-12-23T23:42:04+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3ff51e4ec", "title": "¿Qué son Server Components de React y cómo se relacionan con SSR/SSG/ISR?", "url": "https://sergiodxa.com/articles/que-son-server-components-de-react-y-como-se-relacionan-con-ssr-ssg-isr", "published_at": "2020-12-23T02:42:09+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf3ff94aadd", "title": "🔥 Pro Tip: Name your useEffect functions", "url": "https://sergiodxa.com/articles/pro-tip-name-your-useeffect-functions", "published_at": "2020-12-17T20:01:10+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf400019925", "title": "dotCSS 2019 - Sarah Dayan - In Defense of Utility-First CSS", "url": "https://youtu.be/R50q4NES6Iw", "published_at": "2020-12-10T00:03:04+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf400aa94c9", "title": "Alt-texts: The Ultimate Guide", "url": "https://axesslab.com/alt-texts/", "published_at": "2020-12-09T21:55:25+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf4014f73be", "title": "Polymorphic React Components in TypeScript", "url": "https://www.benmvp.com/blog/polymorphic-react-components-typescript/", "published_at": "2020-12-08T03:14:30+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf401bfc1fb", "title": "CSS and Scalability", "url": "http://mrmrs.io/writing/2016/03/24/scalable-css/", "published_at": "2020-12-06T06:36:34+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf401c11d72", "title": "Using MDX with Remote Content", "url": "https://sergiodxa.com/articles/using-mdx-with-remote-content", "published_at": "2020-11-23T22:25:06+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf402929e12", "title": "The UI and UX Tips Collection: Volume One.", "url": "https://marcandrew.me/ui-ux-tips-collection-vol-one/", "published_at": "2020-11-23T07:07:29+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf4036219aa", "title": "Practical React Query", "url": "https://tkdodo.eu/blog/practical-react-query", "published_at": "2020-11-17T00:41:21+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf40379385c", "title": "Use TailwindCSS Typography with Dark Mode Styles", "url": "https://sergiodxa.com/tutorials/use-tailwindcss-typography-with-dark-mode-styles", "published_at": "2020-11-16T06:57:08+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf4047474db", "title": "Don't design for mobile", "url": "https://mattanddesign.com/dont-design-for-mobile/", "published_at": "2020-11-13T18:38:45+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf404f4116d", "title": "Stop Using “Drop-down”", "url": "https://adrianroselli.com/2020/03/stop-using-drop-down.html", "published_at": "2020-10-25T09:33:07+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf404f849bf", "title": "Decoupling, Architecture and Teams", "url": "http://mikehadlow.blogspot.com/2018/11/decoupling-architecture-and-teams.html", "published_at": "2020-10-22T05:52:38+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf405670ac1", "title": "The Lava Layer Anti-Pattern", "url": "http://mikehadlow.blogspot.com/2014/12/the-lava-layer-anti-pattern.html", "published_at": "2020-10-22T05:22:53+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf40657f74f", "title": "UI as an afterthought", "url": "https://michel.codes/blogs/ui-as-an-afterthought", "published_at": "2020-10-18T00:19:35+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf40689b5e3", "title": "Todo lo que sé de SWR", "url": "https://sergiodxa.com/articles/todo-lo-que-se-de-swr", "published_at": "2020-09-13T10:26:26+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf40769e8b1", "title": "In 2020, what is \"frontend\" 🤨", "url": "https://swizec.com/blog/in-2020-what-is-frontend/", "published_at": "2020-09-07T19:29:19+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf4077328c0", "title": "How React Query gives you almost everything you thought you needed GraphQL for", "url": "https://swizec.com/blog/how-react-query-gives-you-almost-everything-you-thought-you-needed-graphql-for/", "published_at": "2020-09-07T19:00:05+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf407e30812", "title": "Wormhole state management", "url": "https://swizec.com/blog/wormhole-state-management/", "published_at": "2020-09-07T18:40:38+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf4083e9264", "title": "Todo el software está roto", "url": "https://youtu.be/0riSpvps4mA", "published_at": "2020-09-07T09:08:37+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf408c57fb9", "title": "What is the Value of Browser Diversity?", "url": "https://daverupert.com/2020/09/the-value-of-browser-diversity/", "published_at": "2020-09-06T08:54:33+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf408e29477", "title": "Margins and Composability in CSS", "url": "https://giuseppegurgone.com/margins-and-composability-in-css/", "published_at": "2020-09-04T18:24:24+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf409d4dd6d", "title": "Nailing Your First (Info-Product) Launch", "url": "https://microconf.gen.co/adam-wathan/", "published_at": "2020-09-01T08:05:54+00:00" }, { "id": "01a087de-4dae-734d-8d3b-eaf40ab97087", "title": "Defining Component APIs in React", "url": "https://jxnblk.com/blog/defining-component-apis-in-react/", "published_at": "2020-09-01T08:00:21+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321844b13a", "title": "The Modern Front-End Design System Stack", "url": "https://jxnblk.com/blog/the-modern-front-end-design-system/", "published_at": "2020-09-01T07:59:04+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321876c4be", "title": "Building the New facebook.com with React, GraphQL and Relay", "url": "https://developers.facebook.com/videos/2019/building-the-new-facebookcom-with-react-graphql-and-relay/", "published_at": "2020-09-01T07:58:25+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c32194c760d", "title": "Architecting UIs for Change", "url": "https://joreteg.com/blog/architecting-uis-for-change", "published_at": "2020-09-01T07:57:14+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321950f0d3", "title": "When frontend means full stack", "url": "https://increment.com/frontend/when-frontend-means-full-stack/", "published_at": "2020-09-01T07:55:02+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321964230e", "title": "Building a Button Part 2: Hover Interactions", "url": "https://react-spectrum.adobe.com/blog/building-a-button-part-2.html", "published_at": "2020-08-26T23:53:25+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3219c89bab", "title": "Building a Button Part 1: Press Events", "url": "https://react-spectrum.adobe.com/blog/building-a-button-part-1.html", "published_at": "2020-08-26T23:53:18+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321a0b93fc", "title": "The States of the UI", "url": "https://sergiodxa.com/articles/the-states-of-the-ui", "published_at": "2020-08-25T00:32:55+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321ae2a718", "title": "About HTML semantics and front-end architecture", "url": "http://nicolasgallagher.com/about-html-semantics-front-end-architecture/", "published_at": "2020-08-24T22:01:49+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321b8b5c68", "title": "\"Semantic\" CSS", "url": "https://adamwathan.me/2014/11/10/semantic-css/", "published_at": "2020-08-24T22:01:26+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321c5914e9", "title": "CSS Utility Classes and \"Separation of Concerns\"", "url": "https://adamwathan.me/css-utility-classes-and-separation-of-concerns/", "published_at": "2020-08-24T22:01:17+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321cacfcb7", "title": "Second-guessing the modern web", "url": "https://macwright.com/2020/05/10/spa-fatigue.html", "published_at": "2020-08-24T18:49:39+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321cbed448", "title": "A clean start for the web", "url": "https://macwright.com/2020/08/22/clean-starts-for-the-web.html", "published_at": "2020-08-24T18:12:58+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321d66346f", "title": "What I Use", "url": "https://sergiodxa.com/articles/uses", "published_at": "2020-08-23T23:53:18+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321e06d675", "title": "Writing Type-Safe Polymorphic React Components (Without Crashing TypeScript)", "url": "https://blog.andrewbran.ch/polymorphic-react-components/", "published_at": "2020-08-23T05:18:56+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321e7f6c54", "title": "Using SwiftUI's Spacer to Create Complex Layouts", "url": "https://benmcmahen.com/using-spacer-in-swiftui/", "published_at": "2020-08-23T05:18:55+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321f3c6fa7", "title": "Most tech content is bullshit", "url": "https://www.aleksandra.codes/tech-content-consumer", "published_at": "2020-08-23T05:18:55+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c321f3ce2e8", "title": "The Art of UI Skeletons", "url": "http://farmdev.com/thoughts/108/the-art-of-ui-skeletons/", "published_at": "2020-08-23T05:18:54+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3220185cba", "title": "How to Design a Web Application: Software Architecture 101", "url": "https://dev.to/educative/how-to-design-a-web-application-software-architecture-101-188b", "published_at": "2020-08-23T05:18:54+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3220d152a1", "title": "Shared Hook State with SWR", "url": "https://paco.im/blog/shared-hook-state-with-swr", "published_at": "2020-08-23T05:18:54+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c322188046f", "title": "Testing in the Frontend World", "url": "https://www.youtube.com/watch?v=sOMAMtOBiA8", "published_at": "2020-08-23T05:18:53+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c32223a3744", "title": "The Real Dark Web", "url": "https://www.sonniesedge.net/posts/real-dark-web/", "published_at": "2020-08-23T05:18:53+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3222cb134b", "title": "The Elements of UI Engineering", "url": "https://overreacted.io/the-elements-of-ui-engineering/", "published_at": "2020-08-23T05:18:52+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3222d6f6d3", "title": "frontend design, react, and a bridge over the great divide", "url": "http://bradfrost.com/blog/post/frontend-design-react-and-a-bridge-over-the-great-divide/", "published_at": "2020-08-23T05:18:52+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3223ac7a90", "title": "The Great Divide", "url": "https://css-tricks.com/the-great-divide/", "published_at": "2020-08-23T05:18:51+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c32241b33c9", "title": "We have a problem with promises", "url": "https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html", "published_at": "2020-08-23T05:18:51+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3224fe8c4d", "title": "Taming the asynchronous beast with ES7", "url": "https://pouchdb.com/2015/03/05/taming-the-async-beast-with-es7.html", "published_at": "2020-08-23T05:18:51+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3225b2a77f", "title": "The Fault in Our Tolerance: Accounting for Failures in React", "url": "https://aweary.dev/fault-tolerance-react/", "published_at": "2020-08-23T05:18:50+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c32267401d2", "title": "7 Principles of Rich Web Applications", "url": "https://rauchg.com/2014/7-principles-of-rich-web-applications/", "published_at": "2020-08-23T05:18:50+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c322704fa40", "title": "🌱 My blog is a digital garden, not a blog", "url": "https://joelhooks.com/digital-garden", "published_at": "2020-08-23T05:18:49+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3228026944", "title": "Shape Up: Stop Running in Circles and Ship Work that Matters", "url": "https://basecamp.com/shapeup", "published_at": "2020-08-23T05:18:48+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c322810b344", "title": "How the Blog Broke the Web", "url": "https://stackingthebricks.com/how-blogs-broke-the-web/", "published_at": "2020-08-23T05:18:48+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3229014eb1", "title": "Turning the database inside-out with Apache Samza", "url": "https://www.confluent.io/blog/turning-the-database-inside-out-with-apache-samza/", "published_at": "2020-08-23T05:18:47+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c32290490b8", "title": "Design Systems and Front-End Architecture by Stuart Robson", "url": "https://noti.st/sturobson/yc1gwN/design-systems-and-front-end-architecture#saPZSRV", "published_at": "2020-08-23T05:18:47+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c3229f46ee1", "title": "write on your own website", "url": "https://bradfrost.com/blog/post/write-on-your-own-website/", "published_at": "2020-08-23T05:18:46+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c322a2d0488", "title": "Going Indie. Step 2: Reclaiming Content", "url": "https://matthiasott.com/articles/going-indie-reclaiming-content", "published_at": "2020-08-23T05:18:45+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c322aaf9b08", "title": "Just write", "url": "https://www.sarasoueidan.com/desk/just-write/", "published_at": "2020-08-23T05:18:45+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c322b419a23", "title": "The Documentation Compendium", "url": "https://github.com/kylelobo/The-Documentation-Compendium", "published_at": "2020-08-23T05:18:44+00:00" }, { "id": "01a087de-4daf-70cf-be69-4c322bd4f25c", "title": "Why Text Buttons Hurt Mobile Usability", "url": "https://uxmovement.com/mobile/why-text-buttons-hurt-mobile-usability/", "published_at": "2020-08-23T05:18:44+00:00" } ] posts Claim your blog
Back to sergiodxa.com
Blog · corpus.blog/blogs/sergiodxa.com/posts

sergiodxa.com

sergiodxa.com

2021

2020