Lucie Desaubliaux

en fr

[Project] A CMS for Paged.js · Specifications

08 November 2023

The project

I work part-time in a cultural associative organisation based in Rennes (Brittany, France). We very often need to produce documents adressed either to the different institutions that are funding us or to our members and followers. These documents are neither advertisements nor promotional material for our events but rather adminsitrative files depicting cultural contents, political axis, budgets or territories of action. They are quite descriptive, mainly consisting in large portions of text, but they still have to be fancy and appealing, so we take great care in their graphical design.

I’m the one designing them and for the first years, I chose what appeared to me like the most straightforward way to do so, aka using good old Indesign. But during those years, I also discovered web2print and its scene, I understood there were other ways to design, to avoid the Adobe suite and closed-source softwares and to be completely independent and free.

I then began to design those documents whith html and css, using the amazing Paged.js to compile them into printable .pdf, and I couldn’t then go back to any other way of doing.

That’s great, but I’m still the only one on the team who can create those documents, and who can edit them. My colleague is the one who produces their main content, but he still has to send me this content in order for me to fill the doc with it.

So I figured out that we needed a tool, some kind of local CMS, allowing my colleague to write content in those html document produced with Paged.js, also allowing him to write it in plain text and not in html, and to publish it in .pdf himself. He could choose the template of each page, depending on the layout he has to create, among a set of templates I’d write in css.

The steps

I already have several types of document designed in html and css, and I won’t speak of this process here. I will be focusing on the tool allowing a third party to create, edit or delete a document and its content, assuming different css templates are already available to use to design pages. We won’t need to edit or adapt those templates. We also already know what kind of types of documents we need to produce and which kind of content will fill them. Our templates can then remain quite static, adapting themselves solely to the length of the content.

All our documents are composed of A4 pages, and are not bound as booklets, which will save ourselves a bunch of parameters to take care of.

So, in short, we need a tool allowing anybody in the organisation to :


  • Create a new A4 document.
  • Create a new page to add to this document, associating a template to this page depending on the type of content or the looks they need.
  • Fill this page with new content, choosing where each fragment of content will go on the different available spaces to fill on the page (titles, plain text, legends, images…)


  • Edit the content of an existing page
  • Edit the order of the pages


  • Delete existing pages
  • Delete an existing document

See what they’re doing

  • Browse through a list of the already existing documents
  • Go through an overview of the whole document
  • See an overview of the page they’re creating or editing while they’re doing so

I chose to code this using mainly php. That’s a language I’m quite familiar with, having worked on many projects including databases and coding the CMS allowing third-parties to manipulate them. That’s what I’ll use to play server-side, to browse through, edit, save and delete my different files. I’ll also be using a bunch of js script, mainly to manage the documents and pages overviews.

Here are the big axis of the project’s specifications. I’ve already gone through a big part of the create aspects, and need now to dive through the edit functionalities. Maybe I’ll detail each of those parts in further log notes, maybe I’ll establish some kind of devlog about this project. I’ll definitely put all of this in a github repo if I feel like it can be useful for others…

There are still many things to adjust or to figure out about this project. If you have any suggestions, ideas of ameliorations and new features or are interested about what this tool might look like, even in progress, feel free to contact me, I’d be really happy to discuss it with anybody!

Winter plans

03 November 2023

During winter 2023-2024, some major changes in my life might (just might) offer me some more time to develop things and carry on with big scale projects. The consequences of these changes are still quite hard for me to foresee, so I don’t really know what amount of time I’ll really have to dedicate to development. On one hand, I’ll have a 3 months 1/2 break from my part-time salaried job. On the other hand, I don’t know how my time will be organized around the huge life-changing event that is coming, and how much exhausting this life-changing event will be (from what I heard from others, well… the exhaustion might be huge).

So let’s just feel free to list here ALL the possible plans, ALL the desires and needs, and ALL the projects I have on the back burner right now, fully understanding that it will not be possible to achieve ALL of them. It will just give me the freedom to pick the ones I want to play with whenever I choose to play with them. I don’t want to create any deadline kind of pressure around these projects, just work on them when I feel like it, and leave them grow or shrink following their own pace. But I’m happy to have them written down here, where they can be read about. It gives them an existence somewhere outside of my local files. They are acknowledged here like probable future tools/toys/projects/bits of code.

