A minimalistic blog made with Next.js and Tailwind CSS.
Design inspired by James Quiambao and Lee Robinson
Tutorial on how to build this blog can be found here.
OpenAI code taken from magic-text
Improvements
- Syntax highlight https://bionicjulia.com/blog/setting-up-nextjs-markdown-blog-with-typescript
- Add sitemap using next-sitemap
- Optimize image loading https://macwright.com/2016/05/03/the-featherweight-website
- Make thoughts page faster
- improve SEO
New features
- indicator for which page user is on like https://macwright.com/
- I'm feeling lucky feature, that randomly selects a blog
- expanding text
- Create pop up notes like https://www.rishi.cx/
- A real-time digital clock with seconds
- dark mode
- basic search
- embeddings
- semantic search
- Create a chat interface trained on my blog posts, have database for embeddings that allow daily insert on upload
- refer to https://github.com/Swizec/swizbot-ui
- build a map of favorite restaurants and places like build your corner
- Add listening and reading updates
- add hover over highlights for notes feature and expanding sidebar
- https://linusrogge.com/about
- hover to preview like https://stephango.com/buy-wisely
- breadcrumb navigation
- Setup contentlayer
brew install planetscale/tap/pscale
brew install mysql-client
pscale shell <DB_NAME> main
Run this to create table
CREATE TABLE tweets (
id INT AUTO_INCREMENT PRIMARY KEY,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Create pgvector extension
CREATE EXTENSION vector;
CREATE TABLE blog_posts (
id SERIAL PRIMARY KEY,
title TEXT NOT NULL,
slug TEXT NOT NULL UNIQUE,
date TIMESTAMP NOT NULL,
tags TEXT,
wordcount INTEGER,
content TEXT,
embedding VECTOR(1536)
);
Run generate embeddings
npm run generate:embeddings