A Next.js App using TiddlyWiki as a CMS

Overview

Disclaimer

This is my first public Github-repository that I see some kind of value in. I am an awful programmer and autodidact, so by no means I can claim to understand all the features and concepts neither of the Next.js nor the TiddlyWiki ecosystem. Yet, I have been running a little website with Next.js for more than a year and am using TIddlyWiki to keep and organize my journal with nowadays more than two thousand tiddlers since 2018.

In this project, I tried to follow the book whereever possible, but will be happy if you can identify any conceptual mistakes or improvements. This is thought as a proof of concept, which will probably never reach a production status. It cannot compete with the finetuned CMS examples given by Next.js.

The Project

This is a Next.js project bootstrapped with create-next-app and combined with an internal TiddlyWiki to be used as CMS. It aims at providing an easy setup to make TiddlyWiki content available on a custom designable Next.js website. My personal content focuses on reviews, academic articles or blog posts as more or less "singular" entities. Thus, a lot of the non-linear design of TiddlyWiki, it's knowledge organization, tags, internal linking and macros are out of the scope.

I want it to be easy: Push a single button and the tiddler appears as post on your blog. But I also want to be able to handle the tiddlers' fields individually in the Next.js app, not just show a static HTML export. The idea is to create previews and a hero post, use sliders and animations on just titles or images and basically start with my CSS from scratch. I tried to keep the modifications on the frontend provided here low though and it basically follows the Next.js examples (using Tailwindcss).

After evaluating a bunch of headless CMS systems provided with Next.js, they all seemed to be too much for my limited use case. I would have to get them set up, learn about their individual API calls, then build my own (rather simple) data structure and see how to fill my content in.

But the structured content is already there, I realised, it lies in my TiddlyWiki on my VPS behind a reverse proxy. So I took it from there. TiddlyWiki might not be a dedicated and not the best CMS, but I'm not building a high level enterprise website anyway.

Demo and TiddlyWiki files

A demo of the frontend is available at https://nextjs-with-tiddlywiki.vercel.app/.

All relevant tiddlers are bundled in the tiddlywiki/tiddlers/nextjs-with-tiddlywiki.json file.

Getting Started

Clone this Repo:

git clone https://github.com/deardings/nextjs-with-tiddlywiki

Install dependencies:

npm install
# or
yarn install

Run the development server for the Next.js app and start the internal TillyWiki with one command:

npm run dev
# or
yarn dev

Open http://localhost:8080 with your browser to see the TiddlyWiki "backend".

Open http://localhost:3000 with your browser to see the Next.js "frontend" .

Follow the instructions given in the TiddlyWiki, publish the third post and see the result on the frontend.

Go on from here

Create or import your own tiddlers and publish them, play around, have fun!

Caveats

This repo is not tested very well. A lot of TiddlyWiki use cases will not get properly exported. The whole design of the export/import might be flawed, especially when the number of published tiddlers rises. On the "All Posts" page for example there is neither pagination nor lazyloading provided, resulting in possibly slow loading times or even errors. Writing all content into a single JSON file might not be a good idea at all or the import on the frontend might at least be optimized with dynamic import, fetch commands or whatever.

Next.js basics

You can start editing the page by modifying pages/index.tsx. The page auto-updates as you edit the file.

API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.ts.