I’d also really like to document better the developing process of all these projects. I don’t always feel comfortable with displaying my own process, for as a self-taught dev with no computer studies background, I often feel this process is clumsy, or afraid that I took some really awkward or absurd detours to get to my point. But at the same time, I really love processes, I really like to read about them and to see the different steps, trials and errors of various projects, and I’d like to keep track of my own progresses, failures and successes, even if the methodology displayed this way ends up being ridiculous for the experienced eye.

So the goal is to write devlogs here, retracing steps of those different projects, and maybe to publish these unfinished projects somewhere, showing the different stages they mature through and how it looks behind the scene (I have also been greatly influenced lately by posts about displaying websites as works in progress, like the one by Sara Soueidan here).

Without further ado, for I’ve already been wrtiting too much, here are the plans for this winter – assuming here that “winter” 2023-2024 lasts from november 2023 to march 2024 :) I’ll try to be concise about those projects, for I’m really hoping to able to write a log post or a devlog here about each of them to depict them fully and to document their successive steps.

Ultimate Biblio 3000

It has been a looooong thought process to come to this prototype, UB3000 being a part of an artistic series of installation I began working on in 2010 (oh my, it’s been 13 years now). You can read about its origin story here. In very few words, it is a database of literary quotes and a journal of all my readings since 2008. My goal is also to make a research tool out of it, allowing other people to use it as a kind of cut-up notebook, reading journal or bibliography helper. A first web beta version emerged in fall 2022 I think. I have not published it since, it’s still running local, but I really hope publish a version 1.0 before the end of the year very soon (we said no deadlines here).

A total reconstruction of my personal spaces on the web

I really love this dev portfolio, I’m very comfortable with its design and its inner construction. As mentioned in the About section, I’m also an artist and a writer, and I have another website depicting my activities in these domains. Even if I built this other website with love, I am not satisfied about it, and maintaining it is really not my cup of tea (my last real update must have been in the end of 2021), because of its clumsy architecture and its not quite adapted organization. So I’d like to remake this webiste and most of all, I want to reunite it with this dev portfolio. I’m tired of the “frontier” I’ve maintained between my coding and my artistic activities. I think I first thought that they interested different people, but I now think they’re both equivalent parts of what I do and what I love doing. Maybe I’ll even add some other side “crafting” projects to those activities too.

Once again, I’d also like to make this construction work public, and to find an adapted way to display its different steps, even unfinished.

A homemade CMS to post with Jekyll

As I’ve been wanting to write in a log post for many months now (a whole year actually), I’ve been very frustrated by having to rely on third-parties CMS for client’s website. I already had to migrate two of those websites after the closure of their respective CMS. Maybe I chose the wrong ones in the first place, but it added a lot of unforeseen (sometimes voluntarily unpaid) work in my already tight time-schedule.

I’d also like to treat myself with some comfortable CMS to commit to my own websites (I like writing in Markdown, but sometimes I’m longing for something even more straightforward).

Finally, I’d really enjoy to be able to design entirely the looks of this CMS (I’m quite fond of designing fields and buttons), just to have a little more aesthetically pleasing experience (…and I’m quite tired of greyish big fields and Arial fonts).

I’ve made a little bit of coding about it this summer, and wrote a bunch of js scripts allowing me to create articles for this website. I now have to work on the server-side of this project and for that, I chose to dive in a scary environment for me… Node.js (I only used it very occasionnally, and, I must admit, very reluctantly). I’ll see if it fits, and will tell more in another note…

A homemade CMS to create documents with paged.js

Since the beginning of the year, I grew more and more passionate about web2print and new ways of editing and publishing books and documents, free from the pervasive Adobe suite and all its tentacles. I’ve been following very inspiring people who write about it, who create tools (among them the wonderful paged.js) and new ways to shape amazing documents with html and css.

I’ve been working for 5 years now for Maison de la Poésie de Rennes. We have to produce many documents depicting our activities and our projects for our public or different institutions. These documents need to be clear and attractive. I’m the one designing them, but the whole team (ok, we are only two, but yet) writes their content.

I’d like then to build a tool allowing me to design those documents with paged.js, but also allowing my colleague to write content in it in plain text and not in html, and to publish it in .pdf. He could choose the template of each page, depending on the type of text or images he has to create, among a set of templates I’d write in css.

I’ve already begun to write it, this time with php, because I am far more accustomed with it than I am with Node, and also just to have a pleasant change.

Hic Sunt Sus Scrofa

I must add one last project that is slightly off-category here, for it is a paid project I’m currently working on in collaboration with Constance Hinfray. Constance is an artist, a performer and a PhD researcher. She is currently working on a PhD thesis about animal and human cohabitation, analyzing how their respective territories are influenced, endangered, limited or created by each other.

