Mathieu Céraline (@mathcrln) header
Mathieu Céraline (@mathcrln) profile picture
México 🇲🇽
Joined September 2011
Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)Photo by Mathieu Céraline (@mathcrln)
To change pace and stop talking about tech for a bit… 1) What’s your favorite video game? 2) What’s your favorite TV show? 3) What’s your favorite book?
23
Even with AI, it still so hard to make "good" software. I already have a mostly complete version of Depot, but I am still sweating the details. Even if few will ever care to read the code, I still want it to feel intuitive, maintenable and well optimized. Software has become easy, but well crafted software is as hard as ever.
So far, here is how it has shaped up: - 🔒 Keep images and files in your own private S3 or R2 bucket - 🔗 Notes store a clean mybucket://photo.jpg link (mybucket can be the name you want): no public URLs, no expiring tokens - 📋 Paste, drag and drop, or pick a file - 🖼️ Images show up in Reading view, Live Preview, and Bases card covers - 📄 PDF, audio and video embeds - ⚡ Cached on your device, so images load instantly and work offline - 🗂️ You can have multiple storage profiles (personal, work, public…) - 🛤️ You define the file path: by date, by type, by note name - ♻️ Duplicate upload detection (optional) - ✏️ If you rename a path, it detects and optionally updates every link in your vault in one go - 🖼️ A library view: browse everything in your bucket, search it, and see what's used, unused or broken - 🔑 Credentials stay in Obsidian's secret storage, never in your notes or in the plugin With only one dependency to sign the requests. Definitely not yet ready to be published, I will continue crafting for a bit, but quite exciting so far!
1
2
89
Funnily (or sadly) enough, the biggest drawback of Obsidian is his greatest advantage: it's just text files on the filesystem. There is no easy way to protect our notes from prying eyes, whether humans, or rogue agents/background processes, etc.
3
2
89
With everything going on these days, the so-called “cyberpocalypse”, society might end up putting less and less trust in centralized systems. At the same time, with AI, we are very likely to see the emergence of ultra personalized software or at the very least smaller centralized silos.
1
33
Not just by developers and engineers but by everyone, which is a double edge sword. On the one hand, less technical people building apps, even with hyper intelligent LLMs… is bound to cause issues. At least for the time being, creating great software is still very hard, especially when it comes to security, performances, etc. On the other hand though, less centralized systems means more variety in the attack targets, from a cybersecurity standpoint. So even less safe platforms might have a better survival chance even is just for the sake of diversity.
1
22
I wonder if trusting in massive brands like Google, Apple and Microsoft (which have been there forever and have thousands of highly experienced developers) gives us any better odds. Not that we have any choice in the matter, considering how dependant on them we became.
13
Desperately want to try out @Cloudflare’s durable object as an attempt to better understanding their whole offering and what I can leverage in my projects… but I haven’t quite found a usecase for DO yet. 😅
28
In the spirit of this little experiment, after it has shipped, and when I will have some time, I would love to try making my own theme for the first time. I love minimal, border, and many themes. I love flexoki too. But I feel like there many small and subtile changes I would like to make for them to better fit what I want.
So far, here is how it has shaped up: - 🔒 Keep images and files in your own private S3 or R2 bucket - 🔗 Notes store a clean mybucket://photo.jpg link (mybucket can be the name you want): no public URLs, no expiring tokens - 📋 Paste, drag and drop, or pick a file - 🖼️ Images show up in Reading view, Live Preview, and Bases card covers - 📄 PDF, audio and video embeds - ⚡ Cached on your device, so images load instantly and work offline - 🗂️ You can have multiple storage profiles (personal, work, public…) - 🛤️ You define the file path: by date, by type, by note name - ♻️ Duplicate upload detection (optional) - ✏️ If you rename a path, it detects and optionally updates every link in your vault in one go - 🖼️ A library view: browse everything in your bucket, search it, and see what's used, unused or broken - 🔑 Credentials stay in Obsidian's secret storage, never in your notes or in the plugin With only one dependency to sign the requests. Definitely not yet ready to be published, I will continue crafting for a bit, but quite exciting so far!
1
64
Agreed, less is more. Though achieving “less” is the hardest part, especially in an interconnected world. I would also add: - defining strategies and routines/SOPs for things like updating dependencies, OS, runtimes, etc. - generally being more knowledgeable about the dependencies we do choose to have, even in our personal lives - using ssh agents and managing secrets well (not just leaving them in an .env file) - disabling automatic updates when relevant - enabling very frequent backups when relevant - generally identifying risks, choosing what we want to manage or delegate, and having contingencies in place for when things *do* go wrong.
My security stack for the cyberpocalypse: - no accounts I don't need - delete accounts I don't use - recovery keys for important accounts physically printed out - multiple yubikeys - minimal dependencies - almost no external services for anything - dead simple infra Less is more.
2
55
Instead of cookie banners no one cares about, I think the @EUCouncil should really focus on defining and enforcing standards for “offboarding” from internet platforms. Many still don’t offer the ability to delete your account, let alone downloading all of your data before doing so. And even for those that do, we need a standard: - To actually end up with usable data after you offboarded - Delay in treatment for deletion request, and some way to verify it has been done
1
23
The internet of the last 30 years was based on trust and that’s how it grew. No one owns the full supply chain, we all just “take a little bit of this here and there”, with OSS, with PaaS and SaaS, with npm/composer, SSL certificates, analytics providers, etc. But this is actively changing. Now no one can be trusted. It’s not just about sanitizing user inputs anymore, we need to be actively aware of EVERY part of our supply chain and, to some extent, have contingencies in place.
1
1
115
On a personal level it is also hard to clean up, I have been spending the last year occasionally requesting deletion of my data on various services I used, where I have accounts, etc. It’s crazy how much our data is sprawling a bit everywhere and how many “dependencies” we end up having. Consolidating/minimizing dependencies is possible but takes real real effort and time. But I think it’s necessary.
10
While I never take the time to actually work on them, I love SKILLS. There is nothing that makes you feel more like a developper than optimizing processes into procedures in an attempt to stay DRY.
1
69
So far, here is how it has shaped up: - 🔒 Keep images and files in your own private S3 or R2 bucket - 🔗 Notes store a clean mybucket://photo.jpg link (mybucket can be the name you want): no public URLs, no expiring tokens - 📋 Paste, drag and drop, or pick a file - 🖼️ Images show up in Reading view, Live Preview, and Bases card covers - 📄 PDF, audio and video embeds - ⚡ Cached on your device, so images load instantly and work offline - 🗂️ You can have multiple storage profiles (personal, work, public…) - 🛤️ You define the file path: by date, by type, by note name - ♻️ Duplicate upload detection (optional) - ✏️ If you rename a path, it detects and optionally updates every link in your vault in one go - 🖼️ A library view: browse everything in your bucket, search it, and see what's used, unused or broken - 🔑 Credentials stay in Obsidian's secret storage, never in your notes or in the plugin With only one dependency to sign the requests. Definitely not yet ready to be published, I will continue crafting for a bit, but quite exciting so far!
Replying to @obsdmd
@obsdmd definitely is the one app I couldn't live without. I use it to think, plan, explore and learn. Right now I am experimenting with "Obsidian Depot", a small plugin (inspired by Obsidian S3 Uploader) that aims to allow uploading+reading from private S3 compatible buckets.
1
1
231
I am actually very excited about the library, allowing you to see and manage all of your bucket's files at a glance including seeing which files are no longer referenced in the vault, along with seeing file size, etc.
14
Mathieu Céraline retweeted
I don't know who needs to hear this, but: Creating good quality software is still hard. Yes LLMs can help. But it's still hard. Choose your challenge!
1
2
5
154
In 2026, I feel like Apple should bring native SSH support to the iPhone. Especially support for agents like @1Password’s to securely unlock them in any app, etc.
33
I love seeing what other people, especially non technical people do with AI. It makes me realize I'm just not ambitions enough at times 😂
19
Trying out this whole "building/learning in public" thing. Been on here for the last 15 years, yet never overcame 1k followers because I tend to be shy and inconsistent in posting. But that's about to change 🙌🏾 Along with sharing more of what I do here, I will also be building @madincohq off the ground in public too.
1
1
50
Hey @kepano! I'm building a plugin that stores private attachments in S3 and references them in notes as myprofile://path/photo.jpg. Reading View and Live Preview work, but Bases/Canvas card covers stay empty, so I'm patching them through the DOM for now. Is there a better way to do this, or is it something you'd consider supporting?
1
96