Skip to content

Hydraulisc/blogger

Repository files navigation

Blogger

Hydraulisc Blog Writing Suite. Powered by NodeJS, express and a lot of wizardry (we hope, because otherwise we have no clue how it works).

Designed for Self-Hosting (guide)

Code Structure

BEWARE that the code structure is chaotic by design.

ADDITIONALLY we have not separated routes from the main server file. Once again, this is intentional. Undercomplicated, low-level documented code.

Still, here's a simple code structure:

  • Root Folder
    • server.js
    • firebase_env.json
    • views (contains the frontend code separated into pages and partials)
    • public (contains site logo(s))

And yes, it's entirely inline CSS.

Simple Self-Hosting Guide

Can probably be set up in under a minute.

  1. Clone the repo
  2. Link your Firebase Database in your own firebase_env.json. If you leave the file at root it'll likely work first try.
  3. Secure your database with Firestore Rules.
  4. Open the folder in a terminal.
  5. npm i to install everything.
  6. Start the process with npm run dev if you want to customise it, or use npm run live if you just want the live version.

⚠️ Public Hosting Warning ⚠️

This code is NOT intended to be hosted publicly without changes!

To host this project safely in a public environment, we recommend implementing a solid Auth Header Token Regeneration and Separation System to properly separate users (this code does not) and manage session expiry (again, this code does not).

TL;DR:

  • This code is extremely buggy and written "on the fly".
  • If you host this publicly and log in (without modifying the code), anyone who connects to your instance will instantly be logged in as you.
  • Code is provided as-is without any kind of warranty or liability.
  • This was created for the simple reason of making Firebase Firestore Blogging easier (for us at Hydraulisc).

🔧 Update — October 2025

Google has begun migrating Firebase and Firestore toward Google Cloud with increasingly restrictive limits (including a 1 MB cap on free databases) and tighter integration requirements. Since Blogger was built on the older Firebase v8 stack, these changes risked locking the project into an unsustainable or paid configuration.

To preserve long-term usability, we added a “Download RAW” function that allows the current user to export all posts from the entries collection as a local JSON file. This feature exists purely as a data-redundancy measure—so that your content remains accessible even if Firebase access becomes limited, revoked, or deprecated.

The new endpoint (/download-json) performs a simple authenticated dump of the Firestore data and sends it as entries.json. Nothing fancy; no cloud migration, no dependency on external storage.

Note: This addition doesn’t change Blogger’s single-user design or its non-production stance. It’s just a failsafe for when Google decides to “reimagine” your database again, allowing you ease of migration to other databases.

About

Super Simple Firebase Blog Writer written in NodeJS

Resources

License

Stars

Watchers

Forks