This project has deadlines (Constance has many lectures she has to give and occurences during which she has to show the different steps of the project) and can not be conducted as freely as the others.

It consists in an interactive map having many similarities with a videogame. The “players” evolve freely in it and enter different spaces in which they will discover various documents, videos, recordings, artefacts depicting the data Constance has gathered during her researches about boars in Brocéliande (Brittany, France) territory.

Apart from her research work, Constance is the artistic designer of this interactive map and I develop it in GDScript with Godot, which I am experimenting for the first time, and which I find very pleasant to work with. I can see its limit, but for this project, which really looks like a kind of 2D point’n’click, it is fully adequate. I don’t know if I’ll be able to show images of this project soon, but a first prototype has been released and introduced to the public by Constance last week.

And just as a reminder to myself, here are the writing projects (I mean written with words that are not a coding language of some sort) I need to work on (and that maybe SHOULD be a priority to finish right now but, you know… coding <3) and which I SHOULD be done with before the end of winter (yes, there might be some personal deadlines I can’t let go of still…) :

  • ⚛ Finishing once and for all my manuscript Le Bruit des étoiles (some minor adjustments to make to lead the story towards a clearer point) and finding the courage to SEND it somewhere (I still don’t know where yet but I hope to figure it out). I’d really love to achieve this BEFORE december 13th, the hardest part being the sending part.
  • ⚛ Beginning the writing a novel for children an editor asked me to think about for one of its collections (this actually can really be a cosy project for the coldest months)

[Project] Ultimate Biblio 3000 · Origin story

04 October 2023

Ultimate Biblio 3000 is the current shape of a very long-term artistic series I initiated in 2010, when I was still in art school.

One of the main axis of my artisitic work is about exploring thouhgts organisation and layouts, often through the prism of literature and how what we read arranges itself in our brains and becomes personal memories.

Since 2008, I list every book I read and write down quotations I find interesting, beautiful, intriguing or just that I feel like keeping a record somewhere could be useful for later.

Exhibition at FRAC Poitou-Charente, 2012. Picture by Richard Porteau. BDD picture from exhibition

In 2010, I followed a first trail about ripping off everything edition-related from my books and seeing how they relate to each other in my personal bookshelves.

Exhibition at FRAC Poitou-Charente, 2012. Picture by Richard Porteau. Camaïeu picture from exhibition

In 2012, I studied synesthesis, which appears to the way I personnally recollect books, and drew a giant 3D constellation of all my readings for 4 years, depicting the visually how I felt books were organising themselves inside thoughts.

Exhibition at FRAC Poitou-Charente, 2012. Picture by Richard Porteau. Constellation vue d'expo Constellation vue d'expo Constellation vue d'expo

Since then, I followed several leads to develop these researches, publishing color charts about books or trying to build secret rhizomes in public libraries. Meanwhile, I also explored new ways to represent thoughts outside of books and readings.

But I’ve been keeping on collecting quotations, and I’m currently filling my 11th notebook with them. I’ve kept on thinking for all those years about a platform somewhere, a site or an app, reorganizing these quotations, these books, to build different thoughts maps, nets, rhizomes. For other purposes, I learned to code, first simple websites in html and css, then more complex ways of organising things through databases, php and mysql for example. I tried several times to begin this platform, but each time got stuck because it only remained a static numeric copy of the shapes I had already built IRL.

It’s been a year now that I’ve studied a bit of data visualization, first by dicovering the work of Johanna Drucker and several other artsits and researchers, then by discovering developers interested in showing data and how they’re organized in a more organic way. This Ultimate Biblio 3000 project began then to have a more concrete shape in my own mind. It became clearer why this new shape was meant to be written in code, and how relevant it could be to help this whole reflection to progress.

The current shape of UB3000 V1 remains quite rough. It still displays things in a quite linear way. My wishes for the following versions are to find more organic, subjective and spatial ways to displays all those bits of literature and thoughts, and to add a more participative side to the project as well.

Another note in this journal will be written very soon mainly focused on UB3000 itself, this first versions and my perspectives for following versions I hope will come soon…

UB3000 v.1 (beta) - Screenshots. UB3000 - screenshot UB3000 - screenshot UB3000 - screenshot UB3000 - screenshot

First Jekyll theme

11 January 2023

I discovered Jekyll almost 3 years ago now, and the very first site I developped with this ssg was Internet Exploreur; which unfortunately isn’t online anymore, but an archive is accessible here.

