41554 blogs · [ { "id": "01a08728-15e3-7386-a644-88f4239c8cdb", "title": "Two types of agents", "url": "https://andrelandgraf.dev/blog/2026-05-20_two-types-of-agents", "published_at": "2026-05-20T00:00:00+00:00" }, { "id": "01a08728-15e3-7386-a644-88f42339714a", "title": "Sensible use of MCP today", "url": "https://andrelandgraf.dev/blog/2025-07-09_sensible-use-of-mcp-today", "published_at": "2025-07-09T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfbc53d85c", "title": "Syntax highlighting with Markdoc and Shiki in Remix", "url": "https://andrelandgraf.dev/blog/2024-11-30_syntax-highlighting-with-markdoc", "published_at": "2024-11-30T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfbbbd9944", "title": "Use Markdoc to render Markdown content in Remix", "url": "https://andrelandgraf.dev/blog/2024-11-01_rendering-markdown-in-remix", "published_at": "2024-11-01T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfbae104b3", "title": "Working with QR codes in Remix", "url": "https://andrelandgraf.dev/blog/2024-09-22_working-with-qr-codes-in-remix", "published_at": "2024-09-22T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfba6676b2", "title": "Use Terraform for your app's Cloudflare Workers", "url": "https://andrelandgraf.dev/blog/2024-03-03_remix-with-terraform-on-cloudflare", "published_at": "2024-03-03T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfba0c7a2b", "title": "How to work with TypeScript unknown and any", "url": "https://andrelandgraf.dev/blog/2023-11-19_how-to-tame-the-unknown-and-anything-else", "published_at": "2023-11-19T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb9174c73", "title": "Website Reviews - A beginner's guide", "url": "https://andrelandgraf.dev/blog/2023-11-15_website_reviews_beginners_guide", "published_at": "2023-11-15T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb8ad9192", "title": "A business case for today's full stack web frameworks", "url": "https://andrelandgraf.dev/blog/2023-04-15_a_business_case_for_full_stack_web_frameworks", "published_at": "2023-04-15T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb7e454c4", "title": "Taking advantage of the full stack of the web platform", "url": "https://andrelandgraf.dev/blog/2023-03-25_the_full_stack_of_the_web_platform", "published_at": "2023-03-25T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb787d351", "title": "My experience learning React, web standards, and Remix", "url": "https://andrelandgraf.dev/blog/2023-03-11_web_standards_and_react", "published_at": "2023-03-11T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb7773b39", "title": "A process for solving React take-home exercises", "url": "https://andrelandgraf.dev/blog/2023-02-11_react_take_home_zero_to_hero", "published_at": "2023-02-11T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb68208be", "title": "Why you shouldn't use useActionData", "url": "https://andrelandgraf.dev/blog/2023-01-07_why_you_shouldnt_use_useactiondata", "published_at": "2023-01-07T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb5b211c1", "title": "Different dimensions of Remix deploy targets", "url": "https://andrelandgraf.dev/blog/2022-12-03_different-dimensions-of-remix-deploy-targets", "published_at": "2022-12-03T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb4f49efa", "title": "Why Remix is not a React framework but a full stack web framework", "url": "https://andrelandgraf.dev/blog/2022-07-16_why_remix_is_not_a_react_framework_but_a_full_stack_web_framework", "published_at": "2022-07-16T00:00:00+00:00" }, { "id": "01a08728-15e2-7338-af69-36cfb49f2aef", "title": "How to integrate Markdown content with syntax highlighting in Remix.run", "url": "https://andrelandgraf.dev/blog/2022-05-29_how-to-integrate-markdown-content-with-syntax-highlighting-in-remix", "published_at": "2022-05-29T00:00:00+00:00" } ] posts Claim your blog
Back to andrelandgraf.dev
Blog · corpus.blog/blogs/andrelandgraf.dev/posts

andrelandgraf.dev

andrelandgraf.dev

2026

2025

2024

2023

2022