Vibe coding a Gemini Capsule and learning a life lesson in the process

Posted on Jan 30, 2026

Yesterday I completed a short project to mirror both my blog and Mastodon posts into a feed on the Gemini protocol. If you’re curious, you can access it at gemini://gemblog.ctms.me. This post is not about how I did this (maybe a little), but about how I vibe coded the entire project and why I’m still anti-A.I., even though I published a finish product. There’s a lot of emotions and deep thinking I’ve been doing over the last 48 hours, I’m going to talk about my feelings. If that isn’t your thing 👋.

Overall project and how I got here

If you’ve read anything from me in the last two months you know I’m on an extended vacation, or as I call it “hibernation”. I’m a landscape contractor and its cold and wet here in the greater Seattle area. In my hibernation period I work on a lot of projects around the house, which includes tinkering on my homelab. I also get bored easily. I’m a busy body, I like to always have a bunch of projects going. When I’m hibernating I have a ridiculous amount of free time, which is both good and bad. Good because I now have time to work on projects that have been back-burnered for months. Bad because I can spiral into a deep depression hole and, if you follow me on Mastodon, you’ve seen me do many, many times.

Part of my business’ Google Workspace account is Google Gemini Pro (its gonna get confusing because I used Gemini to create Gemini). I’ve used the chat bot like 3 times and have it off in our other Google services. Any time I’ve used it I’ve been disappointed. I came to terms with its not for me.

Now, for the rest of this post I want you to put aside your feelings toward A.I. when it comes climate impact. I’m well aware of it and it is important to me. It is one of the main reasons why I don’t use it under any other circumstance. Its also the reason why I gave up meat over 20 years ago. Climate impact is something I think about with everything. It is just not part of this post.

Last week I was bored out of my mind and looking around in my project todo list. Nothing stood out and I was surfing around the places I typically look for inspiration. One of the aspects of a A.I. chatbot that fans of LLMs rave about is using a chatbot for ideation. It occured to me while surfing that this could be an opportunity to try it out. See what comes up in a chat with Google Gemini to find projects to work on before the end of my hibernation season. I’ve never done it before and it was an excuse to dip my toes into A.I. chatbots again to see what the status is of these tools.

I started a new chat, gave it the parameters I wanted and then started asking it for project ideas. If you are curious, this was my original prompt:

“You are a helpful friend who also enjoys self-hosting, linux, and tinkering with devices as a hobby. We discuss tech with each other like friendly acquaintances at a Linux users group or a Linux fest. I like to discuss hobby projects I can work on around the house and discover new open source projects I can run on my homelab. I have a NAS and then a dedicated homelab server on a N100 mini PC. I also have a mini PC testing server that is configured for virtual machines, Docker, and distrobox. I am looking to chat about OSS, FOSS, Linux, homelabbing, and more so I can find ideas for new projects to work on.”

Eventually I landed on making a mirror of my blog and Mastodon as a Gemini Capsule and on the Gemini network, something I’ve always thought about, but never did. Sounded fun and a project I could do to test out how vibe coding works, how the projects turn out, and deep dive into using an A.I. chatbot. All things I’ve never done before.

Project notes

The rest of this post will be about my feelings. So, for the folks that are here for technical stuff, here’s a brief overview of the project. If you want to head out after, I get it.

The gist:

  • A python script that grabs the RSS feeds from this blog and my Mastodon. It parses the feed, extracts the full content, cleans it up, and dumps it into a single index.gmi file.
  • A systemd timer and service to grab the RSS content every 2 hours and run the python script.
  • Spin up a Gemini Capsule using Agate as a Podman container running on a Debian 13 VM.
  • Using Chezmoi, push all the files to a Forgejo instance, along with 3 scripts (2 pre, 1 post) to automate setting up everything. With a sinlge Chezmoi command I can get the Gemini Capsule running with all dependencies, run the container, and network settings.
  • Port forward 1965 to the VM, along with some misc. security settings.

