DeveloPassion's Newsletter #119 - Baby steps

DeveloPassion's Newsletter #119 - Baby steps

Hello everyone! I'm Sébastien Dubois, your host (I'm on Twitter). You're receiving this email because you signed up for DeveloPassion's Newsletter. Thank you for being here with me ✨

Welcome to the 119th edition

Another week, another newsletter! I hope that you all had a great one 🤩

This week, I've continued working on Knowii. I'll tell you more in the lab section!

If you enjoy this newsletter and get value from it, please consider becoming a subscriber. You'll be able to join our community and meet like-minded people while enabling me to keep creating content. If you prefer, you can also buy one of my products on Gumroad or offer me a cup of coffee.

Alright, let's gooooo 🚀

The lab 🧪

Gareth, a friend on the Slack PKM took some time to analyze my revenue on Medium. The graph is rather interesting and helps me reiterate a point I've made before: cross-posting articles on different platforms is a valuable approach. I've published most of my article on my own domain and cross-posted those on Medium for a while, and it generated ~$100/month on average, without me doing anything specific for that platform.

What matters is setting the canonical URL to my own domain, to make sure I keep control over the search results. Other than that, it's an interesting source of income. I think there's value in providing more options for my readers. Some already have a Medium subscription and don't necessarily want one-more on their list. The main downside I see is the dilution. Some of my readers will just follow me on Medium and might miss some of my content and promotions I run from time to time...

I didn't have as much time as I wanted for Knowii, but I was able to make some more progress this week. I implemented social logins in production and a solution for usernames.

When users log in using a social provider like Google, Twitter or GitHub, we (developers) don't always have the same information available. In particular, the username is not always there. GitHub provides a "username" field, but Google does not. In their case, the email also the username, and it's not something I want for Knowii... As a community platform, I want users to be able to use their real name and/or a nickname/username. I see a lot of value in the anonymity. That's why I needed to build a little system to take care of that. Now, when users sign up using Knowii, they'll be able to pick a username:

And they'll directly see if it's still available:

I also needed a way to generate a random username so that users who log in using Google also get one (albeit temporary):

At this point, I didn't want to have a complicated multistep onboarding process. I want users to be able to dive right in, without being bored by administrative overhead. The username generation mechanism took me a lot of time to implement. I needed to write PL/SQL functions to randomly pick nouns, adjectives, and random numbers, make those long enough but not too long, etc. Finally, the implementation wasn't easy because I couldn't see the logs when something went wrong 😂

Anyway, one more step forward!

New articles

Meeting with yourself
Meeting with yourself can profoundly impact your wellbeing, happiness and productivity. Don’t miss out on the opportunity!

Quotes of the week

  • "Do or don't, there is no try"
  • "Awareness, not age, leads to wisdom" — Publius Syrus

Book of the week

Thinking and learning

Obsidian Co-Pilot: The Best ChatGPT Integration For Obsidian
Manage your knowledge like never before with seamless AI Integration
Demystifying Obsidian’s Outlining Superpowers
An Obsidian Guide for the Outliner
Obsidian Quick Tip: Reveal the Current File in the File Explorer
Obsidian gives us many ways to open a file, such as the Files Explorer pane and using the Quick Switcher command palette using Ctrl/Cmd+O.
Writing Using Canvas and Kanban in Obsidian
Obsidian now contains a set of tools that are quite similar — at least in part — to what Scrintal or Scrivener offers to researchers and…
Spatial canvases and your notes
The advent of visualization tools being integrated with your notes is upon us in 2023.

Indie Hacking and bootstrapping

How we hit $1M ARR in 7 Months 🚀
We recently achieved a significant milestone, reaching $1M ARR in just 7 months. At the same time, we’ve maintained a steady 50% MoM growth for 9 consec…
Just do it.
I’ve spent the last two years thinking about doing these two projects, and the actual effort to bring them into existence only took two weekends. I arrived at an important insight: if you find yourself frequently revisiting an idea you have kicking around in your head, do your best to tra
The story behind launching an MVP in 48 hours and $65 000 exit in 3 months
Hey Indie Hackers! Every week, I send a marketing Case Study from a profitable Solopreneur. Today I want to share with you the recent issue 👀 1. Explai…
3 Ways Authors Can Reuse Their Book Research
Too often book research is used for the content of the book and not reused in 3 other practical ways


Vercel launched its storage solution, including PostgreSQL databases. This is a really interesting move:

Introducing storage on Vercel – Vercel
New to the Vercel dashboard: Vercel KV, Vercel Postgres, and Vercel Blob

Names are not so simple to handle. Take time to read this to remove wrong ideas from your mind:

Falsehoods Programmers Believe About Names | Kalzumeus Software
The End of an Era: React Team Says Goodbye to Create React App
Yes, it is not recommended by the React team to use create-react-app.
Full-Stack TypeScript with tRPC and React
How to use tRPC with React for full-stack type safety with TypeScript…
There’s Math.random(), and then there’s Math.random() · V8
V8’s Math.random implementation now uses an algorithm called xorshift128+, improving the randomness compared to the old MWC1616 implementation.


A cool report about AI

I use ChatGPT 50 to 70 times a day for everything from preparing for professional meetings to getting superglue off my fingers
Conor Grennan, the Dean of MBA Students at the NYU Stern School of Business, shared five tips to use OpenAI’s ChatGPT more effectively. - GPT 4 and the Uncharted Territories of Language
Language is a source of limitation and liberation. GPT 4 pushes this idea to the extreme by giving us access to unlimited language.
ChatGPT is about to revolutionize the economy. We need to decide what that looks like.
New large language models will transform many jobs. Whether they will lead to widespread prosperity or not is up to us.
Ariana is your ChatGPT-powered WhatsApp AI-Assistant — Timworks
Your personal ChatGPT 4 Assistant, available 24/7 on WhatsApp - meet Ariana. Free and paid plans available. No credit card or downloads required.

About Sébastien

Hello everyone! I'm Sébastien Dubois. I'm an author, founder, and CTO. I write books and articles about software development & IT, personal knowledge management, personal organization, and productivity. I also craft lovely digital products 🚀

If you've enjoyed this article and want to read more like this, then become a subscriber, check out my Obsidian Starter Kit, the PKM Library, my collection of books about software development and the IT Concepts Wall 🔥.

You can follow me on Twitter 🐦

If you want to discuss, then don't hesitate to join the Personal Knowledge Management community or the Software Crafters community.