Share Dialog
Dear Friends,
I want to take a quick minute to welcome new readers to my substack (or paragraph newsletter if you are reading there).
If you’re new, welcome! I’m happy you’re here.
I don’t have big plans for this substack besides it being a fun experiment in writing in public.
The inspiration for the title Some of the Things came from my desire to start a writing habit and recognizing that if I tried to write about All the Things I was getting into or thinking about, I’d never succeed.
Some of the Things has evolved over the years into my public journal. Some posts are more reflective and prose heavy, and some tend to be simple bullet point lists of things I’m getting into.
It’s been a long 3 months since I wrote last so I won’t try to document everything I got into this summer, but I'll hit some of the highlights.
One of the first projects I worked on this summer was converting the GM Farcaster web projects from 3 separate standalone repos into a single, consolidated monorepo. This type of behind-the-scenes work is some of my favorite — invisible to the end user but improves the developer experience and makes it easier to manage and ship code in the future.
Apparently you can take the girl out of a devops role, but you can’t take the devops out of the girl.
For example, I had 3 web projects for GM Farcaster: our main website, a media kit, and a miniapp. There was duplicated code across the 3 (sponsor lists, testimonials, our latest episodes, etc.) and having to manage it across 3 separate GitHub repos made development cumbersome. After merging them into a single monorepo, it has made making changes much easier to manage.
The second big project I worked on this summer, also invisible to end users, was an admin dashboard for GM Farcaster. I had a set of internal tools I’d built for managing the podcast, but they ran from my local PC, which meant only I could access them. For example, I have a tool that sends a push notification to all our miniapp users when we go live. But only I could trigger it, and I wanted to give my cohost NounishProf the ability to use it too, especially ahead of my travels this fall.
I loved building this because it gave me hands-on experience with libraries I hadn’t used before, like Google OAuth for authentication. I first tried using SIWF, since I prefer to use Farcaster-native tools whenever possible, but I struggled to get it working. The flipside of using emerging tech (aka leading/bleeding edge) is there is less documentation, fewer examples, and harder for LLMs to help. After struggling with SIWF for a few days, I got Google sign-in working in a day.
I also had to retrofit the “database” our miniapp was using so the new admin dashboard could manage backend data. Previously, I just had a few local JSON files in the codebase acting as the database, which meant updating data required a git commit and a code deploy. To make the data easier to manage, I refactored the storage to use S3, decoupling data from the code. Updates to data can now be managed outside of code deployment. I’m no longer the bottleneck either since we can update everything using the UI in the tools dashboard now.
One smaller thing I worked on recently was adding the ability for users to mint podcast episodes directly from our miniapp. Since the start of Season 3, we’ve been posting all our episodes to Pods.media, which means anyone can mint or collect an episode as an NFT. One of the Pods founders reached out to ask if I could add a link to Pods from our miniapp, but instead of kicking users out of our app, I decided to call the Pods smart contract directly from within our app.
Calling a smart contract to mint an NFT is one of the most basic web3 actions. And yet I can’t get over how wildly excited I was to do it.
I come from the enterprise world, where up to 80% of my time was spent on coordination. Coordination is expensive! I’m used to scheduling meetings to decide on how apps should integrate. I’m used to having to register and get permission to use APIs. I’ve been resigned to accepting the risk that eventually someone else’s API will change or stop working.
But when you call a smart contract - even one someone else wrote - you have a guarantee it will never change. You don’t need permission. You just use it.
MAGICAL! And you can’t convince me it’s not.✨✨
Our live stream Farcaster news show is centered around casts. We curate the most important casts of the past few days and share them on screen and talk about them. We link to the casts we talked about in our show notes. And there they sit. Technically available but virtually unusable to answer questions like:
“Was I ever mentioned on GM Farcaster?”
“How many times was I mentioned on GM Farcaster?”
“Who is most often mentioned on GM Farcaster?”
“What casts were popular back in Feb of 2024?”
So I decided to build an app to make it easy to scroll back through casts we’ve featured on the show.
I first built a utility that scrapes all our show notes and parses out links to casts. I then used Neynar API to enrich the URL and fill in the cast author and cast date. And stored it all in JSON files.
Now that I have casts in a queryable format, I built a miniapp front end to let people scroll through all the bangers we’ve featured, complete with search and a leaderboard.
I also created a page so any user can see how many of their casts we’ve pulled, and I implemented a dynamic share image to take advantage of social virality to encourage users to share their accomplishment and draw more people to the app.
You can see the app at lore.gmfarcaster.com but you only get full features when opening as a miniapp in Farcaster or The Base App.
Oh, I also open sourced the code: https://github.com/atenger/farcaster-lore-miniapp
The last coding project I worked on this summer was a bit of refactoring for the website for the children’s book I’m working on with my sister.
The bat book was the first web site I vibe coded and when I had originally created it, I used Supabase (managed PostgreSQL) to hold email addresses for people who want to be notified. I found it really easy to configure and set up.
The downside ended up being limitations of its free tier.
My website gets virtually no traffic. Without usage, Supabase kept shutting down my database to save resources. For a while I kept manually spinning it back up, but it was starting to get annoying. I could have paid $25/month to keep it running, but that’s massive overkill for a database with a single emails table which is expected to grow only into the hundreds, thousands if I’m lucky. So, I refactored the website to use S3 as its backend to store emails and now I’ll pay pennies to AWS each month.
Much better.
Build out an episode library on our website and create an episode details page that has each episode, the full transcript, GPT summaries and more.
Combine various miniapps into a single one for better UX. Add the lore finder to the main gmfarcaster miniapp. Create an API endpoint for our AI search through transcripts so people can search through our content using web interface and not just the bot.
Automate the lore scraper and transcript creation scripts and deploy somewhere so that I can trigger them from our tools dashboard and not need to run them locally.
Saw comedy! I’ve been on a standup comedy kick. So far this year, I’ve seen Whitney Cummings, Nikki Glaser, and Mark Normand doing shows. Then we happened to be in Halifax when the Great Outdoors Comedy Festival was there so we snagged tickets and saw a phenomenal show with Fred Armisen, Mike Birbiglia, Nick Kroll and John Mulaney.
Traveled a bit. Went on a road trip through PA, DC and VA and visited colleges - Penn, Georgetown and UVA. Also traveled to Cape Breton Island and Halifax in Nova Scotia.
Tried to read. I started a lot of books but kept putting them down after a few chapters. The two I managed to finish are Genghis Khan and the Making of the Modern World by Jack Weatherford and The Music of Bees by Eileen Garvin. Have you read a book recently that you just absolutely loved or changed how you see the world? Send recommendations!
A website to translate from English to Dolphin and the source code for the translation. e EEEE EE EEE EE EEE EEE eee eEeE eee eee EeEE eEeeEE eEee eee EEe EEEE Ee EEEe E e eee e EeE eEee EE e eee EEe e
Loved this Ted talk from the author of Free Range Kids, where she encourages people to spend less time with our kids.
I learned more about the history of the Kalmyks (1/2 my ethnicity) and how they were exiled to Siberia in the 1940s and then returned home to Kalmykia in the 50s, after Stalin’s rule. Many sad stories during this time, and the current poverty rate is still high today. It was during this time when my grandfather escaped and fled west to Europe, eventually making his way to the US. Makes me think of sliding doors and how much harder life was just 2 generations ago.
Anyone need a reminder to separate self worth from your business?
“We help small companies act big and big companies act small” is one of my favorite ways to describe what Tenger Ways is all about.
New book from IT Revolution about Technological Jerk. They are referring to the physics term jerk which happens when the rate of acceleration changes and is a jarring, discomforting experience.
Row 1: Chimney Corner beach on Cape Breton Island, Table Doucet
Row 2: Pleasantville Farmers Market x 2, Halifax Harbour Kayaking, Great Outdoors outdoor comedy festival
Row 3: Old rowboat near Peggys Lighthouse, goats eating a tree in Rockefeller State Park, our lodging in Cape Breton featured wood burning hot tubs and epic sunsets
I started this substack in December 2022 as an experiment to see if developing a writing habit would help clarify my thinking and/or provide other benefits. You can read about my original intentions in my first post or my more recent reflections after sticking with it for a year.
I write about twice a month and share musings, meditations, and links to things I’m finding interesting as I build out a farcaster-native media company, a modern technology consulting company, raise my kids, and have fun creating and learning in the worlds of crypto, tech, finance, science and wellness.
Thank you for supporting my writing and journey. If you’d like to get in touch you can reply to me here or find me on X and farcaster.
Until next time, keep putting good into the world. —adrienne🌏❤️
Adrienne