If you’re wanting something super simple check out UserBase https://userbase.com . You haven’t given a lot of requirements here so there’s not much to go on.
I don’t know that you can overstate the importance of being on GitHub. The vast majority of developers are familiar with GitHub and can quickly contribute to something that is well written and documented. I’m not familiar with Fossil, but the way you described contributions is not at all community friendly. You need to allow users to fork your repo and PR their changes back in openly. The platform must facilitate inline discussion around code changes. No, you should not allow direct write access but they should be able to propose a diff and you should be able to have a threaded conversation about each line of code if necessary. If they can’t do that, then you will never grow a community.
I want to ask this question here because I feel like many of the viewers will be proponents of C and I want to hear your perspective. Why would someone choose C as a language of choice for a new project over Rust (or some other comparable language with memory safety guarantees)? Will/can C ever address the memory safety issues?
(I’m looking for honest dialogue and not trying to be combative)
Also learn how to diagram and do quick mock-ups. Visuals can help bridge the gap between what you can articulate and what the reader needs to develop a good mental model of the proposal.
[this comment is coming from someone who writes mostly technical design documents needing to communicate a technical solution to a problem while also considering multiple alternatives]
Read. Read a lot. Look for successful documents and emulate their patterns. First, understand what the author was trying to accomplish with the doc, then study the structure of the doc, then dig into the language choices. But, if I had to pick one thing to study, it would be structure. I frequently read tech docs that come off as a stream of consciousness. You have to understand your audience and put the effort in to give them context (the problem, the requirements, the methodology) before giving them the solution.
Also write. Write a lot. And ask for help. If you work with/know someone who is considered a good tech writer, I bet they will help you.
Depends on the nature of the change. Some migrations require additional infrastructure to migrate safely. But I imagine most changes you’re talking about are the cost in terms of time spent.
Agree. I don’t want to waste a second of my time thinking about whether I mis aligned something or my lines or too long or I didn’t follow some syntax preference. Automate it or don’t stress about it.
It depends on the amount of work that your customers need to do to migrate, the size of your user base, and your ability to communicate (and incentivize) the changes with them. The best option is to provide enough value that it is worth it to your users to pay the cost of migration. That’s not necessarily an easy thing to do.
In general, learning to learn and be patient with the process. Based on your specific context, I’d also recommend reading code, a lot of it. There’s definitely a difference between designing and writing software in isolation and jumping into a new code base. Learn about what it is supposed to do and why, then spend a lot of time reading the code to learn the how. Also, beware of being overly critical without the history and context behind things—but, learn from the mistakes made previously and raise the quality bar by example.
You can’t answer this question without both a technical design and projected user behavior/access patterns. And I don’t think you’re going to get data on this from these platforms themselves. Unfortunately, this question is impossible to answer in this format. If you want to build a “clone”, first design it and then estimate the costs of that design.