The pages/api directory is mapped to /api/*. Files in this directory are treated as API routes instead of React pages.

Learn More about Next.js

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy the frontend on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js. Note that the TiddlyWiki "backend" cannot be accessed after deploy, but you can push local changes to the repo.

Check out the Next.js deployment documentation for more details.

You might also like...

Open-Source Serverless Enterprise CMS

Webiny developer community writing program. Contribute to the open source movement by writing technical content. And get paid for doing so!!!

Dec 29, 2022

The smallest CMS engine ever, made with ASP. NET Core and Dapper

TinyCMS The smallest CMS engine ever, made with ASP.NET Core and Dapper. Currently, only static content is supported, but adding new pages is as simpl

Dec 29, 2022

The officially supported cloud storage plugin for Payload CMS.

Payload Cloud Storage Plugin This repository contains the officially supported Payload Cloud Storage plugin. It extends Payload to allow you to store

Dec 21, 2022

Student reviews for OMS courses. Built with NextJS and Typescript. Backed by Sanity CMS. Deployed on Vercel.

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Dec 3, 2022

Django, wagtail-cms, league, kgs, baduk

Open Study Room Open Study Room (OSR) is a community of go/baduk/weiqi player who shares, builds and organizes knowledge, opportunities and resources

Sep 15, 2022

🎊 A Collection of TypeScript types for the Kirby CMS

kirby-fest A collection of TypeScript types to work with Kirby, mainly in the context of the Kirby Query Language. Setup # pnpm pnpm add -D kirby-fest

Nov 22, 2022

A Git-based CMS for Static Site Generators

A Git-based CMS for Static Site Generators

staticjscms.github.io/static-cms A CMS for static site generators. Give users a simple way to edit and add content to any site built with a static sit

Jan 2, 2023

GitHub and Markdown-Based CMS for Blogs. EXPERIMENTAL and in the "Idea" stage. I have no clue if this is feasible.

Turborepo starter This is an official pnpm starter turborepo. What's inside? This turborepo uses pnpm as a package manager. It includes the following

Oct 13, 2022

🛠 Building a Headless CMS with all the essential features for business representative websites to make 🚀

🛠 Building a Headless CMS with all the essential features for business representative websites to make 🚀

Isomera - headless CMS for business representative websites SaaS that is hosted on the cloud and built by community. To make developer life easy. ⚠️ A

Dec 3, 2022
Um website completo desenvolvido com Next SSR, Typescript, Prismic CMS do tipo blog com diversas funcionalidades para interações entre os usuários.

Título: Spacetraveling Descrição: Um website completo desenvolvido com Next SSR, Typescript, Prismic CMS do tipo blog com diversas funcionalidades par

Guilherme Augusto de Almeida Amaral 8 Dec 21, 2022
A Technical Blogging Website that utilizes Notion as a CMS for ease of modification with the help of the notion-API & whose content has been rendered with next-js and react-notion-x

GDSC MCE Blogs This repo is what GDSC MCE uses to power their blogging website gdsc-mce-blogs. It uses Notion as a CMS, fetching content from Notion a

null 7 Dec 16, 2022
Stablo is a minimal blog website template built with Next.js, TailwindCSS & Sanity CMS

Stablo Blog Template - Next.js & Sanity CMS Stablo is a JAMStack Starter template built with Next.js, Tailwind CSS & Sanity CMS by Web3Templates. Clic

Web3Templates 159 Dec 30, 2022
Update & Revalidate Content from a Headless CMS in Next.js with Incremental Static Regeneration

Update & Revalidate Content from a Headless CMS in Next.js with Incremental Static Regeneration Demo for tutorial How to Update & Revalidate Content f

Colby Fayock 4 Jul 22, 2022
Build a blog site using Nextjs, Tailwind css, GraphQL, Graph CMS

NextJs-GraphQL-blog-site 1. Key Features 2. Technologies I've used Key Features: ?? In Graph-CMS side we can create post, categories, check the commen

suraj ✨ 10 Dec 8, 2022
Gatsby-blog-cosmicjs - 🚀⚡️ Blazing fast blog built with Gatsby and the Cosmic Headless CMS 🔥

Gatsby + Cosmic This repo contains an example blog website that is built with Gatsby, and Cosmic. See live demo hosted on Netlify Uses the Cosmic Gats

Priya Chakraborty 0 Jan 29, 2022
A plugin for Strapi Headless CMS that provides ability to sign-in/sign-up to an application by link had sent to email.

Strapi PasswordLess Plugin A plugin for Strapi Headless CMS that provides ability to sign-in/sign-up to an application by link had sent to email. A pl

Andrey Kucherenko 51 Dec 12, 2022
A plugin for Strapi Headless CMS that provides the ability to transform the API request or response.

strapi-plugin-transformer A plugin for Strapi that provides the ability to transform the API request and/or response. Requirements The installation re

daedalus 71 Jan 6, 2023
A plugin for Strapi CMS that adds a preview button and live view button to the content manager edit view.

Strapi Preview Button A plugin for Strapi CMS that adds a preview button and live view button to the content manager edit view. Get Started Features I

Matt Milburn 53 Dec 30, 2022
Simple, Fast, Secure, Flat-File CMS

Bludit Simple, Fast and Flexible CMS. Bludit is a web application to build your own website or blog in seconds, it's completely free and open source.

BLUDIT 1.1k Dec 30, 2022