RSSAmplifier

Blog

{ LebCit }

Self-taught Web Developer with a passion for reading, continuous learning, and tackling projects on my own!

lebcit.github.ioRSS feed ↗50 posts

Latest posts

Blog-Doc Reloaded

After nearly two years without updates, Blog-Doc is back with a complete rewrite. Inspired by lessons learned while building Aether, this new version brings powerful features while returning to the project's original philosophy: keeping a Node.js CMS and static site generator as simple, lightweight, and enjoyable to use as possible.

Repo Migrator

Maybe, just maybe, but most certainly because I'm a dinosaur (Old-school web developer — just HTML, CSS, and vanilla JavaScript) and have been away for a while,...

// bookmarks: Firefox Bookmark Manager

Over time, and silently, your browser's bookmarks-bar becomes a graveyard for a huge collection of bookmarks. I like Firefox a lot, the only browser that I us...

The Power of :has() - CSS Can Now Climb the DOM

CSS has long been evolving to make styling more powerful and intuitive. One of the newest and most exciting additions to the CSS selector arsenal is the `:has()...

Responding to Hacker News Feedback on Aether CMS

Intro I was surprised this morning to discover that the [launching post of Aether](/post/meet-aether-a-cms-that-actually-gets-out-of-your-way) got some comment...

Editorial Theme for Aether CMS

From Legacy to Modern Every developer has that moment when they stumble upon an old template that stops them in their tracks. The design speaks to them: clean...

Old Writer Theme for Aether CMS

Old Writer Theme **Old Writer** is a high-contrast, accessibility-first blog theme for [Aether CMS](https://github.com/LebCit/aether-cms) that blends modern we...

Game-Changing Search is Here! Aether CMS Just Got Smarter

Hey Aether community! I've got some incredibly exciting news to share with you. After weeks of thoughtful development and testing, I'm thrilled to announce that...

How to create a theme for Aether CMS

Intro I've released today (2025-06-06) [Aether CMS](https://aether-cms.pages.dev/) which is a modern and flexible Node.js content management system with an int...

Meet Aether: A CMS That Actually Gets Out of Your Way

My journey with content management started in the WordPress ecosystem, building themes and plugins. But over time, I grew tired of the heavyweight platforms and...

Create your Markdown blog in Node.js

I wrote, in December 2023, an article about the same subject ([Create a simple Markdown-based blog in Node.js](/post/create-a-simple-markdown-based-blog-in-node...

Breaking Up With Express.js!

Dear JavaScript developers and Node.js enthusiasts, Remember when you first met Express.js? Those magical early days of server-side JavaScript when Express swo...

From Regexes to AST: STE Journey to Adulthood

Like in the early days of JavaScript template engines, [STE](https://litenode.pages.dev/docs/rendering-templates/) used to rely on regular expressions to identi...

Blog-Doc Version 3.x

With the release of [LiteNode](/post/litenode-nodejs-web-framework), it was time for Blog-Doc to be updated to leverage this Node.js web framework. LiteNode red...

Ultimate Markdown-based Application Tutorial in Node.js!

Dive into My Ultimate Markdown-based Application Tutorial in Node.js! Hey everyone! I'm thrilled to announce my latest and most comprehensive tutorial yet: **...

LiteNode, Node.js Web Framework

Intro I've highlighted in some of my previous articles that Node.js shouldn't be solely blamed for misuse, as any tool can fall victim to lazy implementation,...

Transferring Variables and Functions from Server to Client in a Node.js Application Using EJS and Eta

Intro While developing a Node.js application, passing data from the server to the client is an inevitable checkpoint that you'll encounter. To simplify this ta...

Creating Conditional Selections in Google Forms using Apps Script

Intro I mentioned in the previous post that I was working on a project that made me develop [Google's Query Language Wrapper](/post/google-ql-wrapper). At the...

Google's Query Language Wrapper

Some years ago (2021), I've used [Google Sheets](https://developers.google.com/sheets) as a data store and created some useful applications using [Apps Script](...

Responsive Attributes Generator

Building a responsive application can be a chore, especially when ready-made templates lack the specific design you envision. Even if you find a decent one, cha...

SME! Do you Mark Down?!

[Markdown](https://daringfireball.net/projects/markdown/) is a lightweight markup language designed to be simple and easily readable by humans. Writing and re...

A dedicated site for Blog-Doc's documentation!

It's been a while since my last post - almost four and a half months to be precise! [The previous post](/post/create-a-simple-markdown-based-blog-in-nodejs),...

Create a simple Markdown-based blog in Node.js

A Simpler Way! This tutorial was published in 2023 and is now outdated. A simpler, faster approach using [LiteNode](https://litenode.pages.dev/) is now availab...

Switch themes in Blog-Doc!

I've released the [new version of Blog-Doc](https://github.com/LebCit/blog-doc/releases/tag/v2.0.0) about a month ago. Since then, I've decided that Blog-Doc mu...

node_modules is not heavy, developers are lazy!

Intro Start typing in the search bar of any browser **node modules** and one of the first three suggestions will be _node modules meme_. Why developers of back...

From 145 to 7 💪

Once in a while, a crazy idea installs itself in your mind, like Blog-Doc. Blog-Doc is not only _The Simplest Node.js CMS & SSG_, but it's also **The Best**!...

Blog-Doc, updating the administration design!

Intro I've build the first version of the administration using [Pure.css](https://purecss.io/) because Blog-Doc uses it. Since I wanted to split the menu out...

Blog-Doc, the front-end administration!

A front-end administration! ![blog-doc-administration.avif](/content/uploads/images/blog-doc-administration-a0c7faa54e7e3a09.avif) If you have ever worked wit...

Blog-Doc, The Simplest Node.js CMS and SSG!

Intro After creating [Blog-Doc as a static site generator](/post/blog-doc-a-tiny-and-dead-simple-ssg), [Deta got a major upgrade](https://deta.space/blog/intro...

Blog-Doc, a tiny and dead simple SSG!

Blog-Doc uses [Eta](https://eta.js.org/) as a template engine and Markdown to write and format the markup of the generated posts and pages. Motivation It's af...

Click without JavaScript!

Intro Let's say that you have a button on which you want to click and perform a simple action like displaying some hidden content. You'll directly think: ``...

Turn a Markdown Blog to a Simple SSG

Intro Over the past few weeks, I mostly wrote on how to template a Node.js application with [EJS](https://ejs.co/) using [Express](https://expressjs.com/). T...

Markdown blog with EJS

Intro Writing a post content with HTML is not as easy as doing it with [Markdown](https://daringfireball.net/projects/markdown/). Since my coming [back to th...

Express Global Router for a DRY Code

When developing a Node.js app with Express, we'll usually have two or more routes. If we use the [express.Router](https://expressjs.com/en/guide/routing.html#...

Improving a Node.js app built with Express and EJS

Intro In the [last tutorial](/post/templating-a-nodejs-app-with-ejs), we've built a basic Node.js web application using EJS and Express. So, to understand this...

Templating a Node.js App with EJS

Intro There are a lot of tutorials about EJS out there, as well as a lot of [questions/answers](https://stackoverflow.com/questions/tagged/ejs). I decided to...

CSP nonce with Node.js and EJS

Intro In this post, I will not dive into CSP's details. The link in the description, above, is enough for a simple introduction to the subject, but if you wish...

To Node or not? Deta is the answer!

Update (June 2025) Since this post was originally published, Deta Cloud has been discontinued and is no longer available. Please keep this in mind as you read...

Automatically close other details

I was writing a post about MidDay, [my new WordPress Theme](/post/midday-wordpress-theme), and wanted to include a simple FAQ section but with a little of style...

MidDay WordPress theme

Hello everyone, Credits This WordPress theme wouldn’t have seen the light without: - [Black & White Portfolio Template](https://www.w3schools.com/w3css/try...

Creating a Customizer control with JavaScript

Did you know that you can create panels, sections and controls in the Customizer with JavaScript? "The PHP API for their registration is essentially a wrapper...

Clear your local development cache with JS

When we use a server side language to get our changes this is what happens: 1- the Request is made by the browser to the server 2- the Response is sent from...

Change Page Title Dynamically

A good way to grab the the user's attention is of course to write useful content 😁 Being funny is also a very good strategy to keep users coming back to your...

Listen for Changes in Customizer Preview!

One of the most beautiful functionalities of WordPress is the Customizer, because it allows developers to give a simple way for users to modify themes/plugins a...

Hide WordPress Toolbar with wp_add_inline_style

Ever wanted to hide the WordPress Toolbar? If you are a new developer, you should know that it's not allowed to hide it directly wit CSS. But even if you ar...

Modifying WordPress theme's copyright from the Customizer

One of the most asked question by new WordPress users is: **"how to change the copyright?"**. They don't want a label of any kind on their site and that's tot...

Get Google Products on Desktop with Thunderbird

Note This post was updated in June 2025. Some features or services originally mentioned are no longer available. **Every time** you want to check your Gmail,...

The Clean Blog WordPress theme

Hello everyone, Credits This WordPress Theme wouldn’t have seen the light without: - the [Clean Blog](https://startbootstrap.com/themes/clean-blog/) templa...

Back to the roots with a static site

From Zero to Hero or at least not a zero anymore! From the Highway to the Classic Road. If you didn't read my [About](/pages/about) section, you can quickly...

Full Screen Morphing Search Plugin

I’m very excited and happy to announce the release (in 2016) of **my first plugin**! This [plugin](https://wordpress.org/plugins/full-screen-morphing-search/) i...