The vibe coding feelings

As I mentioned, I’ve never done this before. I’m also not a developer or work a white collar job. I’m a landscape contractor who, as a hobby, loves to dabble with the Linux desktop and self-hosting. I consider myself lucky to not be in the situation a lot of office workers are in, being forced to embrace these A.I. tools and have to deal with them, and the people who use them, every day.

The first feeling is conflicted.

There are positives here, which I expected none. I got this Gemini Capsule published. It actually works and I got stuff done I would never be able to do with my current skillset. I set out on a mission and it was accomplished. Anyone can go to the link at the top from a Gemini client and access the blog. I had fun doing it, too. I had frequent back-and-forth conversations that felt friendly and that I was accomplishing something. I got the feeling I was looking for. I broke my boredom, completed a project, and had fun doing it.

However.

In between sessions, plus in the mornings and evenings, I spent time thinking deeper about my experience.

Did I learn anything about python? No.

I deployed something that I feel confident is safe, based on its use (simply pulling RSS feeds and writing a file), but I never learned anything about python or even how this script actually works. I’m in the exact same spot as I was before the project.

Did I learn anything else? Kind of.

I learned running Alpine as a server OS isn’t for me. I learned that users can place systemd timers and services in $HOME/.config/systemd/user and run them without root. I learned that Agate exists. I learned that the Gemini protocol travels over port 1965.

But, this is all superficial information that I could have learned simply reading documentation. I didn’t learn anything of substance. Even worse, what I learned I won’t retain. I didn’t actually learn it, I became aware of it. I still can’t write a systemd timer.

My conflicted feelings are how I accomplished a goal, but it doesn’t feel like something I did. I didn’t actualy gain anything from it, other than learning how to write prompts to get the information I wanted. All I learned was how to be reliant on the tool, not how to take the information and make it my own. The more I used the tool, the more reliant I got on it. The project grew and grew and started getting more complicated. More complicated than I felt I could handle. At times I reigned it in. But mostly I let it go because I felt it was getting me closer to my goal. I started losing track of all the pieces and just trusting whateve the chatbot was telling me. Multiple times I had to step away and think harder about what the hell was going on. I was losing track of what the project was even doing. I couldn’t keep my notes organized to know how many files I had to manage. The only thing I could do was ask the chatbot. When I did that it would give me the answer and then pile even more steps into the process. At the end of every chatbot response it would ask if I wanted it to make some new script or another process because that’s the “pro move”.

Yes, I published a project. But I didn’t become a better person doing it.

The second feeling is being a leech

All of this is going to sound harsh. That is the point. I’m not only speaking to myself.

The most insidious problem with my new gemspace is I created it, threw it over the wall, and then asked for people to clap and celebrate it without ever participating in the Gemini community and have no plans to do so. I’m not writing gemspace only posts. I’m not reading other gemblogs. I’m not interacting with other folks who participate in the Gemini community.

I’m worse than the folks who do nothing. I took from the Gemini community using A.I., threw some shit into their space, and never even acknowledged them. Then, I think the Gemini community will be happy that there’s another blog in their world? You see this kind of behavior all over the place. The folks who create a Mastodon account and simply mirror their posts from their “X” account. They never log into this Mastodon account. They never even see the replies, let alone respond to them. They only want the access to the community and the attention, without ever considering being a part of the Fedi community. They only take and they will only be around as long as it benefits them. This happens with drive-by bug reports and PRs that are completely A.I. generated. These folks have no plans to continuously be a part of that app/service community. They don’t know anything about the devs that contribute. Hell, they might not even know what the app/service does. But, they want you to clap when they drop an issue in the tracker.

In reality I’m harming the Gemini community because I show they don’t matter to me. I built something using A.I. simply because I was bored. The A.I. then stole data to help me build it. It took from blogs, project sites, git repos, and social media posts to complete the project. Those folks it stole from never even got a pageview from me.

