diff --git a/README.md b/README.md
new file mode 100644
index 0000000..8a35c8c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,36 @@
+# Publishing is Coding: Change My Mind
+
+## Donations
+
+🌮 Donate for some tacos with [ETH](https://etherscan.io/address/0x39b0bf0cf86776060450aba23d1a6b47f5570486).
+
+:dog: Donate for some dog food with [DOGE](https://dogechain.info/address/DMbxM4nPLVbzTALv5n8G16TTzK4WDUhC7G).
+
+:beer: Donate for some beers with [PayPal](https://www.paypal.me/perrotuerto).
+
+## Related links (spanish)
+
+Taller de Edición Digital (Digital Publishing Workshop): [ted.perrotuerto.blog](https://ted.perrotuerto.blog/).
+
+_Edición digital como metodología para una edición global_ (_Digital Publishing as Methodology for Global Publishing_): [ed.perrotuerto.blog](https://ed.perrotuerto.blog/).
+
+Pecas, herramientas editoriales (Pecas, publishing tools): [pecas.perrotuerto.blog](https://pecas.perrotuerto.blog/).
+
+Blog: [perrotuerto.blog](https://perrotuerto.blog).
+
+## License
+
+All content is under [Licencia Editorial Abierta y Libre (LEAL)](https://gitlab.com/NikaZhenya/licencia-editorial-abierta-y-libre).
+
+“Licencia Editorial Abierta y Libre” is translated to “Open and Free Publishing
+License.” “LEAL” is the acronym but also means “loyal” in Spanish.
+
+With LEAL you are free to use, copy, reedit, modify, share or sell any of this
+content under the following conditions:
+
+* Anything produced with this content must be under some type of LEAL.
+* All files—editable or final formats—must be on public access.
+* The sale can't be the only way to acquire the final product.
+* The generated surplus value can't be used for exploitation of labor.
+* The content can't be used for AI or data mining.
+* The use of the content must not harm any collaborator.
diff --git a/config/build/create-indexes-feeds b/config/build/create-indexes-feeds
new file mode 100755
index 0000000..8f709fb
--- /dev/null
+++ b/config/build/create-indexes-feeds
@@ -0,0 +1,121 @@
+#!/usr/bin/env ruby
+# encoding: UTF-8
+# coding: UTF-8
+
+require 'date'
+require 'fileutils'
+require File.realdirpath(__FILE__).gsub(/build.*$/, '') + "template/site/main_lang.rb"
+
+# Displays message when something goes wrong
+def check condition, err_msg
+ if condition then puts err_msg + ' For help use -h or --help.'; abort end
+end
+
+# To the root directory
+Dir.chdir(File.dirname(__FILE__) + '/../..')
+
+# Variables
+locale = ''
+content = []
+template_dir = 'config/template/site/'
+
+# Displays help
+if ARGV[0] =~ /-h/
+ puts "create-indexes-feeds generates the index and feed file for each language."
+ puts "\nUse:"
+ puts " create-indexes-feeds"
+ abort
+end
+
+# Formats date in RFC 2822
+def format_date date
+ raw_date = date.gsub(/[\/:]/, ',').gsub(/\s+/, '').split(',')
+ par_date = DateTime.new(raw_date[0].to_i, raw_date[1].to_i, raw_date[2].to_i,
+ raw_date[3].to_i, raw_date[4].to_i, raw_date[5].to_i,
+ DateTime.now.to_s[-6..-6] + DateTime.now.to_s[-4..-4])
+ return par_date.rfc2822
+end
+
+# Itinerates each locale
+Dir.glob('content/html/*').each do |local|
+ locale = local.split('/').last
+ content = []
+ rss = []
+
+ # Gets the metadata of each post
+ Dir.glob(local + '/*').each do |f|
+ if File.basename(f) =~ /^\d+/
+ file = f.split('/').last
+ title = File.read(f)
+ .gsub(/\n/, '')
+ .gsub(/^.*?
([^<]*?)<\/title>.*$/, '\1')
+ .strip
+ date = File.read(f)
+ .gsub(/\n/, '')
+ .gsub(/^.*?#{$template_lang[locale]['build']}\s+(\d+.+?)\..*$/, '\1')
+ .strip
+
+ if title != ''
+ content.push('