The Great Meower Rewrite

The Great Rewrite

The Meower Team has begun planning a massive rewrite of Meower’s frontend and backend code (including other Meower services).

Why is this happening

Meower’s codebase has gotten very ugly, disorganized, and has a lot of room for improvement. With a rewrite we will be able to refactor everything to make the code easier to maintain and perform better. With this rewrite we will also be able to start properly scaling Meower.

What is going to change

To general users of Meower, not a lot will change. You will notice that Meower’s interface will get a bit cleaner, Meower’s backend will be more reliable, and awesome new features will be added to make Meower feel more like a proper social media platform, that’s about all.

For the backend, it will be a complete rewrite. We will be rewriting the backend using TypeScript (ran on Deno) and be using soketi instead of Cloudlink for realtime events. As of now, the REST API framework has not been decided.

For the frontend, we will be upgrading Svelte to Meower’s new design language (“depth”) and Svelte will become the main client, it will get all of the latest Meower features and be the official Meower client from now on.

When is this going to happen

We have started planning everything for this rewrite. It will probably take a couple of weeks to get the plans sorted out, and then after that we will start sorting out who’s going to be doing what and start developing everything. This rewrite will take a few months, so please be patient while we do this. This is for the better of Meower, you may have noticed that Meower hasn’t gotten many new features since beta 5, that’s because it’s becoming harder to develop new features with the current codebase (mainly backend is the problem).

The death of Meower Vanilla

Many of you have probably known this for a long time now, but Meower Vanilla (our Scratch client) is getting discontinued and will be replaced by the Svelte client. Meower Vanilla has done well, but it’s getting harder to develop new features for it and is not being used as much compared to Svelte. It is holding back developing new features and it’s time for it to go.

Database engine

We will be replacing MongoDB with ScyllaDB and using Redis as cache and pub/sub. This does not mean any data will be lost in the process, we have said no more database resets and that is still true, no users, posts, chats, or anything will be lost in this rewrite.

COPPA

I am sorry about the announcement earlier today, we didn’t think through the decision far enough and didn’t realize how many users were actually under the age of 13.

With this rewrite, we will try to be COPPA compliant as much as possible. We will require parental consent from people under the age of 13 and will need someway of monitoring and managing their child’s activity on Meower. Also protecting children from inappropriate content as much as possible. Any advice on this will be appreciated.

Meower Release

This rewrite will be Meower’s official release (1.0.0)! With this will bring SemVer versioning and consistent smaller feature updates and improvements (rather than big “beta x release x” updates, we will push out updates on a consistent basis to where you can expect new features at least every month).

Help Wanted

We will need all the help we can get with this rewrite, if you have skills within TypeScript, REST APIs, WebSockets, Redis, Svelte, design, etc., please consider helping out the team with this rewrite! Any help we can get will help make the rewrite be completed faster.

Questions

If you have any questions, please leave them below, I will try to answer everyone’s questions!

2 Likes

It’s me helloitsme
I can do svelte, design, html and more client stuff
I can NOT do backend, js, typescript, some other things

1 Like

They have been a part of Meower for a while (longer than you iirc) in the GitHub and Discord.

I’m looking at learning svelte, so I think developing the svelte client would really help me learn. I also consider myself excellent at HTML and CSS, but I hate JS.

I am really looking forward to this new Meower rewrite, and hope that I will be able to help.

Wrong place

i can do svelte

1 Like

i’ll probably be able to help with svelte (duh), maybe also backend as well (though i haven’t really used typescript and deno, i’m moreso a javascript+jsdoc and node.js guy)

I use affinity photo a lot so I could help with designing stuff, I’m also learning Swift and SwiftUI but I’m nowhere near good enough to make a Meower iOS app or anything

how do i replicate zed’s artstyle

become zed