41554 blogs · [ { "id": "01a087dc-46ef-7173-a181-43d2a9b2bd36", "title": "Spliit for iPhone Has Been Rewritten from Scratch", "url": "https://scastiel.dev/spliit-for-iphone-has-been-rewritten-from-scratch/", "published_at": "2026-09-03T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ecc398356", "title": "Why Spliit Doesn’t Ask You to Create an Account", "url": "https://scastiel.dev/why-spliit-doesnt-ask-you-to-create-an-account/", "published_at": "2026-08-29T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0eccc65cdb", "title": "Spliit’s Funding Is Now on Open Collective", "url": "https://scastiel.dev/spliit-funding-is-now-on-open-collective/", "published_at": "2026-08-14T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ecdae370f", "title": "Four Agent Frameworks in Sixteen Months", "url": "https://scastiel.dev/four-agent-frameworks/", "published_at": "2026-07-24T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ece847ba8", "title": "If Claude Writes the Code, What Makes Me Still a Developer?", "url": "https://scastiel.dev/if-claude-writes-the-code/", "published_at": "2026-04-30T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ecf1a6088", "title": "Watching, Not Waiting: When AI Coding Crossed the Speed Threshold", "url": "https://scastiel.dev/speed-threshold/", "published_at": "2025-12-03T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ecf6c5770", "title": "Designing AI‑Ready Systems: Making Code Easy for Assistants", "url": "https://scastiel.dev/ai-ready-systems/", "published_at": "2025-11-02T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ecfe40c92", "title": "Building a Modular AI Copilot: From Monolithic to Dynamic Context", "url": "https://scastiel.dev/building-modular-ai-copilot/", "published_at": "2025-10-30T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed00f970b", "title": "Seven Hours, Zero Internet, and Local AI Coding at 40,000 Feet", "url": "https://scastiel.dev/40000-feet/", "published_at": "2025-09-01T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed03a6e54", "title": "AI-Assisted Development: A Three-Act Play", "url": "https://scastiel.dev/three-act-play/", "published_at": "2025-08-24T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed12a36db", "title": "Turning Claude Code Into My Best Design Partner", "url": "https://scastiel.dev/design-partner/", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed1c12af5", "title": "Two Hours with Cursor Changed My Mind About AI Coding", "url": "https://scastiel.dev/two-hours/", "published_at": "2025-08-10T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed1dc6839", "title": "Spliit by the Stats: Usage, Costs, Donations", "url": "https://scastiel.dev/spliit-by-the-stats-usage-costs-donations/", "published_at": "2024-10-14T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed1efd7ae", "title": "Spliit Is Now Available in Eight Languages", "url": "https://scastiel.dev/spliit-is-now-available-in-eight-languages/", "published_at": "2024-10-05T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed2495df4", "title": "We Need an Open Source Alternative to Splitwise", "url": "https://scastiel.dev/we-need-an-open-source-alternative-to-splitwise/", "published_at": "2024-02-04T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed26d6957", "title": "Announcing Receipt Scanning Using AI", "url": "https://scastiel.dev/announcing-receipt-scanning-using-ai/", "published_at": "2024-01-31T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed345d1b0", "title": "13 tips for better Pull Requests and Code Review", "url": "https://scastiel.dev/13-tips-for-better-pull-requests-and-code-review/", "published_at": "2023-10-17T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed4263483", "title": "The simplest example to understand Server Actions in Next.js", "url": "https://scastiel.dev/simplest-example-server-actions-nextjs/", "published_at": "2023-08-03T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed4ff558c", "title": "Intro to React Server Components and Actions with Next.js", "url": "https://scastiel.dev/server-components-actions-react-nextjs/", "published_at": "2023-07-03T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed5dfd9eb", "title": "How to give code review as a junior developer?", "url": "https://scastiel.dev/code-review-junior-developer/", "published_at": "2023-06-24T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed6b3d186", "title": "How well should I know React before applying to my first job?", "url": "https://scastiel.dev/what-to-know-react-first-job/", "published_at": "2023-06-15T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed768081c", "title": "A better learning path for React with server components", "url": "https://scastiel.dev/better-learning-path-react/", "published_at": "2023-05-26T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed76cfc44", "title": "Display a view counter on your blog with React Server Components", "url": "https://scastiel.dev/view-counter-react-server-components/", "published_at": "2023-04-24T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed8584124", "title": "Using Zod & TypeScript for more than user input validation", "url": "https://scastiel.dev/zod-typescript/", "published_at": "2023-03-08T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed86596ca", "title": "Display your Gumroad products on your Next.js website", "url": "https://scastiel.dev/gumroad-pages-nextjs/", "published_at": "2023-02-26T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed8b2f593", "title": "Use Next.js Image component in posts with Markdown", "url": "https://scastiel.dev/nextjs-image-in-markdown/", "published_at": "2023-02-19T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed985e502", "title": "Create OG images for your blog with Next.js", "url": "https://scastiel.dev/create-og-images-for-your-blog-with-nextjs/", "published_at": "2022-11-07T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ed9f358e9", "title": "Combining scripts and DSLs is Kotlin’s most underrated feature", "url": "https://scastiel.dev/kotlin-scripts-dsl-underrated-feature/", "published_at": "2022-03-23T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edac37dd3", "title": "Walk in the steps of successful makers, and fail", "url": "https://scastiel.dev/walk-in-steps-of-successful-makers-and-fail/", "published_at": "2022-03-05T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edb6f27b7", "title": "Purchasing Power Parity: fair pricing for your SaaS product", "url": "https://scastiel.dev/implement-ppp-fair-pricing-for-your-product/", "published_at": "2021-02-22T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edb8e0d6f", "title": "How I use Pandoc to create programming eBooks", "url": "https://scastiel.dev/how-i-use-pandoc-to-create-my-programming-ebooks/", "published_at": "2021-01-21T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edc16ed54", "title": "Reimplement Redux with vanilla React in 12 lines of code", "url": "https://scastiel.dev/reimplement-redux-with-vanilla-react/", "published_at": "2021-01-11T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edc312b2b", "title": "Understand how React hooks work", "url": "https://scastiel.dev/hooks-mental-model-and-rules/", "published_at": "2021-01-03T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edc339dab", "title": "Back to basics with Node.js and Express, the time of a side project", "url": "https://scastiel.dev/back-to-basics-node-express/", "published_at": "2020-11-09T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edcf9b0ad", "title": "Why you should have side projects", "url": "https://scastiel.dev/the-case-for-side-projects/", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0eddd9dc96", "title": "Create an animated 3D book in CSS, step by step", "url": "https://scastiel.dev/animated-3d-book-css/", "published_at": "2020-07-23T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ede115a7f", "title": "On distraction and developer productivity", "url": "https://scastiel.dev/on-distraction-and-developer-productivity/", "published_at": "2020-07-07T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ede8e6f12", "title": "I’m writing a new book: Become an Outstanding Developer", "url": "https://scastiel.dev/im-writing-a-new-book/", "published_at": "2020-05-12T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edf499d5b", "title": "I tried Flutter for a week and made an app", "url": "https://scastiel.dev/i-tried-flutter-for-a-week/", "published_at": "2020-04-20T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0edfca38cd", "title": "Create a React hook to add dark theme to your app", "url": "https://scastiel.dev/a-react-hook-for-dark-theme/", "published_at": "2019-10-14T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee04fd8d2", "title": "This blog is proudly powered by Gatsby (with some super powers)", "url": "https://scastiel.dev/this-blog-is-proudly-powered-by-gatsby/", "published_at": "2019-09-25T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee0d7ab89", "title": "Beginner Guide to Deep Work for Developers", "url": "https://scastiel.dev/become-a-better-developer-by-mastering-deep-work/", "published_at": "2019-09-17T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee193daa9", "title": "One year as a morning person", "url": "https://scastiel.dev/one-year-as-a-morning-person/", "published_at": "2019-08-17T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee2303b80", "title": "Lost with Redux and sagas? Implement them yourself!", "url": "https://scastiel.dev/lost-redux-saga-reimplement-them/", "published_at": "2019-08-03T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee2cca2bf", "title": "React hooks: get the current state, back to the future", "url": "https://scastiel.dev/react-hooks-get-current-state-back-to-the-future/", "published_at": "2019-02-19T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee3753ead", "title": "So I wrote a technical book 😁", "url": "https://scastiel.dev/so-i-wrote-a-technical-book/", "published_at": "2019-02-14T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee3fbc383", "title": "Est-il utile d’apprendre React ?", "url": "https://scastiel.dev/utile-d-apprendre-react/", "published_at": "2018-10-03T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee4a1d2c0", "title": "Pourquoi j’écris un livre sur React ?", "url": "https://scastiel.dev/pourquoi-un-livre-sur-react/", "published_at": "2018-09-25T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee556b522", "title": "Bootstrap a Reason-React project with Parcel", "url": "https://scastiel.dev/reason-react-parcel/", "published_at": "2018-03-07T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee62b170e", "title": "Create reusable high-order React components with Recompose", "url": "https://scastiel.dev/reusable-hoc-with-recompose/", "published_at": "2018-01-22T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee6609576", "title": "Create a simple and tested Redux-like app with Reason React", "url": "https://scastiel.dev/redux-like-reason-react-app/", "published_at": "2017-08-24T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee7474086", "title": "Writing modern JavaScript code", "url": "https://scastiel.dev/writing-modern-javascript/", "published_at": "2017-05-17T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee78491f1", "title": "Play with cryptography with OpenPGP.js", "url": "https://scastiel.dev/play-with-cryptography-with-openpgpjs/", "published_at": "2016-11-16T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee823675d", "title": "Use the coolest ES6 features everywhere", "url": "https://scastiel.dev/use-the-coolest-es6-features-everywhere/", "published_at": "2016-11-02T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee8454966", "title": "A new blog, a new blog management system", "url": "https://scastiel.dev/first-post/", "published_at": "2016-10-27T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee8569896", "title": "Vivre sans télé, c’est possible ? (Spoiler : oui)", "url": "https://scastiel.dev/vivre-sans-tele-cest-possible/", "published_at": "2015-09-15T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0ee9265fce", "title": "Comment j’ai l’intention de reprendre le contrôle de mes données", "url": "https://scastiel.dev/reprendre-le-controle-de-mes-donnees/", "published_at": "2015-08-06T00:00:00+00:00" }, { "id": "01a087dc-46f0-733d-902e-3b0eea059111", "title": "Bien développer est-il un art ?", "url": "https://scastiel.dev/bien-developper-est-il-un-art/", "published_at": "2015-05-01T00:00:00+00:00" } ] posts Claim your blog
Back to Sebastien Castiel · Developer, writer, indie hacker · 📍 Montreal, QC
Blog · corpus.blog/blogs/scastiel.dev/posts

Sebastien Castiel · Developer, writer, indie hacker · 📍 Montreal, QC

scastiel.dev

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015