Openwrite — a minimalist, FOSS-first blogging platform with Gemini support

Hey fellow FOSS folks!

For past few weeks I’ve been working on a passion project called Openwrite — a minimalist, open-source blogging platform focused on privacy, simplicity, and full user control. It’s built with Flask and released under the AGPL license. Inspired by platforms like WriteFreely, but with a few twists.

What it offers right now:

Multiple blogs per user (or single-blog mode, ideal for self-hosting)

  • SQLite & MySQL support
  • Image uploads (local or BunnyCDN)
  • Markdown editor with live preview
  • Custom blog themes (like a 6 now but I upload new regularly)
  • Custom CSS per blog
  • Gemini support – yes, gemini://openwrite.io works!
  • No tracking, hashed IPs only for basic stats
  • Dashboard with view statistics (OS, browser, timelines – all for free)
  • ActivityPub federation (Follow, Like)
  • RSS feeds, optional search engine indexing, and "Discover" section

Oh — and it supports importing posts from XML(wordpress) or CSV.

What makes it different?

I’m trying to build something:

  • FOSS-first (no paid plans, no analytics spyware, no nonsense)
  • Purely optional in hosting: you can run your own instance or use mine
  • Built for people like us — nerds, tinkerers, writers, privacy lovers

Current status

Still in 0.x versions (currently at 0.10.4), but stable and usable. I’d love early feedback, contributors, ideas, testers — anything really. First pull request will make me cry tears of joy.

GitHub: https://github.com/openwriteio/openwrite

Site: https://openwrite.io/

Gemini mirror: gemini://openwrite.io

Thanks for reading — feel free to ask questions, roast my CSS, or suggest features. Let’s keep the open web alive 💜

66 points · 14 comments · view on lemmy.world

14 Comments

AmbitiousProcess@piefed.social · 43 pts · 1y (3 replies)

For anyone like me that immediately assumed Gemini meant Google's AI model by the same name, fear not, it's a protocol, not an AI model.

Arghblarg@lemmy.ca · 18 pts · 1y (1 reply)

Yes, and they used the name first, not google. Arseholes.

beyond@linkage.ds8.zone · 2 pts · 1y

Not the first time that's happened: https://github.com/golang/go/issues/9

Psyhackological@lemmy.ml · 6 pts · 1y

Uff...

WhosMansIsThis@lemmy.sdf.org · 7 pts · 1y (1 reply)

Love the Gemini support! Will definitely check this out.

v0idist@szmer.info · 1 pts · 1y

Thanks! Appreciate it

libre_warrior@lemmy.ml · 3 pts · 1y (7 replies)

Markworthy! I love gemini. Im testing it out.

v0idist@szmer.info · 1 pts · 1y (6 replies)

Thank you!

libre_warrior@lemmy.ml · 1 pts · 1y (5 replies)

Seems like the webpage is down right now.

v0idist@szmer.info · 2 pts · 1y (4 replies)

It was, I'm sorry, I was migrating it to another server and something went wrong :) I will try to keep uptime best.

libre_warrior@lemmy.ml · 1 pts · 1y (3 replies)

I'm trying to test the software out on localhost, but I get this message. Are there bugs, or am I setting it up with wrong ip/port/anything?

v0idist@szmer.info · 1 pts · 1y (2 replies)

I think you need to change your .env file to make the domain match vhost you're requesting with your browser. In this case, try changing the domain to 127.0.0.1:8081 in .env

libre_warrior@lemmy.ml · 1 pts · 1y (1 reply)

I tried this, but it didn't work either.

v0idist@szmer.info · 1 pts · 1y

Can you show me your .env file? Cut off secret key and API keys. Feel free to send it on my email: admin@openwrite.io