Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Trying out TinaCMS (cassidoo.co)
129 points by sgallant on Oct 23, 2023 | hide | past | favorite | 35 comments


Oh hey that's me! Lmk if y'all have questions. I've been happy with Tina so far.


Is your blog open source? I tried to implement Tina for my personal blog but I found their docs to be pretty confusing (granted this was a few years ago) and had a hard time upgrading due to breaking changes. I personally ended up going with Contentlayer in the end which wasn't what I wanted, but it's good enough without breaking changes.


Yes! https://github.com/cassidoo/blahg

Also, if it's helpful, I actually live-streamed my implementation and luckily a Tina maintainer was in the chat when I also struggled with the docs: https://twitch.tv/cassidoo


Did you consider https://decapcms.org/ (previously Netlify CMS)? I'm surprised it never really caught on as it seems a good fit for most small Markdown based sites. Looks like Smashing Magazine was using it before they moved to Tina CMS (https://www.smashingmagazine.com/2020/01/migration-from-word...).


I’ve used it in prod before. It’s fine for small, focused sites. For example, I have some lists of people who journalists can contact. It uses decap to let editors manage the lists.


I did! I used to work at Netlify heh. I liked it but it was a bit too clunky for what I wanted (I admit I haven't tried it since Decap took over though).


The parent to this thread was head of dev experience at Netlify, so she it's presumably familiar with it!


Hi casidoo! I’ve nothing to add re the CMS just a fan of you and your work!


Thank you!! <3


Just started looking, & really like this TinaCMS, from what I've seen of the docs.

Semi-headless, Git-backed, so each change goes into a commit. MDX, so you can have a mix of markdown and more complex content (buttons, or more complex components).

Not a massive fan of graphql per se, but there's a very interesting graphql layer for querying your content. One can define schemas for content, and TinaCMS seems to be able to generate fairly rich data ways to query & search your data.

Some of the advanced features are powered by a level.js compatible store, which was the popular interface for data stores on node & js for a while. The content is still git filesystem backed, so one can just throw out the store & rebuild it, but the store makes it fast to query versus having to reread the filesystem each time. Neat.

The point of this article came down to this observation, which rings true to me. I idealize this model where we have outbrains we can file thoughts & data into, and this seems like a great tool for starting:

> something that Chris Coyier said in his segment stuck with me when he talked about his consistency: the fact that he can just type into a CMS and hit send, with minimal things getting in his way, has kept him more consistent in his writing. I do prefer Markdown and my usual local-first workflow, but the fact that I could spit out a blog quickly without any sort of copying and pasting or editing is something I’m excited to try.


If you're interested in similar approaches to the space, I've been slowly migrating some of my blog content + structured data onto Keystatic (https://keystatic.com/). Very similar philosophy; used structured flat data, backed by Git, but with an admin interface.


Tina founder here, I see you're the founder of button down. I'm a huge fan of your service. I use it personally and was pleased to see that Casidoo is also using it!


I've loved Forestry as it was just enough. Tina is a bit more complex but still great. I've migrated some sites to Netlify CMS when they've depreciated Forestry only to have Netlify spin out the CMS as Decap (horrible name) which was on ice for some time. Why can't we have nice and simple things anymore? Constant escalation of complexity is just tiresome.


It's on my to-do list for some time to try out editing my jeykll based blog in obsidian directly - especially with obsidian properties editor now being available ("properties" being yaml based front matter).

Then it's just a git commit away from publishing. You could probably even just use git sync from obsidian if you're disciplined with the published flag


I use Quartz* for my personal site, and just edit it directly in Obsidian. One push to GitHub and it's deployed, with very little effort. It's like Obsidian Publish, but much more customizable.

Before this, I felt the same as the linked post - there was too much friction for me to ever publish anything.

*: https://quartz.jzhao.xyz/


I have a few Jekyll blogs including my personal one and I haven't had to touch the Jekyll part for quite a while (it takes a while to compile). I just write in Obsidian and then Github takes over.

I also maintain two VitePress[1] sites. Once I setup it up (I still use Sublime Text), I do the writing on Obsidian.

What I write and see in Obsidian is good enough that I have just done away with looking at how the site looks after I change/add/edit the text. I sometimes do but just to check build and if the sitemaps are generated, etc. -- routine hygiene.

1. https://vitepress.dev


This is what I do for my personal blog and it works great.


Although it consumes markdown, TinaCMS does seem to require a "Data Layer" for self-hosting. [1]

It can be hosted serverless but needs an instance of MongoDB[2]. This detracts a bit from other SSG that simply compile markdown into HTML, JS, and CSS.

[1] https://tina.io/docs/reference/content-api/data-layer/ [2] https://tina.io/blog/self-hosted-datalayer/


Tina co-founder here. I agree that our data-layer detracts from the simplicity of a static site so I'll elaborate on why we made that decisions.

You're right, to render a static site you don't need a database. However, for a lot of CMS functionality, a database is required (or in our case a "Data Layer"). It's used for searching, sorting, and filtering content. In Smashing Magazine's case, they need to do these operations across 10's of thousands of Markdown files. This couldn't be done without our Data Layer and would result in rate limiting if they hit the GitHub API directly.

Also, since our Data Layer provides a GraphQL API, developers can do interesting things like pull their Markdown content into other applications and use server side rendering. We see it as the best of both worlds: you own your content in Git but you also get a headless CMS to query.

Semi-related: we're on the cusp of releasing some improvements that will make self-hosting Tina much better, so check back in a week or two if you're interested in that.


Thanks for the response! It was great to see how you and the team solicited feedback from the community for both pricing and the self-hosted deployment about a year ago. https://github.com/tinacms/tinacms/discussions/3372 https://github.com/tinacms/tinacms/discussions/3096

Looking forward to seeing the improvements in a couple of weeks.


The most frictionless I got is typing M-x blogsometing RET which puts me in an article tag below a current timestamp line inside p tags above a random em fortune line. I type the text, link any images by typing putsomeimagehere which expands to img class=“blog image” for me to fill the name before the .webp where point is, save the index.html, switch to the vterm buffer, type M-x pushthisup RET which rsyncs all changes to the server and that’s it and I still smoothly forget to blog every other day, but hey:

blessed be the man who, having nothing to say, abstains from giving evidence of the fact


I had a blog/changelog running for https://tier.run/blog and we just went live with Tina this week. Previously we were just writing md. It’s really nice and Tina Cloud makes adding authors etc really straightforward.


Not related to tech at all; tina.io brings me joy with it's marketing. It's all a direct reference to Napoleon Dynamite which still makes me smile when I think about it.

I will be trying it out solely based on this first impression. :)



Hugo (https://gohugo.io/) nowadays is a good Markdown-based CMS with the right theme, and you can host it for free on GitHub Pages, with a GitHub Action to deploy to GitHub Pages on commit.

Here's the source code for my blog with utilizes that workflow, which could publish a post live just from uploading a single Markdown file: https://github.com/minimaxir/minimaxir.github.io


I don't think it's what traditionally is considered a CMS, more a static site generator. I agree it can be used without or in place of one, but it's not a program for content authoring/publishing.


Yea I wouldn't call that a CMS. Hugo is cool but I'm struggling with the same issues as OP that there's just always a slight overhead and mental barrier before publishing or writing a blog post.

In the case of Hugo the issue for me is always that images are a hassle. I wish there was a web interface I could plug into my Hugo installation that just gives me drag & drop image uploading.


A CMS manages content. Hugo is a Static Site Generator. It’s a different tool. I use Hugo at work and have a custom built CMS for it.


The main reason I use hugo is that I really like npm with the genuine feeling. And for some reason the majority of tools in this area are developed using npm. The mess of dealing with npm package and their dependencies are not worth it.


I've been trying to build a tool that solves that niche problemset of facilitating the edit flow of a dev blog.

I liked Forestry, but wanted something that was embedded directly into my website, so I built Penmark CMS https://penmark.appsinprogress.com/. Inspired by utteranc.es, it uses the GitHub API to make edits directly to your repo. It's definitely a simple CMS but I'm liking it to write for my own blog!


For reference also in the space of 'website from markdown':

* https://content.nuxt.com/ - JS, SSG and SSR * https://www.11ty.dev/ - JS, ?? * https://getkirby.com/ - PHP * https://statamic.com/ - PHP also static export and database


I really like TinaCMS as well. The only things I'm struggling with is applying a 3rd party image hosting provider like UploadCare.


Hi there. We create FrontAid CMS as another headless, Git-based CMS like Tina. And we integrate directly with Uploadcare. You can find more information here:

- https://frontaid.io/

- https://frontaid.io/docs/integrations/


Hey! I'm Anastasia from Uploadcare team Could you please share more details about the problem? Seems, I can help :)


Oh, content management system, not color management system.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: