
Show HN: Tumbless, a Tumblr-like blogging platform running on Amazon S3 - matteobrusa
https://github.com/matteobrusa/Tumbless
======
fiatjaf
Do you know of any other approaches to managing a site directly from browser
to S3? Because this is awesome.

I'm not much into this thing of just uploading pictures, but I guess I would
like to work into turning your Tumbless into a more full-featured static-
website solution for non-devs, that works from the browser.

~~~
ubergeek42
The only other thing I've seen in this space is DodgerCMS. It may meet your
needs as it seems to do a lot more than Tumbless already. I think I prefer the
way it handles credentials too(saved in local storage iirc rather than in a
"hidden" file that's technically available to everyone)

[https://github.com/ChrisZieba/dodgercms](https://github.com/ChrisZieba/dodgercms)

Regardless, I think this is something that would be awesome to have. You can
even throw in some AWS Lambda if you want to move some stuff out of the
browser(like generating thumbnails/index pages/etc). Or just use Lambda to run
a complete static site generator(like jekyll or pelican) every time the
content in an S3 bucket changes.

Note: I've never actually used either of these, but I did spend a fair amount
of time researching this type of stuff.

~~~
fiatjaf
I read a lot about DodgerCMS right now, then I discovered it did client-site
rendering. Not that this is a bad thing, but it makes the job of implementing
a site like this so much easier that I got angry.

Now I don't know if Tumbless does everything client-side too. I guess the
other way is way too hard (recompiling everything every time, finding what to
recompile etc.), like I tried to do and failed with
[https://github.com/fiatjaf/coisas](https://github.com/fiatjaf/coisas)

------
akeck
Amazon S3 transfer costs can be problematic, though. Personally, I would pair
a tool like this with a CloudFront configuration. If you configure CloudFront
to expire objects after 24 hours, using a A/B release model for an S3-backed
site works pretty well.

~~~
hawkice
I use the --cf-invalidate flag(s) with s3cmd -- but for something with the
usage patterns of tumblr, might be better to use a * invalidation so you don't
have to pay too much for them. 24 hour invalidation would be confusing for
tumblr-type things. I see the article posted today but the homepage doesn't
have it? Very confusing.

~~~
akeck
My understanding, via limited testing, (might be wrong) of CloudFront's
content behavior is that new things show up pretty quickly (hour?). Changed
things would be subject to the expiration time limit. So, edits of old posts
won't go live until the original objects expire - unless you invalidate the
cache for them.

------
RijilV
Might I interest you in a CDN rather than serving static files out of S3 in a
single region?

~~~
yeukhon
You can use cross-region replication. But CDN might be a cheaper solution if
you have a high volume traffic. Imagine HN runs entirely on S3, then using CDN
will likely be cheaper and more responsive. I haven't done the calculation
though.

~~~
toomuchtodo
> You can use cross-region replication.

This is meant for backing up S3 data for DR, not for HA in the traditional
sense (EDIT: it can be used for HA, but you're going to need health checks for
your origin DNS record so your CDN is always pointed at an available origin).
Always, always, always use a CDN in front of S3 if you're serving static
content for public consumption from that bucket.

Data out of S3 is more expensive than data out of a CDN (even Cloudfront), and
S3 has orders of magnitude higher latency than a CDN (occasionally hundreds of
milliseconds).

Disclaimer: Devops who works with S3 and several CDNs day in and day out.

------
techdragon
This is almost perfect... It just needs support for more text based content.
If it's already supported then the demo needs some examples of it.

Text or HTML posts ?

oEmbed based links? Link in a txt file would be simple enough.

I'm not sure the best way for integrating these things, but I'm mentioning
them because I'm always looking for simple blog tools, and it doesn't get
simpler than files in a bucket. So this approach has me excited to see how far
it can extend without the need to introduce additional components like Lambda
or a normal Server.

~~~
matteobrusa
Text posts are, of course, supported: just fill title and description while
omitting the media. A rich text/markdown editor integration is on the roadmap,
I haven't looked into it yet.

------
planetjones
Have you tested this on mobile safari? It jumped around a lot before sort of
displaying ok, but then the jumping issues returned. I query it because your
page makes a point of mentioning the fully responsive layout - but personally
if I visited a page which displayed the behaviour on mobile like yours did, I
would immediately leave and not come back.

~~~
matteobrusa
Unfortunately I have no iPhone to test it on. I'll see if I can borrow one...
On Android it renders smoothly.

------
dilemma
I run my website on tumblr. This is perfect for when the new owner inevitably
ruins tumblr with ads.

~~~
matteobrusa
To help you with the migration I've built a script that export all the content
(including videos) and creates an index in a format suitable by Tumbless:
[https://github.com/matteobrusa/TumblrToStaticExporter](https://github.com/matteobrusa/TumblrToStaticExporter)

Caveat: it's a bit rough, but does the job.

~~~
dilemma
Wow, thank you!

------
matteobrusa
Tumbless uses HTML5 canvas, Ajax and Amazon S3 APIs to offer a photo blogging
platform without a specialized backend.

