Published on

Reflecting on a Challenging Start - Roadmap for Final Third of the Year

Authors

The first part of this year was tough for Leaf from a development standpoint. Progress was slow, and we found ourselves burdened with a significant amount of technical debt. But it's not all bad news! We're almost back on track and hitting our stride, making up for lost time and working hard to improve Leaf for everyone. In this article, we will share our plans for the final third of the year and the thought process behind each decision. Let's dive in!


A rocky start

To be transparent, the initial months of the year were far from ideal. We encountered a range of issues that slowed down our development process, from conflicts in our day jobs to personal challenges that affected our ability to focus on Leaf. This led to delays in our planned releases and a growing pile of technical debt that needed urgent attention. A lot of nasty bugs and performance issues crept up due to the lack of attention, and some modules just flat out broke completely. We know that many of you were eagerly awaiting new updates and features, and we fell short of delivering on those expectations. We are sorry for the inconvenience and appreciate your patience during this time.

This period was a wake-up call of sorts, highlighting the importance of maintaining a transparent and open line of communication with our community. We realized that we needed to be more proactive in sharing updates and progress reports, even when things weren't going as planned. We're committed to doing better in this regard and will make sure to keep you informed about our progress moving forward. Speaking of the community, the whole bunch was incredibly supportive during this time, keeping our discussions lively and providing help to those who needed it. We're grateful for your continued support and are excited to show you what we have in store for the final third of the year.

Turning the Tide

The good news is that we're finally starting to see the light at the end of the tunnel. We're not just playing catch-up; we're setting the stage for a stronger, more reliable Leaf that can meet—and exceed—your expectations. We've made significant progress in addressing the technical debt that had accumulated over the past few months, closing a significant number of issues, and have even gone further to refactor some of our core modules to improve performance and stability. Of course, we are working hard to get the remaining issues sorted out as quickly as possible. We have pushed out 24 releases just this month which might be the most we've done in a month since we rolled out Leaf 3.0 and the entire ecosystem of modules. We're also working on a new release schedule that will help us stay on track and deliver updates more consistently, we will share more details about this in the coming weeks.

Generally, we're in a much better place now than we were a few months ago. We've streamlined our development process, improved our communication channels, and are more focused than ever on delivering a top-notch experience for our users. We're confident that the final third of the year will be fun and exciting for everyone involved, and we can't wait to share our progress with you.

Before we go on

Before we dive into our plans for the final third of the year, we want to take a moment to thank everyone who has supported us so far. We had André from the team who helped keep up with the issues and pull requests and also helped with Discord moderation. We also had a few community members who contributed to the project by submitting bug reports, feature requests, and even code contributions. @DesmondHume, @milosPavic, @ibnsultan, and @mikidarkness are a few of the many people who helped keep the community alive and thriving during this challenging period. We're grateful for your support and look forward to working with you all to make Leaf even better in the future.

We'll also like to welcome our new team member, Abdulbasit, who will be helping us with the development of Leaf and its modules. We're excited to have him on board and are confident that his expertise will be invaluable as we work to improve Leaf for everyone.

Our Plans for the Final Third of the Year

Now that we have regained our momentum, we're looking ahead with renewed energy. The final third of the year is going to be pivotal for Leaf, and we have some exciting plans in store.

  1. Closing out the remaining issues

Our first priority is to continue chipping away at the said technical debt that's accumulated. This means revisiting old code, refining our architecture, and ensuring that Leaf is not just functional but also maintainable and scalable. We're making good progress on this front, but there's still work to be done. Some modules have been swapped out for better alternatives, and we're working on improving the performance of others. We're also focusing on fixing bugs and addressing any performance issues that have been reported by our users and stuff we've noticed ourselves. This isn't the most glamorous part of development, but it's absolutely crucial for the long-term health of the project.

Image

  1. Smoothen out module DX

One of the things we've been working on is improving the developer experience for various modules. Modules are built with individuality in mind, but we want to make sure that they all follow a consistent set of guidelines and best practices. This will make it easier for developers to contribute to Leaf and use its modules in their projects. We're also working on improving the documentation for each module, making it easier for developers to understand how they work and how they can be customized to suit their needs. We believe that this will help foster a more vibrant and active developer community around Leaf, which is essential for the long-term success of the project. We also have some new features and improvements planned for some of our most popular modules, so stay tuned for more updates on that front.

  1. Documentation overhaul

We've heard your feedback about the documentation, and we're taking steps to address it. We're working on a complete overhaul of the documentation, making it more comprehensive, user-friendly, and up-to-date. This will include new tutorials, guides, and examples to help you know exactly what you need to do to get the results you want. We're also working on improving the search functionality and navigation of the documentation, making it easier for you to find the information you need quickly. We believe that this will make it easier for both new and experienced users to get the most out of Leaf and its modules. We noticed breaks in the online REPL and sandbox, and we're working on fixing that as well.