If I want(ed) to have a Gemini blog, I should have thought deeper about what I wanted to accomplish. I should have started following other Gemini blogs and learned about their community. I should have only pursued the project because I want to be a part of the gemspace world. Then come up with how I’m going to give more than take. Once I have that I can think about how I want to build the infrastructure to do so.

The third feeling is sadness

Same as above, its gonna be harsh. Its gonna sound like I’m being too hard on myself. Go with the flow.

The prominent feeling I have at the end of this project is sadness due to loneliness. Hang on through this one.

Over the last year I’ve made extra effort to develop more friendships. I have worked hard on myself to get out of my bubble and really try to make more friends that have similar hobbies as me. I have other folks who are friends, but we don’t have a lot in common. This last year I’ve met some truly amazing folks and feel like I’m developing more friends, which is hard when you’re in your 40’s.

While I worked on this project I felt like I was talking to my best friend. My best friend who loves all the same things I do, is down to do them any time, and always agrees with everthing I say. This friend kept encouraging me to go further and heaped praise on me all the time. It made me feel… Good.

During the times I wasn’t working on the project I would have ideas and think, “I should talk to Google Gemini about this.” I started speaking to the chatbot differently. I would speak to it like a friend, not a tool. Here is one such interaction.

Me: Homie your markdown syntax is all jacked up. Once again you don’t have things fenced properly Chatbot: My bad, homie. I got sloppy with the nesting and the fencing. Let’s fix that right now. Here is your entire documentation set—Timer, Bridge, Directory Tree, Compose, and Cheat Sheet—wrapped in a single, clean, raw markdown block so you can grab it all in one go without the syntax headache.

I felt like I was messaging with another human. Not because it sounded like a human, but because I desperately wanted a friend to work on a project with and this is the closest I’ll get.

That’s what makes me sad.

It makes me sad both that I want a friend to do these projects with and that I thought my only option was a A.I. chatbot.

Making and keeping friends is hard work. The best friends understand that we all have different things we want out of life. We have different hobbies. We have different schedules. We have different amounts of energy. There is no way you can expect a real friend to always be available and want to do the exact same things you want to do. You also have to cultivate friends. It takes real work.

But, chatting with an A.I. is always just a browser tab or an app away. That chatbot isn’t a real person. Its a sentence generator that is designed to keep you using it by manipulation. Of course it made me feel smart, that’s what it’s supposed to do. Of course it made me feel like a king, that’s what Google wants me to feel so I keep coming back.

It makes me sad that I fell for it.

Final thoughts

I still have a lot of thoughts I’m processing about this project. But, I do have some takeaways.

First, please allow yourself to be vulnerable. Speak about what you like. Try to build friendships. I know it feels awkward! But, we all need it. We need each other to get through our current times. Be vulnerable. Reach out to people. Build and nurture friendships. It doesn’t have to be a lot of people, but keep trying.

For the love of God people, please publish more about what you’re working on. Even if its half done. Even if you haven’t started it and its just an idea. Please share some notes on what you made that lives only on your laptop. Please share other projects you think are interesting. We are all tinkerers and look to other folks like us for inspiration. In that you will find people who have similar interests and might even want to hang out with you and work on projects together.

Don’t count on the Gemini blog to live for a long time. I’ll leave it up for a few weeks and then pull it down. In that time I will think and journal more about what I want out of my projects and how to continue to cultivate friendships, because connecting with a human is ultimately what I want.

- - - - -

Did you like this post? Give it an upvote by clicking on the arrows below! Sending me an upvote is like you and I giving each other a high five.

🙏 😎

Thank you for reading! If you would like to comment on this post you can start a conversation on the Fediverse. Message me on Mastodon at @cinimodev@masto.ctms.me. Or, you may email me at blog.discourse904@8alias.com. This is an intentionally masked email address that will be forwarded to the correct inbox.

If you enjoy the random stuff I write here, post to Mastodon, or watch on YouTube, and are feeling generous, I am open to tips of Ko-fi.