-
Notifications
You must be signed in to change notification settings - Fork 360
(data) Update the Ahrefs success story and add a new story about the full stack ocaml web solution #2863
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not completely convinced by the angle tbh. Ahrefs was always using ocaml. Extending it to the frontend isn't a dramatic change or a real shift in the company culture. ocaml was basically present since day one. It would maybe be more accurate while still being interesting to explain that it's possible to bootstrap a company around ocaml and reach $100M+ in ARR, 150 employees, 4000+ servers, leadership in a competitive industry? And maybe do a complete different story focused on the migration to melange?
"Result", "Why OCaml", and "Solution" sections have some overlap, creating some repetition. Maybe one of them should be dropped, or we should create more differentiation?
We could make the style less corporate, to be more in line with ahrefs' identity
Will take another high-level look in terms of tone next week. |
5dfae49
to
e0f1f2e
Compare
Ahh, next week turned out to be months later. Thanks for bearing with me. 🙇♀️ I fully went over this and reframed the story to be more in line with the feedback (which was very useful @Khady, thanks for that). @davesnx maybe you're up for reviewing this as well? I feel like this new version of the story much better captures the overall narrative of the company and what we discussed in the interview. |
Hey @sabine, I haven't reviewed the thing yet, but I agree with Louis here. I think the crawler story is great, and the full-stack story is also great. To be honest, rather than rewriting it, I would push it as a new success story (if it's possible!) The narrative for choosing OCaml to write a crawler is much more risk-reward than using OCaml on the frontend (which at that point we already have the entire backend in OCaml already) |
Interesting idea @davesnx. You mean we could treat success stories more like a blog? Or separate the two bets (writing the crawler in OCaml vs. transitioning the frontend to BuckleScript which led to achieving full stack OCaml) 🤔 I've seen this part of the site as a showcase for companies, so it's about telling a big picture story that ties in and references company history and achievements and how OCaml played a role in it, as well as how they're active in Open Source. Treating success stories as a collection of case studies primarily is an interesting idea, as it would enable multiple stories from a company. |
Not sure as a blog, but have separate entries makes a lot of sense. Those are two different stories/use-cases/people/tradeoffs. |
Alright, let me ping you back when I have two separate case studies on this. I think that's a good solution here, as the backstory is just too interesting not to cover it all. |
Co-authored-by: Louis <[email protected]>
Co-authored-by: Louis <[email protected]>
Co-authored-by: Louis <[email protected]>
Co-authored-by: Louis <[email protected]>
Co-authored-by: Louis <[email protected]>
Co-authored-by: Louis <[email protected]>
Co-authored-by: Louis <[email protected]>
86da827
to
7f13496
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left a bunch of nit comments, but I think the entire content should be reviewed since there's a ton of duplication and not clear goal expressed.
|
||
Frontend and backend stay in sync: When data structures change, type errors guide developers to update all affected code. | ||
|
||
Today, their **5 billion daily frontend requests** are handled by the same OCaml codebase that powers their backend systems. The web application serving **44% of Fortune 500 companies** is built from **1.5 million lines of OCaml code** spanning both frontend and backend. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we have 5 billion frontend daily requests. And I'm not sure why the sentence means
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I rewrote this to be more clear, the numbers came from the interview notes, but maybe we should double check?
Co-authored-by: David Sancho <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
haven't had time to look at the full stack part
* **Reliability pays compound interest**: OCaml's "boring" stability means systems built years ago still run without surprises, freeing engineering time for new capabilities rather than maintenance. | ||
* **Types scale better than tests**: At petabyte scale, compile-time guarantees about data consistency prevent entire classes of runtime failures that would be catastrophic at this volume. | ||
* **Expressiveness enables specialization**: OCaml's high-level abstractions made it economical to build highly specialized systems rather than adapting generic frameworks to their unique requirements. | ||
* **Small teams can compete with giants**: The right language choice allowed Ahrefs to build infrastructure that competes with tech giants despite having a fraction of their resources. | ||
* **Performance and maintainability aren't mutually exclusive**: OCaml's combination of native compilation and high-level abstractions delivered both the performance needed for web scale and the clarity needed for long-term maintenance. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kind of a repetition of the why ocaml section
- **[Ahrefs DevKit](https://github.com/ahrefs/devkit):** Tools and utilities for building distributed applications. | ||
- **[OCaml Community Tools](https://github.com/ocaml-community):** Contributions to widely used infrastructure tools like `ocurl` and `ocaml-mariadb`. | ||
- **[ATD](https://github.com/ahrefs/atd):** Schema definition language for cross-platform data serialization. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can probably find more interesting links
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, that would be great
Co-authored-by: Louis <[email protected]>
Waiting for review / approval from @davesnx.