With Quentin Leclerc, my colleague and friend, we built, during the first french lockdown, a website allowing dozens of authors to post unpublished creative writing texts. Thanks to Candice Labrousse and Robinson Lacotte, who gave us great pieces of advice about design and good practices for that kind of work, we built and launched Internet Exploreur in march 2020.

Its maintenance was too time-consuming for Quentin who decided to stop updating it in march 2022.

In order to allow others to be able to use the researches we made to build a clear, adaptable and accessible website, I decided to make a jekyll theme out of it.

Its Github repo is here, a demo is accessible there and its Gem page is here.

I had a great time trying to document it as thoroughly as possible (see the file on the repo page). Feel free to contact me if you notice any lack of information in this documentation, or if you think about any other useful functionality that could be added to improve this theme. I’d be glad to keep on working on it in order to make it more complete, useful and adaptable for your projects!

Linking a static website to a database

04 October 2022

I know it could sound counterintuitive, or worse, heretic. But sometimes – sometimes – using a database running alongside your static website may prove useful, if not necessary.

the whys

I’m currently developing the new Maison de la Poésie de Rennes’s website1, a french association where I have a part-time job. We (my colleague Quentin and I) knew from the beginning that we wanted something fast, something light, something mainly dedicated to text and something that we could update very quickly, clearly and easily. We have to add new events on the site weekly, we have several types of posts that need to be displayed specifically and we know our public may be not that comfortable with the internet.

All these reasons pointed to static websites as the best fit for our needs (also, Quentin and I fell in love with SSG two years ago, creating our first static website together, Internet Exploreur). I chose to use Jekyll to build it, because it’s the SSG I’m the most familiar with2, and to use Netlify as our CMS, for its functions seemed very wide.

It all went well and our static choice seemed perfect but I kept wondering, in a corner of my head, what we were going to do when we’d have to deal with our library. The Maison de la Poésie owns a library containing about 5000 books and, when Quentin and I took our jobs 4 years ago, there was only one single text file to inventory them all. I’ve then built a database and its own vanilla CMS, using PHP and MySQL, to allow us to keep track of the loans and returns. It was quick and simple to use, even if it was PHP.

How would we handle our library management now? We couldn’t simply modify single static posts, our previous database had so many necessary links between its tables, counters to allow us to analyze the library activity, and functions to send emails when a user was late, for example.

We could’ve had a separate app to manage our library, we could’ve even kept the previous one, but it meant we would never be able to get rid of our previous website hosting, for netlify only hosts static websites, and we needed to display some of our database information on our static site - for example, the list of our 5 000 books, or whether they are borrowed or not.

I searched through the web for the answer, only stumbling upon categorical answers politely yelling NOPE each time the words static and dynamic were simultaneously mentioned.

the hows

Until today, when I found my light in the darkness, reading this article/tutorial by mzrnsh.

First of all, as mzrnsh says, his tutorial goes with a real-world example, allowing the reader to understand very quiclky were it goes, what it does, what it is for.

In less than an hour, I had imported one of our previous table into Airtable, was able to display it on my static website and had created a form my colleague could fill in from a dedicated page in order to update our database as quickly and simply as before. Even more precious, I added a build hook via Pipedream to auto-deploy on Netlify, so my site is updated as soon as a change is made to the database3.

I still need to fill in the other tables, check the links between them, implement our counters and various other small tasks before it’s ready to be live and running, but I’m pretty amazed about how this solution (and the practical example picturing it) was exactly what I needed. I must admit that Airtable is a bit too overcrowded for me4 (functions and customization everywhere, the app is constantly proposing you to make things you really don’t need to do, looks like you can drag-and-drop almost every single box in your window) and I still wish I could’ve coded myself forms and fields, but I was really beginning to loose hope and this new horizon just convinced me that when it comes to web development, there is always a solution, somewhere, waiting for you.

  1. It might be the subject of another post later (the one about developing a website on the go, without pre-established requirements and discovering in the course of your development the needs and specificities of the project). 

  2. But I’m actively considering trying something new - sometimes, Jekyll makes me feel a little bit… naff. 

  3. Well, it might be where it goes too far from a static website. But you can remain reasonable and set a timer checking up for changes only daily, weekly or even monthly. 

  4. Well well, this is future me speaking, editing this post a week later… and I’ll have some things to say about Airtable and why, really, coding things from scratch will always remain my favourite solution. Coming soon in the log… 

A room of one's own (on the internet)

30 September 2022

Currently writing what should have been the first entry of this log, about why I’m building this small personal space on the internet…

Soon to come