Share
Explore

the plan

Build a blogging platform, and just a blogging platform. Not supposed to be used for e-commerce, form integrations, etc. Ridiculously fast, east to update, export everything, upload existing files.
This is a project that will take weeks to get to a decent MVP.

Basic structure

Backend for managing users and authentication. etc.
Hugo server with WebSockets to update site on file change.
Markdown editor that works with content files and has live previews. We could just fork and add support for tables, footnotes, etc. Just make sure it’s compatible with the Goldmark compiler.
Live image previews when you enter a Markdown image link? Fetch file form folder and render in the preview pane.
HTML + Go template editor for directly editing your layout files. Difficult because you have to provide access to both theme files and/or the Layouts folder in the root folder.
Data folder and file editor (YAML, JSON, TOML)

MVP functionality

Create account.
Pick a theme. Uneditable, you just choose form a selection, or update.
A markdown editor to create and edit posts. Just text, no images right now.
Editor should have “create file” functionality.
They should be able to do “create folder” and “move files between folders”.
Figure out storage for this. “Link repo” makes most sense to me.
Build a robust file uploader, for images and plaintext.
See updated site in new tab.

First steps

Build a Go server that hooks into a repo, builds the site with Hugo, and serves it to a URL.
Should print out accurate error messages.
Make it rebuild every time the repo is updated.
Build a wrapper over repo files that lets you edit and triggers a “push” when the user presses the “save” button.
Build the “link repo” functionality that gives us API access to someone else’s repo.

Questions

Stuff to figure out before we get started.

Update Hugo or choose a fixed version?

Ideally we should do what Netlify does, specify a version in your config and the build uses that version.

How do we handle images?

There seem to be to do this. Hugo has multiple ways to do this, there’s the , the Public folder, and even sub-folders in .
I think everything should go into Public, that’s what I do by default and what the . Will need some kind of image manager view, with renaming functionality.

What does the median user look like?

Wants to set up a blog for free. But SSGs are too hard. Give them an intuitive editor and freedom from having to use version control. Live previews helps with markdown syntax.

WebAssembly?

Create a version of Hugo that runs in the browser, like running localhost but in the web app itself. Then people can edit markdown in one pane, and see the site itself update in the preview pane. Or even between tabs. No need to WebSocket to the server.
This is very far down the line though lol.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.