/blog

Primary LanguageTypeScript

Todo

  1. Change the series widget to a collapsible list. If there are 5 or fewer posts, it should be open by default. If there are more than 5 posts, it should be closed by default.
  2. Authors page and posts by author
  3. Treat the first tag on a post as the "primary" tag, kinda how Quanta Magazine does it
  4. Improve the tertiary pages (posts by author, posts by tag, posts by series) by adding pagination, most read posts, on the /posts/tags/abc page add a small link back to the all tags page, etc.
  5. Swap anchor tags in markdown with next/link
  6. Comment system
  7. Increase line spacing in the body text
  8. Github Flavored Markdown. Give it a shot. https://github.com/remarkjs/remark-gfm
  9. Trending / Most Popular posts / Analytics
  10. SEO
  11. Newsletter
  12. RSS
  13. New Next 13 features and best practices
  14. Reorganize the code following DDD or onion architecture principles
  15. Syntax highlighting for markdown code snippets
  16. Audit the eslint setup
  17. Blog post ToC
  18. Blog post footnotes
  19. Different layouts for different types of blog posts
  20. Scroll Restoration
  21. Feature to allow users to report typos or suggest changes

Probably won't do (for now)

  1. Monetization (ads, job board, paywall for some gated content, etc). This should be a priority in the future though.
  2. Internationalization. It's not yet clear how this would work in Next 13 anyway.
  3. Blog post excerpts. We already support "description" in the frontmatter, so I'm inclined to say no on this one
  4. Categories. We already have the concept of tags and series.
  5. Feature flags. They might be useful in the future though when the blog is more complex.
  6. SafeQL has a better moon/sun dark mode toggle. Not a high priority though.
  7. Admin panel and/or authoriing posts in the browser. Too much work for not enough gain.
  8. Remote content and images. Again, too much work for right now. Push the local filesystem workflow to it's limits first.
    1. Preview Mode. It doesn't seem to be implemented in Next 13 yet.

General Notes

  • The file lib/md.ts has strayed quite far from only being focused on markdown. It contains lots of business logic. This file should probably be renamed or broken up.
  • This goes along with DDD principles mentioned above, but it may be worth investigating if domain objects such as Posts should come with methods attached, or if they should continue to just be a collection of properties.

Random Links

Blog Post Ideas

  • A lot of people focus on the dangers of optimizing or over-engineering too early. But people rarely talk about the dangers of waiting long to start implementing more robust patterns. There exists a golden window of when you should should focus on re-architecting... as soon as working within the current architecture begins to feel painful and tedious. As soon as you feel like the existing architecture is steering you into spaghetti more often than it is steering you into the pit of success. You should always be vigilant about looking for this golden window. If you over-engineer early on, you will likely create an architecture that isn't actually suited to the domain you're working in because the process wasn't informed enough by real-world experience. On the flip side, if you allow simple and naive patterns stick around well past their welcome, then you will one day find yourself lost in a maze with no idea how to get out. Either way, you eventually end up with a pile of spaghetti code. So, when you start that next project, perhaps you start out with a handful of transaction scripts, eventually graduate to MVC, and finally you go all-in on DDD. Always be on the lookout for when it's time to graduate, or if you are happy with where you're at.
  • How I built this blog
  • How to fork my repo and get up and running with your own blog