56,966 blogs · [ { "id": "01a0d126-686f-73e4-957a-317f068f81d3", "title": "Effect state machines, just like XState", "url": "https://www.sandromaglione.com/newsletter/effect-state-machines-just-like-xstate", "published_at": "2026-09-16T00:00:00+00:00" }, { "id": "01a0bdfc-53af-7161-9268-c37d6c177098", "title": "State machines and effect", "url": "https://www.sandromaglione.com/newsletter/state-machines-and-effect", "published_at": "2026-09-09T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c47f6dfac", "title": "Open source when you have AI", "url": "https://www.sandromaglione.com/newsletter/open-source-when-you-have-ai", "published_at": "2026-09-02T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c48efa848", "title": "Writing when you have AI", "url": "https://www.sandromaglione.com/newsletter/writing-when-you-have-ai", "published_at": "2026-08-26T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c49e61162", "title": "API design for agents", "url": "https://www.sandromaglione.com/newsletter/api-design-for-agents", "published_at": "2026-08-19T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4a982984", "title": "Library development with agents", "url": "https://www.sandromaglione.com/newsletter/library-development-with-agents", "published_at": "2026-08-12T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4b7d8919", "title": "Bringing State Machines in effect", "url": "https://www.sandromaglione.com/newsletter/bringing-state-machines-in-effect", "published_at": "2026-08-05T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4c624343", "title": "The second AI coding revolution", "url": "https://www.sandromaglione.com/newsletter/the-second-ai-coding-revolution", "published_at": "2026-07-29T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4d0592fb", "title": "How I am keeping up with AI", "url": "https://www.sandromaglione.com/newsletter/how-i-am-keeping-up-with-ai", "published_at": "2026-07-22T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4dc2d69b", "title": "Expand your vision, not your time", "url": "https://www.sandromaglione.com/newsletter/expand-your-vision-not-your-time", "published_at": "2026-07-15T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4e8dc8e8", "title": "How much is left to implement?", "url": "https://www.sandromaglione.com/newsletter/how-much-is-left-to-implement", "published_at": "2026-07-08T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4edcc079", "title": "XState v6 Alpha", "url": "https://www.sandromaglione.com/newsletter/xstate-v6-alpha", "published_at": "2026-07-01T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c4fa68b77", "title": "AI code with loops and subagents", "url": "https://www.sandromaglione.com/newsletter/ai-code-with-loops-and-subagents", "published_at": "2026-06-24T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c505d46bf", "title": "Do you write code manually, or wait?", "url": "https://www.sandromaglione.com/newsletter/do-you-write-code-manually-or-wait", "published_at": "2026-06-17T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c50cfc7af", "title": "Strategies to review AI code", "url": "https://www.sandromaglione.com/newsletter/strategies-to-review-ai-code", "published_at": "2026-06-10T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5117cc57", "title": "Do you really understand your codebase?", "url": "https://www.sandromaglione.com/newsletter/do-you-really-understand-your-codebase", "published_at": "2026-06-03T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c513e9576", "title": "How to run 20 agents at the time", "url": "https://www.sandromaglione.com/newsletter/how-to-run-20-agents-at-the-time", "published_at": "2026-05-27T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c52269bcd", "title": "Do technical articles matter anymore?", "url": "https://www.sandromaglione.com/newsletter/do-technical-articles-matter-anymore", "published_at": "2026-05-20T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c52aa1d96", "title": "Components take care of themselves", "url": "https://www.sandromaglione.com/newsletter/components-take-care-of-themselves", "published_at": "2026-05-13T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c531c2bfb", "title": "Effect-ification end to end", "url": "https://www.sandromaglione.com/newsletter/effect-ification-end-to-end", "published_at": "2026-05-06T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c53ea6fa1", "title": "Custom linting rules to guide AI code", "url": "https://www.sandromaglione.com/newsletter/custom-linting-rules-to-guide-ai-code", "published_at": "2026-04-29T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5450dba3", "title": "Time off screen", "url": "https://www.sandromaglione.com/newsletter/time-off-screen", "published_at": "2026-04-22T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c549fa5f8", "title": "The Ultimate AI coding guide", "url": "https://www.sandromaglione.com/newsletter/the-ultimate-ai-coding-guide", "published_at": "2026-04-15T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c558c5555", "title": "Get started with IndexedDb in Effect", "url": "https://www.sandromaglione.com/newsletter/get-started-with-indexeddb-in-effect", "published_at": "2026-04-08T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5598d780", "title": "What makes AI write great code", "url": "https://www.sandromaglione.com/newsletter/what-makes-ai-write-great-code", "published_at": "2026-04-01T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c563d81e3", "title": "You are the bottleneck of AI", "url": "https://www.sandromaglione.com/newsletter/you-are-the-bottleneck-of-ai", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5722455a", "title": "Stop AI from taking control of your code", "url": "https://www.sandromaglione.com/newsletter/stop-ai-from-taking-control-of-your-code", "published_at": "2026-03-18T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5783a40f", "title": "Keep up the pace with AI", "url": "https://www.sandromaglione.com/newsletter/keep-up-the-pace-with-ai", "published_at": "2026-03-11T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c58262cb2", "title": "Underused XState patterns and benefits", "url": "https://www.sandromaglione.com/newsletter/underused-xstate-patterns-and-benefits", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5851ad63", "title": "My Effect v4 beta migrations", "url": "https://www.sandromaglione.com/newsletter/my-effect-v4-beta-migrations", "published_at": "2026-02-25T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c590948b4", "title": "Software Engineering when you have AI", "url": "https://www.sandromaglione.com/newsletter/software-engineering-when-you-have-ai", "published_at": "2026-02-18T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c59e21994", "title": "Effect, AI and Orchestration", "url": "https://www.sandromaglione.com/newsletter/effect-ai-and-orchestration", "published_at": "2026-02-11T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5a84ea81", "title": "Intention as the seed of improvement", "url": "https://www.sandromaglione.com/newsletter/intention-as-the-seed-of-improvement", "published_at": "2026-02-04T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5ac23a7b", "title": "The cycle of improvement", "url": "https://www.sandromaglione.com/newsletter/the-cycle-of-improvement", "published_at": "2026-01-28T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5bb5fc8a", "title": "Streaming AI with Effect", "url": "https://www.sandromaglione.com/newsletter/streaming-ai-with-effect", "published_at": "2026-01-21T00:00:00+00:00" }, { "id": "01a087db-3efd-722e-a135-892c5c2f24bb", "title": "Effect API on Cloudflare", "url": "https://www.sandromaglione.com/newsletter/effect-api-on-cloudflare", "published_at": "2026-01-14T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a24f68d1", "title": "Effect to the rescue", "url": "https://www.sandromaglione.com/newsletter/effect-to-the-rescue", "published_at": "2026-01-07T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a2e636b2", "title": "Major releases in 2026", "url": "https://www.sandromaglione.com/newsletter/major-releases-in-2026", "published_at": "2025-12-31T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a31e41e4", "title": "A few Effect modules and how I use them", "url": "https://www.sandromaglione.com/newsletter/a-few-effect-modules-and-how-i-use-them", "published_at": "2025-12-24T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a37b8133", "title": "The Dance of Precision and Speed", "url": "https://www.sandromaglione.com/newsletter/the-dance-of-precision-and-speed", "published_at": "2025-12-17T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a4384ff1", "title": "XState at its Extreme", "url": "https://www.sandromaglione.com/newsletter/xstate-at-its-extreme", "published_at": "2025-12-10T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a53479f1", "title": "How to prevent AI messing with your code", "url": "https://www.sandromaglione.com/newsletter/how-to-prevent-ai-messing-with-your-code", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a576b552", "title": "Software Architect", "url": "https://www.sandromaglione.com/newsletter/software-architect", "published_at": "2025-11-26T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a5c93010", "title": "Full stack with Effect and AI", "url": "https://www.sandromaglione.com/newsletter/full-stack-with-effect-and-ai", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a5ced9b0", "title": "How to write maintainable code with AI", "url": "https://www.sandromaglione.com/newsletter/how-to-write-maintainable-code-with-ai", "published_at": "2025-11-12T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a6675b9d", "title": "Counting time", "url": "https://www.sandromaglione.com/newsletter/counting-time", "published_at": "2025-11-05T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a697a678", "title": "The Client stack for 2026", "url": "https://www.sandromaglione.com/newsletter/the-client-stack-for-2026", "published_at": "2025-10-29T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a75c754d", "title": "Effect AI SDK: A lesson in composing programs", "url": "https://www.sandromaglione.com/newsletter/effect-ai-sdk-a-lesson-in-composing-programs", "published_at": "2025-10-22T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a8359e56", "title": "Walking your code with AI", "url": "https://www.sandromaglione.com/newsletter/walking-your-code-with-ai", "published_at": "2025-10-15T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a867c51a", "title": "Release fest: Effect, XState, Next, Drizzle", "url": "https://www.sandromaglione.com/newsletter/release-fest-effect-xstate-next-drizzle", "published_at": "2025-10-08T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a8adc60b", "title": "Special #100: past and future", "url": "https://www.sandromaglione.com/newsletter/special-100-past-and-future", "published_at": "2025-10-01T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a8cec025", "title": "Power creep and mastery", "url": "https://www.sandromaglione.com/newsletter/power-creep-and-mastery", "published_at": "2025-09-24T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a9906b76", "title": "Creative power and uncertainty", "url": "https://www.sandromaglione.com/newsletter/creative-power-and-uncertainty", "published_at": "2025-09-17T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55a9f47186", "title": "A solution for your problems", "url": "https://www.sandromaglione.com/newsletter/a-solution-for-your-problems", "published_at": "2025-09-10T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55aa3accc6", "title": "Long term skills", "url": "https://www.sandromaglione.com/newsletter/long-term-skills", "published_at": "2025-09-03T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55aad9b3b2", "title": "How to guarantee failure", "url": "https://www.sandromaglione.com/newsletter/how-to-guarantee-failure", "published_at": "2025-08-27T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55ab4ba789", "title": "Turning Pro", "url": "https://www.sandromaglione.com/newsletter/turning-pro", "published_at": "2025-08-20T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55abee5601", "title": "Start: The Nature of Hard", "url": "https://www.sandromaglione.com/newsletter/start-the-nature-of-hard", "published_at": "2025-08-13T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55ac5ba41e", "title": "Time investment: How it works", "url": "https://www.sandromaglione.com/newsletter/time-investment-how-it-works", "published_at": "2025-08-06T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55ad59eed1", "title": "Principles of Uncertainty and Time", "url": "https://www.sandromaglione.com/newsletter/principles-of-uncertainty-and-time", "published_at": "2025-07-30T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55ae187183", "title": "Constraints of time, cost, scope", "url": "https://www.sandromaglione.com/newsletter/constraints-of-time-cost-scope", "published_at": "2025-07-23T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55aed74f93", "title": "Little Ways Code Works", "url": "https://www.sandromaglione.com/newsletter/little-ways-code-works", "published_at": "2025-07-16T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55af9f208f", "title": "Development speed how to", "url": "https://www.sandromaglione.com/newsletter/development-speed-how-to", "published_at": "2025-07-09T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55b06a0e0d", "title": "Frontend, Drag & Drop, AI and XState", "url": "https://www.sandromaglione.com/newsletter/frontend-drag-and-drop-ai-and-xstate", "published_at": "2025-07-02T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55b156b16b", "title": "Safety with types: Best practices", "url": "https://www.sandromaglione.com/newsletter/safety-with-types-best-practices", "published_at": "2025-06-25T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55b24bdf5c", "title": "How I use statecharts in production", "url": "https://www.sandromaglione.com/newsletter/how-i-use-statecharts-in-production", "published_at": "2025-06-18T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55b30e59a1", "title": "Why everyone is talking about Effect (second edition)", "url": "https://www.sandromaglione.com/newsletter/why-everyone-is-talking-about-effect-second-edition", "published_at": "2025-06-11T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55b335c66b", "title": "My top 3 picks from localfirstconf 2025", "url": "https://www.sandromaglione.com/newsletter/my-top-3-picks-from-localfirstconf-2025", "published_at": "2025-06-04T00:00:00+00:00" }, { "id": "01a087db-3efe-70c9-a382-9c55b3705c8a", "title": "Your friendly introduction to local-first", "url": "https://www.sandromaglione.com/newsletter/your-friendly-introduction-to-local-first", "published_at": "2025-05-28T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c111bdae76", "title": "Events: the most accurate representation of state", "url": "https://www.sandromaglione.com/newsletter/events-the-most-accurate-representation-of-state", "published_at": "2025-05-21T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c112434ebc", "title": "Programming Languages and Games", "url": "https://www.sandromaglione.com/newsletter/programming-languages-and-games", "published_at": "2025-05-14T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c112739178", "title": "Declarative, compile-time and runtime", "url": "https://www.sandromaglione.com/newsletter/declarative-compile-time-and-runtime", "published_at": "2025-05-07T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c1135cf8a4", "title": "Type safe Game Development, is it possible?", "url": "https://www.sandromaglione.com/newsletter/type-safe-game-development-is-it-possible", "published_at": "2025-04-30T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c113f1d0b1", "title": "Creative Constraints", "url": "https://www.sandromaglione.com/articles/creative-constraints", "published_at": "2025-04-25T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11445b366", "title": "Growth, Challenge, Complexity and Meaning", "url": "https://www.sandromaglione.com/newsletter/growth-challenge-complexity-and-meaning", "published_at": "2025-04-23T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c114948f58", "title": "What's behind a type safe API", "url": "https://www.sandromaglione.com/newsletter/what-s-behind-a-type-safe-api", "published_at": "2025-04-16T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c114c15dc9", "title": "Good and bad APIs: IndexedDB", "url": "https://www.sandromaglione.com/newsletter/good-and-bad-apis-indexeddb", "published_at": "2025-04-09T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c115a5b0b2", "title": "In praise of Personal Projects", "url": "https://www.sandromaglione.com/newsletter/in-praise-of-personal-projects", "published_at": "2025-04-02T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c116850b8e", "title": "Being a speaker at the Effect Days", "url": "https://www.sandromaglione.com/newsletter/being-a-speaker-at-the-effect-days", "published_at": "2025-03-26T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c116c92893", "title": "My journey before and after Effect", "url": "https://www.sandromaglione.com/newsletter/my-journey-before-and-after-effect", "published_at": "2025-03-19T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c1171b8d4f", "title": "Lessons from implementing a sync engine", "url": "https://www.sandromaglione.com/newsletter/lessons-from-implementing-a-sync-engine", "published_at": "2025-03-12T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11818fabb", "title": "More apps should be local-first", "url": "https://www.sandromaglione.com/newsletter/more-apps-should-be-local-first", "published_at": "2025-03-05T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c1184c37fb", "title": "Software complexity, engineering, and AI", "url": "https://www.sandromaglione.com/newsletter/software-complexity-engineering-and-ai", "published_at": "2025-02-26T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11850de81", "title": "The Power to Indie Creators", "url": "https://www.sandromaglione.com/newsletter/the-power-to-indie-creators", "published_at": "2025-02-19T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c1185d04ac", "title": "Personal Software", "url": "https://www.sandromaglione.com/newsletter/personal-software", "published_at": "2025-02-12T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c118b07567", "title": "Frontend, Local-First, Sync Engines", "url": "https://www.sandromaglione.com/newsletter/frontend-local-first-sync-engines", "published_at": "2025-02-05T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11921fbd0", "title": "Structured Goals", "url": "https://www.sandromaglione.com/articles/structured-goals", "published_at": "2025-01-29T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11a03b9b6", "title": "Goals as creative constraints", "url": "https://www.sandromaglione.com/newsletter/goals-as-creative-constraints", "published_at": "2025-01-29T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11a8ddffe", "title": "Software that does not break is type-safe", "url": "https://www.sandromaglione.com/newsletter/software-that-does-not-break-is-type-safe", "published_at": "2025-01-22T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11abbd6f3", "title": "The Rules of the Game", "url": "https://www.sandromaglione.com/articles/the-rules-of-the-game", "published_at": "2025-01-20T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11af5020b", "title": "AI changed how I search and research", "url": "https://www.sandromaglione.com/newsletter/ai-changed-how-i-search-and-research", "published_at": "2025-01-15T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11afe950d", "title": "Greatness takes time", "url": "https://www.sandromaglione.com/articles/greatness-takes-time", "published_at": "2025-01-14T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11b9af070", "title": "Making money in collaboration with your users", "url": "https://www.sandromaglione.com/newsletter/making-money-in-collaboration-with-your-users", "published_at": "2025-01-08T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11bb5ced4", "title": "Game Economy: Challenge and Reward", "url": "https://www.sandromaglione.com/articles/game-economy-challenge-and-reward", "published_at": "2025-01-07T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11c55cb5b", "title": "How games make money: fairness and gacha", "url": "https://www.sandromaglione.com/articles/how-games-make-money-fairness-and-gacha", "published_at": "2025-01-05T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11d2c110b", "title": "The 4 Pillars", "url": "https://www.sandromaglione.com/articles/the-4-pillars", "published_at": "2025-01-01T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11d4d625d", "title": "Ideas to start building more apps in 2025", "url": "https://www.sandromaglione.com/newsletter/ideas-to-start-building-more-apps-in-2025", "published_at": "2025-01-01T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11e22fe55", "title": "The Reality of life as a Game", "url": "https://www.sandromaglione.com/articles/the-reality-of-life-as-a-game", "published_at": "2024-12-27T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11e889f1e", "title": "Everything that happened in 2024 (and beyond)", "url": "https://www.sandromaglione.com/newsletter/everything-that-happened-in-2024-and-beyond", "published_at": "2024-12-25T00:00:00+00:00" }, { "id": "01a087db-3eff-71a7-8a23-e1c11f551e07", "title": "Wizard Mastery", "url": "https://www.sandromaglione.com/articles/wizard-mastery", "published_at": "2024-12-24T00:00:00+00:00" } ] posts Claim your blog
Back to sandromaglione.com
Blog · corpus.blog/blogs/sandromaglione.com/posts

sandromaglione.com

sandromaglione.com

2026

2025

2024