image

  1. New learning resources

Learning resources are essential for helping new users get started with Leaf and its modules. We're working on creating new tutorials, guides, and examples to help you learn how to use Leaf effectively. These resources will cover a wide range of topics, from basic concepts to advanced techniques, and will be designed to be accessible to users of all skill levels. We are also working on a new series of video tutorials that will walk you through the process of setting up Leaf, creating your first project, and customizing it to suit your needs. We will also be hosting regular webinars and online code-alongs to help you learn more about Leaf and directly interact with the team. Another important set of resources we're working on is a series of starter templates that you can use to kickstart your projects. These templates will include everything you need to get started, from basic layouts to advanced features, and will be designed to be easy to customize and extend.

image

  1. Hana JS + Leaf

Hana JS (Hanabira) is a React JS framework we added to the ecosystem last year. Hana gives React developers a way to build web applications with a focus on performance, ease of use, and developer experience without the complexities of other frameworks or the need to set up everything from scratch. We're working on integrating Hana JS with Leaf to provide a seamless experience for developers who want to build simple, Leaf-powered web applications. This integration will allow you to build API routes in Leaf which you can use with your React frontend.

image

RFCs

We have a few RFCs in the works that we would like your feedback on. We believe that involving the community in the decision-making process is essential for the long-term success of the project, and we want to make sure that we're building the right features and improvements for you. For this round of RFCs, there will be no change in API or the way you write your Leaf apps. Here's what we are working on:

  1. RFC: PHP 8.0 as the minimum requirement for Leaf - Leaf 3 started out with support for PHP 7.1 and above because most frameworks had dropped support for PHP 7.4 and lower. We wanted to give developers a framework that they could use with their existing projects without having to upgrade their PHP version. However, PHP 8.0 has been out for a while now, and it comes with a lot of new features and improvements that we would like to take advantage of. Our most recent metrics show just about 7% of our users are on PHP 7.4, with no devs on PHP 7.3 and below. We believe that it's time to make PHP 8.0 the minimum requirement for Leaf and take advantage of the improvements it offers. We would like to hear your thoughts on this change and how it might affect your projects. We will be opening an RFC on this soon.

  2. RFC: Killing Leaf API - Leaf API was a project we started to provide a simple way to build APIs with Leaf. Over time, it became more and more like Leaf MVC and today, it's just a stripped-down version of Leaf MVC. We believe that maintaining two separate projects that do the same thing is not the best use of our resources, and we're considering merging Leaf API into Leaf MVC. This might sound crazy, but Leaf API is just Leaf MVC without the view layer. For users who use the Leaf CLI to generate their projects, this change will not affect you in any way. We would like to hear your thoughts on this change and how it might affect your projects. We will be opening an RFC on this soon.

image

Finances

As an open-source project, Leaf has always thrived on the passion and dedication of its contributors and community. But to be completely transparent, the financial side of things has become a growing challenge. Most of Leaf's costs have been covered by the team members, but as the project grows, so do the expenses. We've reached a point where sustaining and growing Leaf requires more than just part-time efforts from our team. To truly take Leaf to the next level, we need to support maintainers who can dedicate themselves to working on Leaf full-time.

This year has highlighted the importance of having consistent, focused effort on Leaf. As the project grows in complexity and scope, so do the demands on our time and resources. We’ve been able to achieve a lot through the sheer commitment of our team, but to keep up with the community's needs and to continue delivering high-quality updates and new features, we need to bring on full-time maintainers. This is where we need your support. Financial contributions are essential to making this a reality. Your support will allow us to sustain dedicated maintainers who can focus entirely on Leaf, ensuring faster development cycles, more regular updates, and a more stable and reliable platform.

If Leaf has helped you in your projects, or if you believe in the potential of what we're building, we kindly ask you to consider supporting us financially. Contributions through our GitHub Sponsors page or OpenCollective can make a significant impact. Your support will directly fund the maintainers who are committed to making Leaf better every day.

We understand that not everyone can contribute financially, and we deeply appreciate all forms of support—whether it’s writing code, improving documentation, helping others in the community, or simply spreading the word about Leaf.

With your help, we can ensure that Leaf continues to grow and thrive, supported by a team that can dedicate their full attention to making it the best it can be.

Thank you for being a part of this journey with us.

image

Looking Ahead

The road hasn't been easy, but we are more determined than ever to make Leaf the best it can be. The lessons we have learned in the first part of the year have only made us stronger, and we're excited about what lies ahead. As we move into the final third of the year, we're confident that Leaf will not only recover from its earlier challenges but will come out better and more robust than ever before.

Thank you for sticking with us through the ups and downs.

Let's make the rest of this year one to remember for Leaf!

image