
Consolidate your team's resources in a well-structured workspace that is organized, version-controlled, and simple to share. While Air securely stores your content, it also offers intelligent search capabilities, guest access, customizable layouts, version tracking, and effortless sharing, enhancing every aspect of the creative journey. Don't let your valuable assets languish in folders and zip files; instead, plan social media campaigns, develop streamlined presentations, and arrange your materials in a workspace that embodies your brand identity. Effortlessly navigate your workspace using features akin to a search engine, where tools like image recognition and smart tags empower all team members to independently find assets. The only challenging element of the feedback process will now be the feedback itself, as you can create public boards that allow guests to upload directly to your workspace. Engage in commentary, initiate discussions, and make selections with context, all while staying updated on new modifications and clearly tracking the most recent version of each asset. This streamlined approach not only boosts collaboration but also fosters creativity within your team.
Learn more

Mentornity is mentoring and coaching program software for organizations that run structured programs and need to show what came of them.
It covers the full cycle. Participants enrol and are matched by an algorithm that scores every possible pair against weighted criteria the program defines, discarding pairs that fail a mandatory rule; administrators approve suggestions individually or in bulk, assign by hand, or open a mentor pool and let participants choose. Mentors publish availability, mentees book within it, sessions sync to Zoom, Microsoft Teams or Google Meet, and reminders go out automatically before and after each meeting.
Measurement runs alongside rather than after. Surveys and forms can be scheduled at any point in a cycle, and a program health score tracks participation, meeting frequency and completion against each program's own targets, flagging programs that drift before the cycle ends. Certificates are issued automatically on completion.
Each program runs under its own branding on its own domain, with role-based access and six interface languages. Free for up to 10 users with no expiry and every feature enabled; paid plans start at $289 per month and scale by participant count.
Running mentoring programs since 2015.
Learn more
LibFuzzer
LibFuzzer serves as an in-process, coverage-guided engine for evolutionary fuzzing. By being linked directly with the library under examination, it injects fuzzed inputs through a designated entry point, or target function, allowing it to monitor the code paths that are executed while creating variations of the input data to enhance code coverage. The coverage data is obtained through LLVM’s SanitizerCoverage instrumentation, ensuring that users have detailed insights into the testing process. Notably, LibFuzzer continues to receive support, with critical bugs addressed as they arise. To begin utilizing LibFuzzer with a library, one must first create a fuzz target—this function receives a byte array and interacts with the API being tested in a meaningful way. Importantly, this fuzz target operates independently of LibFuzzer, which facilitates its use alongside other fuzzing tools such as AFL or Radamsa, thereby providing versatility in testing strategies. Furthermore, the ability to leverage multiple fuzzing engines can lead to more robust testing outcomes and clearer insights into the library's vulnerabilities.
Learn more
go-fuzz
Go-fuzz serves as a coverage-guided fuzzing tool designed specifically for testing Go packages, making it particularly effective for those that handle intricate inputs, whether they are textual or binary in nature. This method of testing is crucial for strengthening systems that need to process data from potentially harmful sources, such as network interactions. Recently, go-fuzz has introduced initial support for fuzzing Go Modules, inviting users to report any issues they encounter with detailed descriptions. It generates random input data, which is often invalid, and the function must return a value of 1 to indicate that the fuzzer should elevate the priority of that input in future fuzzing attempts, provided that it should not be stored in the corpus, even if it uncovers new coverage; a return value of 0 signifies the opposite, while other values are reserved for future enhancements. The fuzz function is required to reside in a package that go-fuzz can recognize, meaning the code under test cannot be located within the main package, although fuzzing of internal packages is permitted. This structured approach ensures that the testing process remains efficient and focused on identifying vulnerabilities in the code.
Learn more