Welcome | Get started | Dive | Contribute | Topics | Reference | Changes | More

Welcome

You want to contribute to the Lino framework as a software developer? That’s a great idea! The world needs people like you!

Audience

This guide should be useful for students, freelancers or employees, independently of whether you work for yourself, for a development provider or for a site operator.

This guide assumes that you use a computer with a Linux operating system. See Linux as your operating system if that’s not yet the case.

This guide is for people who want to contribute to Lino by writing source code. Maybe you will learn from this guide that programming is not your vocation. In that case you should check out other ways to contribute to Lino.

This guide tries to be understandable for newbies without being boring for veterans. We apologize if this goal doesn’t always work out.

How to read this guide

We recommend to read this guide sequentially. At least the first few chapters.

“Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.” – Lewis Carroll, Alice’s Adventures in Wonderland

Unlike Carroll’s Wonderland, this guide has no end. Software development is a never-ending task.

Reading this guide sequentially means that you use the previous/next links. They are on the top and on the bottom of each page, they are even linked to the left / right arrows keys of your keyboard.

Use the inline links in this guide as you use footnotes of a book: You are welcome to follow them, but take care to return to where you left because they lead into a labyrinth of documentation.

Why learn Lino?

That’s a good question. We are collecting answers in a separate chapter: More about Lino, but the short answer is: we don’t know. We actually suggest to just read on here. Even if you find out that Lino isn’t worth your time (the worst case), you won’t have lost more time than by watching a movie.

Maybe you are just curious. As a potential contributor you get our free mentoring support. Try to get free mentoring for some proprietary framework! We offer free support because helping you will help us to make Lino better, and because we want Lino to have a sustainable and diverse community of users. Lino belongs to us all because it is sustainably free software.

Lino is free software, but can use it for making money. See How to make money with Lino. Of course we also hope that you will contribute back to Lino some of your profit when you start being successful. But nothing will ever force you to do so, because both source code and documentation is freely available. Lino and its documentation, including this website, are available for free for everybody and forever.

An internship at home

By following this guide you can virtually start an internship at home. If you need help. simply contact one of the team directly via email. One of us will be your mentor and will communicate with you individually. There is no online application form because we are a small team. You may interrupt or abandon your internship at any moment.

During your internship you will get quality support for free. You just need to ask. We help you to enter the business of software development with just your own time as your only investment. Try to do that with some proprietary framework!

During your internship you will

  • work independently and at a rhythm that suits you.

  • gain experience with working in a free open-source software project

  • increase your chances on the job market

You will learn among others

  • how to write and maintain source code in Python, JavaScript and Sphinx

  • how to use Lino and its underlying framework, Django

  • how to use git for sharing your work with others

  • how to monitor and use continuous integration on GitLab

Possible outcome of your internship

Of course we provide this support only as much as our human resources allow. We do our best, not more.

Linux as your operating system

A requirement that might sound hard if you never tried it: you need to feel at home on a Linux computer. Lino is a web application framework. A typical Lino production site runs on a pure Debian VPS (see Set up a Lino production server). Lino itself does not require a specific operating system, but on a proprietary operating system you are likely to encounter problems that are not our business. Welcome to the world of Free Software :-)

In case you don’t believe that this requirement is actually a chance: Seth Kenlon shares 21 reasons why I think everyone should try Linux. If you hesitate about which Linux distribution to start with, we recommend Ubuntu or Mint. If you can’t stop using MS-Windows as your primary OS right now, we recommend a dual-boot installation. Other options are Windows Subsystem for Linux (WSL) or VirtualBox.

That’s why we assume that you have a computer with a Linux operating system at your disposal.

We assume you are familiar with the Linux shell at least for basic file operations like ls, cp, mkdir, rmdir, file permissions, environment variables, bash scripts etc. Otherwise we suggest to read Working in a UNIX shell before going on.

The developer guide is written for Debian and derived distributions. Other Linuxes should be pretty similar.

Your feedback is important

Unlike Carroll’s Wonderland, this guide is neither perfect nor definitive. Lino constantly evolves. The pages on this website can become obsolete, useless, boring, or turn out to be at the wrong place.

So don’t be shy to ask questions. Tell your mentor when you get stuck or have the feeling that some page is useless, boring or difficult to understand.

Keep in mind that every feedback, even critical feedback, the mere fact of asking for help, is already a contribution to making this guide better. The Lino community thanks you in advance.

You don’t need to be perfect, you will learn on your way, and we will help you to learn. And which is more: we will learn from you.

How to contact us