Adonis SIMO (@adonis__simo) header
Adonis SIMO (@adonis__simo) profile picture

Building https://nitter.gq/t.co/CZjst1UbdV | Product @WorkbudHq | Full-stack Software & Cloud Engineer (Python | AWS ) | 3X AWS Certified | ex @OCfrance | Django - AdonisJs

Earth
Joined April 2016
Nouvelle mise à jour en cours sur marthaia.com ✨✨
3
14
1
33
4,154
Adonis SIMO retweeted
Depuis que j'ai découvert que je pouvais créer mes outils avec l'IA, je suis devenue un danger public. 🤣 Le site de Finance Futée, vous connaissez. Passons aux 2 outils que j'ai créés pour gérer mon business. 🧵
6
3
18
1,725
Je fais @martha__ia pour que ça devienne le meilleur environnement de travail booster pour étudiants et cherche qui ne remplace pas leur efforts intellectuel mais qui leur donne les meilleurs outils disponibles pour être productif J’ai donc refais le module revue littéraire de 0
7
8
278
Adonis SIMO retweeted
our startup was acquired today :) jenni ai is now part of the digital science family we fucking did it!!!!! i could go on and on about why this acquisition is so perfect, but i’ll save that for another time for now, i want to focus on the fact that we built jenni in public from day one all the way to exit there was honestly very little i didn’t share, so i hope this archive of our journey can help a few founders on their own fantastical journeys thank you to everyone who's followed along and witnessed all the pivots, near bankruptcies, and general hijinks that come with running a company despite the roller coaster, we ended by hitting our highest MRR ever shortly before deal close 🥳 it's been a crazy ride, you all helped me live out my dream, truly i owe my success to my team, my investors, and my family for all of their support throughout the years not too bad for a college dropout who had to move back in with his parents!
349
48
21
1,886
78,421
Day #28 — Comment ça, il peut vider le compte d'une autre personne ?! 😳 Hier, dans ma publication sur TheLab, l'illustration montrait un testeur qui venait de découvrir qu'il pouvait accéder au compte d'un autre utilisateur. C'est probablement l'un des feedbacks les plus terrifiants qu'on puisse recevoir lors d'une revue de sécurité. « Comment ça, il peut voir le compte d'une autre personne ?! » D'abord la stupeur. Ensuite la frayeur. 😅 Et c'est encore pire lorsqu'on vous annonce qu'il peut littéralement vider le compte d'une autre personne, en prendre le contrôle ou même empêcher son propriétaire d'y accéder. Tout ça sans avoir piraté le compte de la victime ! Alors, comment est-ce possible ? Grâce à une faille de sécurité appelée IDOR (Insecure Direct Object Reference). Comment ça arrive ? Imaginez que votre application permette de consulter les informations d'un compte à partir de son identifiant. Vous avez une API qui reçoit cet identifiant en paramètre et retourne les informations correspondantes. Jusque-là, rien d'anormal. Sauf que votre backend ne vérifie pas si l'utilisateur connecté a réellement le droit d'accéder à ce compte. Et voilà le problème ! Comment se déroule l'attaque ? 1. Un utilisateur se connecte normalement à votre application. 2. Il récupère son token d'authentification, identifie l'API utilisée pour accéder à son compte, puis remplace simplement son identifiant par celui d'une autre personne. 3. Si le backend ne vérifie pas les autorisations, il peut accéder aux données de cette personne. 4. Et si la même erreur existe sur des opérations sensibles comme les retraits, les transferts ou la modification des accès, les conséquences peuvent être catastrophiques. Comment éviter ça ? 1. Pour les opérations qui concernent exclusivement l'utilisateur connecté, récupérez son identifiant depuis son token d'authentification validé plutôt que de le laisser le fournir librement. 2. Évitez autant que possible les identifiants prévisibles ou facilement énumérables. Mais attention : utiliser des UUID ne remplace absolument pas les contrôles d'autorisation ! 3. Vérifiez systématiquement, côté backend, que l'utilisateur a le droit d'accéder à la ressource ou d'effectuer l'opération demandée. 4. Si votre application permet légitimement à une personne d'effectuer des opérations sur le compte d'une autre, prévoyez un mécanisme explicite de délégation d'autorisation, avec des permissions et des limites bien définies. Pour les opérations sensibles, vous pouvez également exiger une confirmation ponctuelle du titulaire du compte. Petit bonus : Lorsqu'un utilisateur tente d'accéder à une ressource qui ne lui appartient pas, évitez de lui révéler inutilement si cette ressource existe ou non. Dans les contextes où cette information doit rester confidentielle, une réponse générique comme « Ressource introuvable » peut être préférable. Et surtout, retenez ceci : être authentifié ne signifie pas être autorisé ! Allez, allez ! Vérifiez vos implémentations et faites en sorte que chacun garde l'accès à ses propres données… et uniquement à celles auxquelles il est autorisé ! 😁 #31Days31Posts #Cybersecurity #SecureCoding #IDOR #Tech237
1
5
321
Épargner soulève plusieurs questions : quelle somme mettre de côté, pour quel objectif et sur quel support ? Ces deux dernières semaines, nous avons abordé les premières étapes : établir un diagnostic budgétaire, identifier sa capacité réelle d’épargne et définir des objectifs compatibles avec ses moyens. Cette semaine, Finance Futée by Ange vous propose une capsule quotidienne pour passer à la répartition pratique. Nous parlerons notamment de disponibilité, de tontine, d’inflation, de frais et de préparation du long terme. L’objectif : vous aider à mieux comprendre les critères à examiner avant de confier votre argent à un établissement ou de souscrire une solution. Ces échanges se prolongeront au Café Futé spécial Journée mondiale de l’épargne, avec des experts de différents secteurs financiers. 📅 Samedi 31 octobre 2026 à 10 h, heure de Douala 📍 Google Meet 🎟️ Participation gratuite, sur inscription Inscrivez-vous sur financefuteebyange.com
2
13
17
698
Adonis SIMO retweeted
Since we're getting back to browser for gaming... it's about time... right ? Introducing Aether Arcade 🕹️ 1.5k games in one console that runs in your browser, on your laptop, your TV or your phone. Neo Geo, PlayStation, Sega, Game Boy, arcade classics, MS-DOS hits and new indie games, all on one Home screen you browse like a PS5. Plug in a controller and the menus follow it, with Xbox or PlayStation button hints. No controller? A keyboard, a mouse or your thumbs work too. On a phone you get an on-screen controller with an analog stick. You don't sign up and you don't install anything. Send a friend a link, pick a game together and start at the same moment. Press start 👉 aether.sanixdk.xyz
2
2
12
720
Polygamists are Baddie Magnets. Rizz gods!!
I see second wife I think say na Rihanna 🥹
12
23
3
144
27,018
Adonis SIMO retweeted
I see second wife I think say na Rihanna 🥹
32
55
79
687
400,020
Avant cela m’alarmait que ces connaissances se perdent. Mais avec ce qui se passe peut être c’est mieux ainsi, et puis quand elle seront nécessaires et que les gens présent en seront digne, elle reviendront…
La medecine traditionnelle africaine. Pourquoi certains africains la voit comme de la sorcellerie? Sans opération voyez ce qu'il a retiré du pied de la dame! Pourquoi nos Étas africains n'essaient-ils pas de promouvoir ce genre de connaissances???
3
775
Adonis SIMO retweeted
Tu paie ou tu ne paie pas ? Je continue les mises à jour tout doucement dans CamerLife, les personnages et les lieux sont maintenant mieux représentés. Cc @sanixdarker
2
9
1
30
1,306
Adonis SIMO retweeted
Yesssooooohhh!!!!
Tu paie ou tu ne paie pas ? Je continue les mises à jour tout doucement dans CamerLife, les personnages et les lieux sont maintenant mieux représentés. Cc @sanixdarker
1
3
375
Tu paie ou tu ne paie pas ? Je continue les mises à jour tout doucement dans CamerLife, les personnages et les lieux sont maintenant mieux représentés. Cc @sanixdarker
2
9
1
30
1,306
Je bosse à améliorer le mode histoire avec un meilleur système de mission. Au lieu de tenir le joueur par la main comme dans la première version
1
4
5
224
😂😂😂😂 si quelqu’un a déjà essayé de construire une plateforme d’emailing. Il ne peux que rire de cette liste. Comme disais @Boris_Gauty , le problème est de penser que notre métier se résume à taper du code.
bro listed 13 SaaS bills at the bottom like you need Vercel + Supabase + Inngest + Clerk + S3 + PostHog to send an email loop 1 Hetzner (€3.79/mo) + bun:sqlite + SES + 6 MCP tools 0 admin UI, 0 React dashboards, 0 SaaS / SQL wrappers Claude is the UI, here's the entire prompt 👇 Build a single-file headless newsletter engine (`server.ts`) running on Bun + `bun:sqlite` (WAL mode) + AWS SES on a €4/mo Hetzner VPS. 0 external SaaS dependencies, 0 Admin UI, the entire control plane is a remote MCP server. 1. SQLite Schema (`db.sqlite`, WAL + busy_timeout): - subscribers(id, email UNIQUE, status['pending'|'active'|'bounced'|'complained'|'unsubscribed'], tier['free'|'paid'], source, attrs JSON, token UNIQUE, created_at) - posts(id, slug UNIQUE, title, mdx_free, mdx_paid, sent_at) - send_queue(id, post_id, subscriber_id, subject, status['queued'|'sent'|'failed'], attempts, next_retry_at, UNIQUE(post_id, subscriber_id)) - events(id, subscriber_id, post_id, type['delivered'|'opened'|'clicked'|'bounced'|'complained'], meta JSON, ts) 2. Public HTTP Routes (`Bun.serve`): - GET / & GET /p/:slug -> server-rendered HTML web archive + RSS feed at /rss.xml (unlock `mdx_paid` if signed cookie is paid) - GET /media/:file -> serve optimized images directly from local `/var/data/media/` - POST /subscribe -> rate-limit by IP in memory, reject disposable domains, upsert subscriber, send magic-link opt-in via SES - GET /magic/:token -> activate subscriber + set HMAC signed session cookie, redirect to / - POST /u/:token & GET /u/:token -> RFC 8058 1-click instant unsubscribe - POST /webhooks/ses -> verify AWS SNS signature, process Bounce (Hard -> 'bounced', Soft -> ignore), Complaint (-> 'complained'), Delivery/Open/Click -> insert into `events` - POST /webhooks/stripe -> verify signature, flip `tier = 'paid' | 'free'` 3. Background Worker + Email Compiler (in-process loop, 0 Redis/Inngest): - Compile MDX to Outlook-safe table HTML via `react-email/render` and verify `Buffer.byteLength(html) < 102000` (Gmail 102KB clip limit). - Every 1s, pull up to 50 due rows from `send_queue`, send concurrently via SES `SendEmail` with `List-Unsubscribe` + `List-Unsubscribe-Post: List-Unsubscribe=One-Click` headers, and exponential backoff on 429/5xx. 4. Remote MCP Server (`POST /mcp` with Bearer token): - `sql_query(sql)`: read-only SQL over SQLite (replaces all analytics dashboards, cohort charts, and segment builders) - `save_post(slug, title, mdx_free, mdx_paid)`: upsert draft, return Gmail byte-size check + web preview link - `upload_media(filename, base64)`: resize/convert to WebP via `sharp`, save to disk, return URL - `send_test(slug, to_email)`: send rendered preview email - `send_post(slug, where_sql, ab_subjects?)`: populate `send_queue` for active subscribers matching `where_sql` (e.g. "tier = 'paid' AND json_extract(attrs, '$.topic') = 'ai'") - `mutate_sql(sql, params)`: tag, import CSV, or update subscribers/automations directly
3
321
À quel point es ce possible de developper et faire évoluer un jeu avec les LLM actuels, sachant que je ne suis que dev web et je n’ai jamais fais de jeu vidéo. C’est la question que je me suis posé en fin de semaine passée après avoir vu le lancement de LagosLife.
1
1
7
321
J’ai m’en suis inspiré pour faire une version qui suis ma vision et j’ai créer CamerLife avec Claude Code et j’expérimente tout les jours. Découvrez le jeu ici camerlife.marthaia.com
1
36
Today we’re laying off a large part of the Airtable team. This is not a reflection of their work but a reflection of our deep belief that small teams ship more and better. For Airtable, better is about to look like: - A new Core team shipping your top requests monthly (already 30+ shipped in 3 weeks) - Upgraded Omni, Airtable Canvas, a stronger MCP, and BYO agents, coming soon - New Performance and Infra teams focusing on speeding up bases and increasing limits on records, fields, and syncs To everyone leaving: thank you. If you’re hiring, these are excellent people and worth a call.
1,006
157
512
3,371
3,334,401